Player::Player(Renderer* pRenderer, QubicleBinaryManager* pQubicleBinaryManager, LightingManager* pLightingManager, BlockParticleManager* pBlockParticleManager) { m_pRenderer = pRenderer; m_pQubicleBinaryManager = pQubicleBinaryManager; m_pLightingManager = pLightingManager; m_pBlockParticleManager = pBlockParticleManager; m_forward = vec3(0.0f, 0.0f, 1.0f); m_right = vec3(1.0f, 0.0f, 0.0f); m_up = vec3(0.0f, 1.0f, 0.0f); m_targetForward = m_forward; m_position = vec3(0.0f, 0.0f, 0.0f); m_gravityDirection = vec3(0.0f, -1.0f, 0.0f); m_bCanJump = true; m_jumpTimer = 0.0f; m_bIsIdle = true; // Create voxel character m_pVoxelCharacter = new VoxelCharacter(m_pRenderer, m_pQubicleBinaryManager); // Load default character model LoadCharacter("Steve"); }
Player::Player(Renderer* pRenderer, ChunkManager* pChunkManager, QubicleBinaryManager* pQubicleBinaryManager, LightingManager* pLightingManager, BlockParticleManager* pBlockParticleManager) { m_pRenderer = pRenderer; m_pChunkManager = pChunkManager; m_pQubicleBinaryManager = pQubicleBinaryManager; m_pLightingManager = pLightingManager; m_pBlockParticleManager = pBlockParticleManager; m_forward = vec3(0.0f, 0.0f, 1.0f); m_right = vec3(1.0f, 0.0f, 0.0f); m_up = vec3(0.0f, 1.0f, 0.0f); m_targetForward = m_forward; m_position = vec3(8.0f, 8.0f, 8.0f); m_gravityDirection = vec3(0.0f, -1.0f, 0.0f); // Stepping up single world blocks by walking into them m_bDoStepUpAnimation = false; m_stepUpAnimationYAmount = 0.0f; m_stepUpAnimationPrevious = 0.0f; m_stepUpAnimationYOffset = 0.0f; m_stepUpAdditionYAmountChangedCache = 0.0f; m_gridPositionX = 0; m_gridPositionY = 0; m_gridPositionZ = 0; m_pCachedGridChunk = NULL; m_bCanJump = true; m_jumpTimer = 0.0f; m_bIsIdle = true; m_bCanAttackLeft = true; m_bCanAttackRight = true; m_bCanInteruptCombatAnim = true; for (int i = 0; i < AnimationSections_NUMSECTIONS; i++) { m_animationFinished[i] = false; } // Create voxel character m_pVoxelCharacter = new VoxelCharacter(m_pRenderer, m_pQubicleBinaryManager); // Load default character model LoadCharacter("Steve"); }
void CReplayActor::TransitionToCorpse(IEntity& corpse) { IEntity* pEntity = GetEntity(); if(ICharacterInstance *pCharInst = pEntity->GetCharacter(0)) { corpse.SetFlags(corpse.GetFlags() | (ENTITY_FLAG_CASTSHADOW)); Physicalize(); pEntity->MoveSlot(&corpse, 0); pCharInst->SetFlags(pCharInst->GetFlags() | CS_FLAG_UPDATE); LoadCharacter(pCharInst->GetFilePath()); // Make sure corpse is spawned with no glow parts if(CTeamVisualizationManager* pTeamVisManager = g_pGame->GetGameRules()->GetTeamVisualizationManager()) { pTeamVisManager->RefreshTeamMaterial(&corpse, false, m_isFriendly); } } }
void CPlayer::TryRespawn() { if(m_PauseInfo.m_Respawn) { m_pCharacter = new(m_ClientID) CCharacter(&GameServer()->m_World); m_pCharacter->Spawn(this, m_PauseInfo.m_Core.m_Pos); GameServer()->CreatePlayerSpawn(m_PauseInfo.m_Core.m_Pos, ((CGameControllerDDRace*)GameServer()->m_pController)->m_Teams.TeamMask((m_PauseInfo.m_Team > 0 && m_PauseInfo.m_Team < TEAM_SUPER) ? m_PauseInfo.m_Team : 0)); LoadCharacter(); } else { vec2 SpawnPos; if(!GameServer()->m_pController->CanSpawn(m_Team, &SpawnPos)) return; m_Spawning = false; m_pCharacter = new(m_ClientID) CCharacter(&GameServer()->m_World); m_pCharacter->Spawn(this, SpawnPos); GameServer()->CreatePlayerSpawn(SpawnPos); } }
void Font::LoadFont(const char * filename, Float size) { baseSize = size; //baseSize /= 16.0; FT_Face face; FT_New_Face(FreeType, filename, 0, &face); FT_Set_Char_Size(face, 16 * baseSize, 16 * baseSize, 300, 300); FT_GlyphSlot slot = face->glyph; for (uint8 i = 0; i < 128; i++) { FT_Load_Glyph(face, FT_Get_Char_Index(face, i), FT_LOAD_DEFAULT); FT_Render_Glyph(slot, FT_RENDER_MODE_NORMAL); width[i] = slot->advance.x >> 6; LoadCharacter(face, i); } }