aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Scene.h
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-21 10:00:43 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-21 10:00:43 +0100
commite7facf23888c38e09128749822c8e7d2b1d7e2fe (patch)
treeb89d956bffd98b3e7bece0399a5090300dc1e19d /src/crepe/api/Scene.h
parente2f085c444a8b37af65816e10bf366e6860d25c2 (diff)
parent1bc04b371f2cc8740f2ee039f75101922da671d6 (diff)
Merge branch 'master' into loek/util
Diffstat (limited to 'src/crepe/api/Scene.h')
-rw-r--r--src/crepe/api/Scene.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/crepe/api/Scene.h b/src/crepe/api/Scene.h
index 0e516b6..869bf6f 100644
--- a/src/crepe/api/Scene.h
+++ b/src/crepe/api/Scene.h
@@ -7,19 +7,36 @@ namespace crepe {
class SceneManager;
class ComponentManager;
+/**
+ * \brief Represents a Scene
+ *
+ * This class represents a Scene. The Scene class is only used as an interface for the game
+ * programmer.
+ */
class Scene {
protected:
- Scene(ComponentManager & mgr, const std::string & name);
+ //TODO: Use Loek's custom reference class to set ComponentManger via SceneManager instead of via constructor
+ /**
+ * \param mgr Reference to the ComponentManager
+ */
+ Scene(ComponentManager & mgr);
+ //! SceneManager instances Scene
friend class SceneManager;
public:
virtual ~Scene() = default;
public:
+ //! Load the scene
virtual void load_scene() = 0;
- const std::string name;
+ /**
+ * \brief Get the scene's name
+ * \return The scene's name
+ */
+ virtual std::string get_name() const = 0;
protected:
+ //! Reference to the ComponentManager
ComponentManager & component_manager;
};