EntityType.cpp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "EntityType.h"
  2. #include "Entity.h"
  3. #include "Game.h"
  4. EntityType::EntityType( int id )
  5. : ReferenceCounter(),
  6. id( id )
  7. {
  8. StaticRegistry<EntityType>::INSTANCE.registerT( this, id );
  9. }
  10. void EntityType::loadSuperEntity( Entity *zEntity, Framework::StreamReader *zReader ) const
  11. {
  12. zEntity->loadInventory( zReader );
  13. zReader->lese( (char *)&zEntity->id, 4 );
  14. zReader->lese( (char *)&zEntity->maxHP, 4 );
  15. zReader->lese( (char *)&zEntity->currentHP, 4 );
  16. zReader->lese( (char *)&zEntity->stamina, 4 );
  17. zReader->lese( (char *)&zEntity->maxStamina, 4 );
  18. zReader->lese( (char *)&zEntity->hunger, 4 );
  19. zReader->lese( (char *)&zEntity->maxHunger, 4 );
  20. zReader->lese( (char *)&zEntity->thirst, 4 );
  21. zReader->lese( (char *)&zEntity->maxThirst, 4 );
  22. zReader->lese( (char *)&zEntity->speed.x, 4 );
  23. zReader->lese( (char *)&zEntity->speed.y, 4 );
  24. zReader->lese( (char *)&zEntity->speed.z, 4 );
  25. zReader->lese( (char *)&zEntity->faceDir.x, 4 );
  26. zReader->lese( (char *)&zEntity->faceDir.y, 4 );
  27. zReader->lese( (char *)&zEntity->currentDimensionId, 4 );
  28. }
  29. void EntityType::saveSuperEntity( Entity *zEntity, Framework::StreamWriter *zWriter ) const
  30. {
  31. zEntity->saveInventory( zWriter );
  32. zWriter->schreibe( (char *)&zEntity->id, 4 );
  33. zWriter->schreibe( (char *)&zEntity->maxHP, 4 );
  34. zWriter->schreibe( (char *)&zEntity->currentHP, 4 );
  35. zWriter->schreibe( (char *)&zEntity->stamina, 4 );
  36. zWriter->schreibe( (char *)&zEntity->maxStamina, 4 );
  37. zWriter->schreibe( (char *)&zEntity->hunger, 4 );
  38. zWriter->schreibe( (char *)&zEntity->maxHunger, 4 );
  39. zWriter->schreibe( (char *)&zEntity->thirst, 4 );
  40. zWriter->schreibe( (char *)&zEntity->maxThirst, 4 );
  41. zWriter->schreibe( (char *)&zEntity->speed.x, 4 );
  42. zWriter->schreibe( (char *)&zEntity->speed.y, 4 );
  43. zWriter->schreibe( (char *)&zEntity->speed.z, 4 );
  44. zWriter->schreibe( (char *)&zEntity->faceDir.x, 4 );
  45. zWriter->schreibe( (char *)&zEntity->faceDir.y, 4 );
  46. zWriter->schreibe( (char *)&zEntity->currentDimensionId, 4 );
  47. }
  48. void EntityType::createSuperEntity( Entity *zEntity ) const
  49. {}
  50. Entity *EntityType::loadEntity( Game *zTarget, Framework::StreamReader *zReader ) const
  51. {
  52. Entity *entity = createEntity( Framework::Vec3<float>( 0, 0, 0 ), 0, zTarget, 0 );
  53. loadSuperEntity( entity, zReader );
  54. return entity;
  55. }
  56. void EntityType::saveEntity( Entity *zEntity, Framework::StreamWriter *zWriter ) const
  57. {
  58. saveSuperEntity( zEntity, zWriter );
  59. }
  60. Entity *EntityType::createEntityAt( Framework::Vec3<float> position, int dimensionId, Game *zTarget ) const
  61. {
  62. Entity *entity = createEntity( position, dimensionId, zTarget, zTarget->getNextEntityId() );
  63. createSuperEntity( entity );
  64. return entity;
  65. }
  66. int EntityType::getId() const
  67. {
  68. return id;
  69. }