EntityType.h 925 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <Reader.h>
  3. #include <ReferenceCounter.h>
  4. #include <Writer.h>
  5. #include <Vec3.h>
  6. #include "StaticRegistry.h"
  7. class Entity;
  8. class EntityType : public virtual Framework::ReferenceCounter
  9. {
  10. private:
  11. const int id;
  12. protected:
  13. EntityType( int id );
  14. virtual void loadSuperEntity( Entity* zEntity, Framework::StreamReader* zReader ) const;
  15. virtual void saveSuperEntity( Entity* zEntity, Framework::StreamWriter* zWriter ) const;
  16. virtual void createSuperEntity( Entity* zEntity ) const;
  17. virtual Entity* createEntity( Framework::Vec3<float> position, int dimensionId, int entityId ) const = 0;
  18. public:
  19. virtual Entity* loadEntity( Framework::StreamReader* zReader ) const;
  20. virtual void saveEntity( Entity* zEntity, Framework::StreamWriter* zWriter ) const;
  21. virtual Entity* createEntityAt( Framework::Vec3<float> position, int dimensionId ) const;
  22. int getId() const;
  23. };