void ChunkBase::initEntity() { if (mSceneAttached) deactivateEntity(); if (mChunkScene == 0) { if (!mMeshGenerated) { generateEntityMesh(); if (isEmpty) { mMeshGenerated = false; return; } } mChunkScene = mLevel.getSceneMgr().createSceneNode(mChunkName); mChunkEntity = mLevel.getSceneMgr().createEntity(Ogre::String("Ent").append(mChunkName), mChunkName); mChunkEntity->setMaterialName("Game/Terrain"); mChunkScene->attachObject(mChunkEntity); mChunkScene->setPosition( Ogre::Real(mX * ChunkSizeX), Ogre::Real(mY * ChunkSizeY), Ogre::Real(mZ * ChunkSizeZ)); } else { generateEntityMesh(); if (mChunkEntity == 0) { mChunkEntity = mLevel.getSceneMgr().createEntity(Ogre::String("Ent").append(mChunkName), mChunkName); mChunkEntity->setMaterialName("Game/Terrain"); mChunkScene->attachObject(mChunkEntity); } } }
void World::killEntity(Entity& entity) { // deactivate the entity deactivateEntity(entity); // now kill the entity (add it to the killed cache) m_entityCache.killed.push_back(entity); }
void ChunkBase::destroyEntity() { if (mSceneAttached) deactivateEntity(); if (mChunkScene != 0) { mChunkScene->detachAllObjects(); mLevel.getSceneMgr().destroySceneNode(mChunkScene); mChunkScene = 0; } if (mChunkEntity != 0) { mLevel.getSceneMgr().destroyEntity(mChunkEntity); mChunkEntity = 0; } }
void GameStateOne::handleEvents(sf::Event theEvent) { // Exit program if Escape key is pressed if((theEvent.type == sf::Event::KeyReleased) && (theEvent.key.code == sf::Keyboard::Escape)) { mApp.quit(GQE::StatusAppOK); } else if((theEvent.type == sf::Event::KeyReleased) && (theEvent.key.code == sf::Keyboard::B)) { if(mPlayer) { deactivateEntity( mPlayer->mProperties.get<GQE::IEntity*>(ACTOR)); } } else if((theEvent.type == sf::Event::KeyReleased) && (theEvent.key.code == sf::Keyboard::A)) { } else { for(int i = 0; i < 8; i++) { if(sf::Joystick::isConnected(i) && sf::Joystick::isButtonPressed(i, 0)) if(!mPlayer) { mPlayer = addPlayer(i, BASIC_SHIP_PROTO, Position2D(40, 160, 90 * TORAD)); GQE::IEntity* actor = mPlayer->mProperties.get<GQE::IEntity*>(ACTOR); GQE::Prototype* propeller = mPrototypes.getPrototype(SHIP_PROPELLER_PROTO); propeller->mProperties.add<GQE::IEntity*>(PARENT, actor); propeller->makeInstance(); GQE::Prototype* prototype = mPrototypes.getPrototype(MACHINEGUN_PROTO); prototype->mProperties.add<GQE::IEntity*>(PARENT, actor); prototype->mProperties.set<GQE::typePropertyID>(ANCHOR_POINT, LEFT_ANCHOR); prototype->makeInstance(); prototype->mProperties.set<GQE::typePropertyID>(ANCHOR_POINT, RIGHT_ANCHOR); prototype->makeInstance(); } } } }