Files
2026-09-08 20:31:57 +01:00

45 lines
1.4 KiB
C++

#ifndef HYDRALIGHTSPAWNERACTOR
#define HYDRALIGHTSPAWNERACTOR
#include "../HydraActor.h"
#include <chrono>
#include <queue>
#include <GLMIncludes.h>
struct SpawnedActor
{
HydraID actor_id;
std::chrono::time_point<std::chrono::steady_clock> 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<std::chrono::steady_clock> m_last_tick;
std::queue<SpawnedActor> m_spawned_actors;
};
#endif /* HYDRALIGHTSPAWNERACTOR */