#ifndef HYDRASYSTEM #define HYDRASYSTEM #include "../engine/HydraObject.h" #include class HydraSystem : public HydraObject { public: std::set Entities; std::set EntitiesToCreate; std::set EntitiesToDelete; void Update(float delta_t_seconds); void InitialiseComponents(); void DeleteComponents(); void DeleteComponent(HydraID actor_id); virtual void InitialiseComponent(HydraID actor_id) {}; virtual void Shutdown(); virtual void Initialise(){}; protected: virtual void UpdateSystem(float delta_t_seconds) = 0; virtual void DestroyComponent(HydraID actor_id) {}; virtual void FreeSystemResources(){}; }; #endif /* HYDRASYSTEM */