#pragma once #include #include #include #include "Area.h" #include "EntityType.h" #include "FactoryCraftModel.h" class Block; struct MovementFrame { Framework::Vec3 position; float rotation; float duration; }; class Entity : public FactoryCraftModel { private: int id; const EntityType* zType; bool playerControlled; Framework::Critical cs; MovementFrame currentFrame; Framework::Array frames; public: Entity(const EntityType* zType, Framework::Model3DData* model, Framework::Model3DTextur* texture, int id, Framework::Vec3 position, float size); ~Entity(); void api(char* message); bool tick(double time) override; int getId() const; const EntityType* zEntityType() const; void lock(); void unlock(); void setPlayerControlled(); };