#ifndef HYDRALIGHTSPAWNERACTOR #define HYDRALIGHTSPAWNERACTOR #include "../HydraActor.h" #include #include #include struct SpawnedActor { HydraID actor_id; std::chrono::time_point spawned_time; }; class CLASS_DEFINE HydraLightSpawnerActor : public HydraActor { public: void InitialiseComponents() override; void SetEnabled(bool enabled); void FixedTick(float delta_t) override; void SpawnSettings(float spawns_per_second, glm::vec3 spawn_direction, glm::vec3 dir_variation, float spawn_velocity, float velocity_variation, float spawn_duration); private: void _CreatePosition(); void _CreateTick(); float m_spawns_per_second =0; glm::vec3 m_spawn_direction = {0.0f, 1.0f, 0.0f}; glm::vec3 m_dir_variation = {0.0f, 0.0f, 0.0f}; float m_spawn_velocity = 0.0f; float m_velocity_variation = 0.0f; float m_spawn_duration; float m_interval = 0.0f; bool m_enabled = false; std::chrono::time_point m_last_tick; std::queue m_spawned_actors; }; #endif /* HYDRALIGHTSPAWNERACTOR */