EntityType.cpp 2.4 KB

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