12#include <unordered_map>
13#include <unordered_set>
90 void enable(
const std::string &name);
97 void disable(
const std::string &name);
105 bool isEnabled(
const std::string &name)
const;
112 void update(
float deltaTime);
High-level ECS manager providing clean server-side API.
Advanced scheduler for controlling system execution order and dependencies.
const std::vector< std::string > & getExecutionOrder() const
Get the computed execution order.
void disable(const std::string &name)
Disable a system.
bool isEnabled(const std::string &name) const
Check if a system is enabled.
void printExecutionOrder() const
Print the execution order for debugging.
SystemScheduler & registerSystem(const std::string &name, int priority=0)
Register a system with the scheduler.
void computeExecutionOrder()
std::unordered_map< std::string, SystemInfo > _systemInfos
SystemScheduler & runBefore(const std::string &systemName, const std::string &afterSystemName)
Specify that a system must run before another.
std::vector< std::string > _executionOrder
SystemScheduler & runAfter(const std::string &systemName, const std::string &beforeSystemName)
Specify that a system must run after another.
void update(float deltaTime)
Update all enabled systems in the scheduled order.
void enable(const std::string &name)
Enable a system.
Information about a scheduled system.
std::vector< std::string > runBefore
Systems that must run after this one.
std::vector< std::string > runAfter
Systems that must run before this one.
int priority
Higher priority systems run first.