StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
SceneManager.hpp
1#pragma once
2#include "Scene.hpp"
3#include "main/ResourceManager.hpp"
4#include "utilities/Stream.hpp"
5
6#include <string>
7
8namespace StevEngine {
16 public:
20 void Init();
21
27 bool Exists(std::string name);
28
34 Scene& GetScene(std::string name);
35
41
47 Scene& CreateSceneFromFile(Resources::Resource file, Utilities::StreamType type);
48
54 Scene& CreateScene(std::string name);
55
60 void SetActiveScene(std::string name);
61
68 void ActivateDefault();
69 private:
74 void Update(double deltaTime);
75
76 #ifdef StevEngine_SHOW_WINDOW
80 void Draw();
81 #endif
82
83 std::unordered_map<std::string, Scene> scenes;
84 std::string active;
85 };
86
88 extern SceneManager sceneManager;
89}
Container for loaded resource data.
Definition ResourceManager.hpp:11
Manages multiple scenes and scene transitions.
Definition SceneManager.hpp:15
void SetActiveScene(std::string name)
Switch to different scene.
Definition SceneManager.cpp:24
Scene & CreateScene(std::string name)
Create empty scene.
Definition SceneManager.cpp:62
void ActivateDefault()
Ensure a scene is active.
Definition SceneManager.cpp:29
void Init()
Initialize scene manager.
Definition SceneManager.cpp:35
Scene & GetScene(std::string name)
Get scene by name.
Definition SceneManager.cpp:14
Scene & GetActiveScene()
Get currently active scene.
Definition SceneManager.cpp:19
bool Exists(std::string name)
Checks if an scene with the specified name exists.
Definition SceneManager.cpp:10
Scene & CreateSceneFromFile(Resources::Resource file, Utilities::StreamType type)
Create scene from serialized data.
Definition SceneManager.cpp:68
Container for game objects and scene state.
Definition Scene.hpp:21