#ifndef HYDRAACTOR #define HYDRAACTOR #include "../engine/HydraObject.h" //#include "HydraActorManager.h" #include //class HydraComponent; class CLASS_DEFINE HydraActor : public HydraObject { private: HYDRA_ACTOR_STATE m_status = HYDRA_ACTOR_STATE::WAITING_FOR_INIT; HydraID m_id = INVALID_HYDRA_ID; HydraID m_parent_id = INVALID_HYDRA_ID; std::vector m_children; std::vector m_component_types; uint32_t m_components_waiting = 0; friend class HydraActorManager; friend class HydraDeleteActorTask; protected: bool m_fixed_tick =false; public: std::string Name; virtual ~HydraActor(){}; virtual void InitialiseComponents() = 0; virtual void DeferredInitialiseComponents() {}; HydraID GetID() {return m_id;} virtual void FixedTick(float delta_t) {}; virtual void Destroy() = 0; }; #endif /* HYDRAACTOR */