35 lines
975 B
C++
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 */
|