12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include "Player.h"
- #include "Area.h"
- #include "Globals.h"
- #include "Menu.h"
- #include "Game.h"
- #include <Bild.h>
- Player::Player()
- : Entity( PlayerEntityType::INSTANCE, 1 ),
- leftHandPosition( 0 )
- {
- setModelDaten( uiFactory.initParam.bildschirm->zGraphicsApi()->getModel( "player" ) );
- Bild* b = new Bild();
- b->neuBild( 10, 10, 0xFFFFFFFF );
- Textur* tex = uiFactory.initParam.bildschirm->zGraphicsApi()->createOrGetTextur( "player", 0 );
- if( !tex->zBild() )
- tex->setBildZ( b );
- else
- b->release();
- Model3DTextur* textur = new Model3DTextur();
- textur->setPolygonTextur( 0, dynamic_cast<Textur*>(tex->getThis()) );
- textur->setPolygonTextur( 1, dynamic_cast<Textur*>(tex->getThis()) );
- textur->setPolygonTextur( 2, dynamic_cast<Textur*>(tex->getThis()) );
- textur->setPolygonTextur( 3, dynamic_cast<Textur*>(tex->getThis()) );
- textur->setPolygonTextur( 4, dynamic_cast<Textur*>(tex->getThis()) );
- textur->setPolygonTextur( 5, tex );
- setModelTextur( textur );
- for( int i = 0; i < 9; i++ )
- {
- ItemSlot* slot = new ItemSlot( 50, 0, i, 0, ANY_DIRECTION, 0 );
- itemBar.add( slot );
- addSlot( slot );
- }
- currentGame->setVisibility( this, 1 );
- }
- Player::~Player()
- {}
- bool Player::tick( double time )
- {
- cs.lock();
- if( currentGame->getCurrentPlayerId() == id )
- {
- currentGame->zKamera()->setPosition( pos + Vec3<float>( 0.f, 0.f, 1.5f ) );
- if( target )
- {
- auto t = target->getTarget( currentDimensionId );
- if( t.isA() && t.getA() )
- currentGame->setTarget( t.getA() );
- if( t.isB() && t.getB() )
- currentGame->setTarget( t.getB() );
- if( (t.isA() && t.getA()) || (t.isB() && t.getB()) )
- ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 1, t.isA() ? t.getA()->getPos() : t.getB()->getPos() );
- else
- ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
- if( t.isA() && t.getA() )
- t.getA()->release();
- if( t.isB() && t.getB() )
- t.getB()->release();
- }
- else
- {
- currentGame->setTarget( 0 );
- ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
- }
- ((Game*)(Menu*)menuRegister->get( "game" ))->updateInventory( itemBar, leftHandPosition );
- }
- cs.unlock();
- return Entity::tick( time );
- }
- PlayerEntityType::PlayerEntityType()
- : EntityType( ID )
- {}
- void PlayerEntityType::loadSuperEntity( Entity* zEntity, Framework::StreamReader* zReader ) const
- {
- Player* zPlayer = dynamic_cast<Player*>(zEntity);
- if( !zPlayer )
- throw "PlayerEntityType::loadSuperEntity was called with an entity witch is not an instance of Player";
- zReader->lese( (char*)&zPlayer->leftHandPosition, 4 );
- EntityType::loadSuperEntity( zEntity, zReader );
- }
- Entity* PlayerEntityType::createEntity() const
- {
- return new Player();
- }
|