8#include <nlohmann/json.hpp>
41 if (
auto scene =
top())
43 scene->on_event(event);
49 if (
auto scene =
top())
57 if (
auto scene =
top())
73 nlohmann::json json =
"{\"scenes\":{}}"_json;
77 json[
"scenes"][scene->name()] = scene->serialize();
80 for (
auto i = 0; i <
m_stack.size(); i++)
82 json[
"stack"][std::to_string(i)] =
m_stack[i]->name();
State machine for managing scenes.
void update()
Process events and updates.
void on_event(SDL_Event &event)
Handle an event for a scene.
virtual ~SceneManager()
Destructor.
void clear()
Removes all data.
nlohmann::json serialize()
Serializes object.
void deserialize(const nlohmann::json &json)
Deserializes from object.
EntityManager m_entity_manager
Entities belonging to all scenes.
SceneManager & operator=(SceneManager &&)
Move assignment operator.
void render()
Render scenes.
SceneManager() noexcept
Constructor.
StateMachine< Stored > & operator=(StateMachine< Stored > &&)
Move assignment operator.
std::shared_ptr< Stored > top() const noexcept