R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
SpawnSystem.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** RTYPE
4** File description:
5** SpawnSystem
6*/
7
8#pragma once
9
10#include "../ISystem.hpp"
11
12namespace ecs {
13 struct SpawnRequest;
14
25 class SpawnSystem : public ISystem {
26 public:
33
37 ~SpawnSystem() override = default;
38
48 void update(Registry &registry, float deltaTime) override;
49
55 ComponentMask getComponentMask() const override;
56
57 private:
63 void _spawnEnemy(Registry &registry, const SpawnRequest &request);
64 };
65} // namespace ecs
Base interface for all ECS systems.
Definition ISystem.hpp:37
Manages entities, their signatures and component type registrations.
Definition Registry.hpp:68
System managing entity spawning and wave generation.
SpawnSystem()
Constructs a SpawnSystem with default wave configuration.
~SpawnSystem() override=default
Default destructor.
void _spawnEnemy(Registry &registry, const SpawnRequest &request)
Internal method to spawn an enemy from a request.
ComponentMask getComponentMask() const override
Gets the component mask for this system.
void update(Registry &registry, float deltaTime) override
Manages entity spawning based on wave progression.
Maximum number of distinct component types supported by the Registry.
Definition GameLogic.hpp:26
std::uint64_t ComponentMask
Type alias for component bitmask.
Definition ISystem.hpp:24
Declarative request for spawning an entity.
Definition Spawner.hpp:19