Example #1
0
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);
		}
	}
}
Example #2
0
    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);
    }
Example #3
0
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;
	}
}
Example #4
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();
            }
      }
   }
}