galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Scene.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_STATE_SCENE_HPP_
9#define GALAXY_STATE_SCENE_HPP_
10
11#include <entt/signal/dispatcher.hpp>
12
15#include "galaxy/map/World.hpp"
17
18namespace galaxy
19{
20 namespace scene
21 {
26 class Scene : public fs::Serializable
27 {
28 public:
34 Scene(const std::string& name);
35
39 virtual ~Scene();
40
44 virtual void load();
45
49 virtual void unload();
50
54 virtual void update();
55
59 virtual void render();
60
68 [[nodiscard]] bool load_world(const std::string& file);
69
75 [[nodiscard]] nlohmann::json serialize() override;
76
82 void deserialize(const nlohmann::json& json) override;
83
84 private:
88 Scene() = delete;
89
90 public:
94 std::string m_name;
95
100
104 entt::dispatcher m_dispatcher;
105
110
114 b2World m_b2world;
115
120
125
130 };
131 } // namespace scene
132} // namespace galaxy
133
134#endif
Wrapper around entt::registry to expand functionality.
Definition Registry.hpp:21
Orthographic 2D camera.
Definition Camera.hpp:28
An LDTK level.
Definition World.hpp:24
map::World m_world
LDTK world.
Definition Scene.hpp:119
virtual void load()
When scene is loaded and made active.
Definition Scene.cpp:51
Scene()=delete
Constructor.
const std::string & name() const noexcept
Get scene name.
Definition Scene.cpp:103
virtual ~Scene()
Destructor.
Definition Scene.cpp:47
virtual void render()
Render scene.
Definition Scene.cpp:68
virtual void update()
Process events and updates.
Definition Scene.cpp:61
int m_position_iterations
Box2d world position iterations.
Definition Scene.hpp:129
graphics::Camera m_camera
Camera.
Definition Scene.hpp:99
std::string m_name
Scene name for debug purposes.
Definition Scene.hpp:94
nlohmann::json serialize() override
Serializes object.
Definition Scene.cpp:93
entt::dispatcher m_dispatcher
Scene event handler.
Definition Scene.hpp:104
b2World m_b2world
Box2D physics world.
Definition Scene.hpp:114
core::Registry m_registry
Entity data.
Definition Scene.hpp:109
bool load_world(const std::string &file)
Loads an LDTK world for this scene.
Definition Scene.cpp:82
void deserialize(const nlohmann::json &json) override
Deserializes from object.
Definition Scene.cpp:124
int m_velocity_iterations
Box2D world velocity iterations.
Definition Scene.hpp:124
virtual void unload()
When scene is deactivated / unloaded.
Definition Scene.cpp:56
Animated.cpp galaxy.
Definition Animated.cpp:16