8#ifndef GALAXY_SYSTEMS_SYSTEMMANAGER_HPP_
9#define GALAXY_SYSTEMS_SYSTEMMANAGER_HPP_
Class for making creating and managing entities easier.
Represents a scene in a game.
Manages the systems assigned to it.
void add_system(const std::string &system)
Add a system to operate on entities in this scene.
SystemManager & operator=(const SystemManager &)=delete
Copy assignment operator.
~SystemManager() noexcept
Destructor.
void clear()
Remove all systems.
bool m_suspended
Are systems allowed to run.
SystemManager & operator=(SystemManager &&) noexcept
Move assignment operator.
void resume() noexcept
Resume all systems.
SystemManager() noexcept
Constructor.
SystemManager(const SystemManager &)=delete
Copy constructor.
void suspend() noexcept
Suspend all running systems.
void update(EntityManager &em, Scene *scene)
Process all systems.
SystemStack & stack() noexcept
Get list of systems.
SystemStack m_systems
List of systems to process.
std::vector< std::shared_ptr< System > > SystemStack
System stack typedef.