SDEngine
Game Engine
Loading...
Searching...
No Matches
Scene.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "SD/arena.hpp"
6
7namespace sd {
8
9struct Scene {
10 explicit Scene(std::string name = "Untitled Scene", Arena* pool_arena = nullptr) :
11 m_name(std::move(name)) {
12 em.m_pool_arena = pool_arena;
13 }
14
15 Scene(const Scene&) = delete;
16 Scene& operator=(const Scene&) = delete;
17
18 void on_start() { m_is_active = true; }
19 void on_stop() { m_is_active = false; }
20 void on_update(float dt) { (void)dt; }
21
22 [[nodiscard]] bool is_active() const { return m_is_active; }
23 [[nodiscard]] const std::string& get_name() const { return m_name; }
24
25 template<typename T, typename... Args>
26 void add_command(Args&&... args) {
27 m_commands.add<T>(std::forward<Args>(args)...);
28 }
29
34
35 [[nodiscard]] USize command_count() const;
36
38
40 std::string m_name;
41 bool m_is_active = false;
42};
43
45 return m_commands.get_count();
46}
47
48} // namespace sd
Definition Application.hpp:22
Definition arena.hpp:85
Definition CommandQueue.hpp:19
void add(Args &&... args)
Definition CommandQueue.hpp:32
USize get_count() const
Definition CommandQueue.cpp:73
void apply(EntityManager< ComponentGroup<> > &em)
Definition CommandQueue.cpp:43
void clear()
Definition CommandQueue.cpp:67
Definition EntityManager.hpp:64
Definition Scene.hpp:9
void on_start()
Definition Scene.hpp:18
void add_command(Args &&... args)
Definition Scene.hpp:26
void on_update(float dt)
Definition Scene.hpp:20
Scene & operator=(const Scene &)=delete
EntityManager< ComponentGroup<> > em
Definition Scene.hpp:37
CommandQueue m_commands
Definition Scene.hpp:39
Scene(const Scene &)=delete
USize command_count() const
Definition Scene.hpp:44
void apply_commands()
Definition Scene.hpp:30
bool m_is_active
Definition Scene.hpp:41
std::string m_name
Definition Scene.hpp:40
Scene(std::string name="Untitled Scene", Arena *pool_arena=nullptr)
Definition Scene.hpp:10
const std::string & get_name() const
Definition Scene.hpp:23
void on_stop()
Definition Scene.hpp:19
bool is_active() const
Definition Scene.hpp:22
consteval U64 type_id_of()
Definition type_id.hpp:6
std::size_t USize
Definition types.hpp:18