Player.cpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "Player.h"
  2. #include "Area.h"
  3. #include "Globals.h"
  4. #include "Menu.h"
  5. #include "Game.h"
  6. #include <Bild.h>
  7. Player::Player()
  8. : Entity( PlayerEntityType::INSTANCE, 1 )
  9. {
  10. setModelDaten( window->zBildschirm()->zGraphicsApi()->getModel( "player" ) );
  11. Bild* b = new Bild();
  12. b->neuBild( 10, 10, 0xFFFFFFFF );
  13. Textur* tex = currentGame->zScreen()->zGraphicsApi()->createOrGetTextur( "player", 0 );
  14. if( !tex->zBild() )
  15. tex->setBildZ( b );
  16. else
  17. b->release();
  18. Model3DTextur* textur = new Model3DTextur();
  19. textur->setPolygonTextur( 0, dynamic_cast<Textur*>(tex->getThis()) );
  20. textur->setPolygonTextur( 1, dynamic_cast<Textur*>(tex->getThis()) );
  21. textur->setPolygonTextur( 2, dynamic_cast<Textur*>(tex->getThis()) );
  22. textur->setPolygonTextur( 3, dynamic_cast<Textur*>(tex->getThis()) );
  23. textur->setPolygonTextur( 4, dynamic_cast<Textur*>(tex->getThis()) );
  24. textur->setPolygonTextur( 5, tex );
  25. setModelTextur( textur );
  26. for( int i = 0; i < 9; i++ )
  27. {
  28. ItemSlot* slot = new ItemSlot( 50, 0, i, 0, ANY_DIRECTION, 0 );
  29. itemBar.add( slot );
  30. addSlot( slot );
  31. }
  32. currentGame->setVisibility( this, 1 );
  33. }
  34. Player::~Player()
  35. {}
  36. bool Player::tick( double time )
  37. {
  38. if( currentGame->getCurrentPlayerId() == id )
  39. {
  40. currentGame->zKamera()->setPosition( pos + Vec3<float>( 0.f, 0.f, 1.5f ) );
  41. if( target )
  42. {
  43. auto t = target->zTarget( currentDimensionId );
  44. if( t.isA() && t.getA() )
  45. currentGame->setTarget( t.getA() );
  46. if( t.isB() && t.getB() )
  47. currentGame->setTarget( t.getB() );
  48. if( (t.isA() && t.getA()) || (t.isB() && t.getB()) )
  49. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 1, t.isA() ? t.getA()->getPos() : t.getB()->getPos() );
  50. else
  51. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
  52. }
  53. else
  54. {
  55. currentGame->setTarget( 0 );
  56. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
  57. }
  58. ((Game*)(Menu*)menuRegister->get( "game" ))->updateInventory( itemBar, 0 ); // todo: pass selected slot
  59. }
  60. return Entity::tick( time );
  61. }
  62. PlayerEntityType::PlayerEntityType()
  63. : EntityType( ID )
  64. {}
  65. void PlayerEntityType::loadSuperEntity( Entity* zEntity, Framework::StreamReader* zReader ) const
  66. {
  67. EntityType::loadSuperEntity( zEntity, zReader );
  68. }
  69. Entity* PlayerEntityType::createEntity() const
  70. {
  71. return new Player();
  72. }