R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
ISystem.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** RTYPE
4** File description:
5** ISystem
6*/
7
8#pragma once
9
10#include <cstdint>
11#include "../Registry.hpp"
12
13namespace ecs {
14 // Placeholder declaration
15
24 using ComponentMask = std::uint64_t;
25
37 class ISystem {
38 public:
42 virtual ~ISystem() = default;
43
53 virtual void update(Registry &registry, float deltaTime) = 0;
54
64 virtual ComponentMask getComponentMask() const = 0;
65 };
66} // namespace ecs
Base interface for all ECS systems.
Definition ISystem.hpp:37
virtual void update(Registry &registry, float deltaTime)=0
Update the system logic for one frame.
virtual ~ISystem()=default
Virtual destructor.
virtual ComponentMask getComponentMask() const =0
Get the bitmask of required components.
Manages entities, their signatures and component type registrations.
Definition Registry.hpp:68
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