Files
2026-07-17 15:30:29 +01:00

35 lines
975 B
C++

#ifndef HYDRAACTOR
#define HYDRAACTOR
#include "../engine/HydraObject.h"
//#include "HydraActorManager.h"
#include <vector>
//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<HydraID> m_children;
std::vector<uint32_t> 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 */