Player.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. addSlot( slot );
  30. }
  31. currentGame->setVisibility( this, 1 );
  32. }
  33. Player::~Player()
  34. {}
  35. bool Player::tick( double time )
  36. {
  37. if( currentGame->getCurrentPlayerId() == id )
  38. {
  39. currentGame->zKamera()->setPosition( pos + Vec3<float>( 0.f, 0.f, 1.5f ) );
  40. if( target )
  41. {
  42. auto t = target->zTarget( currentDimensionId );
  43. if( t.isA() && t.getA() )
  44. currentGame->setTarget( t.getA() );
  45. if( t.isB() && t.getB() )
  46. currentGame->setTarget( t.getB() );
  47. if( (t.isA() && t.getA()) || (t.isB() && t.getB()) )
  48. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 1, t.isA() ? t.getA()->getPos() : t.getB()->getPos() );
  49. else
  50. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
  51. }
  52. else
  53. {
  54. currentGame->setTarget( 0 );
  55. ((Game*)(Menu*)menuRegister->get( "game" ))->updatePosition( pos, 0, { 0, 0, 0 } );
  56. }
  57. }
  58. return Entity::tick( time );
  59. }
  60. PlayerEntityType::PlayerEntityType()
  61. : EntityType( ID )
  62. {}
  63. void PlayerEntityType::loadSuperEntity( Entity* zEntity, Framework::StreamReader* zReader ) const
  64. {
  65. EntityType::loadSuperEntity( zEntity, zReader );
  66. }
  67. Entity* PlayerEntityType::createEntity() const
  68. {
  69. return new Player();
  70. }