Entity.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include <ReferenceCounter.h>
  3. #include <Vec3.h>
  4. #include <Vec2.h>
  5. #include "Effect.h"
  6. #include "Inventory.h"
  7. #include "NetworkResponse.h"
  8. class EntityType;
  9. class Dimension;
  10. class Game;
  11. class Entity : public Inventory
  12. {
  13. protected:
  14. float maxHP;
  15. float currentHP;
  16. float stamina;
  17. float maxStamina;
  18. float hunger;
  19. float maxHunger;
  20. float thirst;
  21. float maxThirst;
  22. Framework::Vec3<float> speed;
  23. Framework::Vec3<float> faceDir;
  24. const EntityType* zEntityType;
  25. int currentDimensionId;
  26. bool removed;
  27. float gravityMultiplier;
  28. int id;
  29. virtual void onDeath();
  30. Entity( const EntityType* zType, Framework::Vec3<float> location, int dimensionId, int entityId );
  31. public:
  32. virtual void tick( const Dimension* zDimension, Game* zGame );
  33. virtual void api( Framework::StreamReader* zRequest, NetworkResponse* zResponse );
  34. virtual void onFall( float collisionSpeed );
  35. void setPosition( Framework::Vec3<float> pos );
  36. float getMaxHP() const;
  37. float getCurrentHP() const;
  38. float getStamina() const;
  39. float getMaxStamina() const;
  40. float getHunger() const;
  41. float getMaxHunger() const;
  42. float getThirst() const;
  43. float getMaxThirst() const;
  44. Framework::Vec3<float> getSpeed() const;
  45. Framework::Vec3<float> getFaceDir() const;
  46. Framework::Vec3<float> getPosition() const;
  47. float getGravityMultiplier() const;
  48. int getCurrentDimensionId() const;
  49. bool isRemoved() const;
  50. const EntityType* zType() const;
  51. int getId() const;
  52. friend Effect;
  53. friend EntityType;
  54. };