SDEngine
Game Engine
Loading...
Searching...
No Matches
CommandQueue.hpp
Go to the documentation of this file.
1#pragma once
2#include "Command.hpp"
3#include "Entity.hpp"
4
5namespace sd {
6
8public:
9 template<typename T, typename... Args>
10 void add(Args&&... args) {
11 m_commands.push_back(std::make_unique<T>(std::forward<Args>(args)...));
12 }
13 void apply(EntityManager& em);
14
16
19 void clear();
20 [[nodiscard]] usize get_count() const;
21
22 void serialize(Serializer& serializer) const;
24
25private:
26 std::vector<std::unique_ptr<Command>> m_commands;
27 std::vector<Entity> m_handle_to_entity;
28 std::mutex m_mutex;
29};
30
31} // namespace SD
Definition CommandQueue.hpp:7
void set_entity_for_handle(EntityHandle entity_handle, Entity entity)
Definition CommandQueue.cpp:56
std::mutex m_mutex
Definition CommandQueue.hpp:28
std::vector< std::unique_ptr< Command > > m_commands
Definition CommandQueue.hpp:26
void serialize(Serializer &serializer) const
Definition CommandQueue.cpp:78
std::vector< Entity > m_handle_to_entity
Definition CommandQueue.hpp:27
void add(Args &&... args)
Definition CommandQueue.hpp:10
void deserialize(Serializer &serializer)
Definition CommandQueue.cpp:91
void clear()
Definition CommandQueue.cpp:66
void apply(EntityManager &em)
Definition CommandQueue.cpp:50
Entity get_entity(EntityHandle handle) const
Definition CommandQueue.cpp:73
bool is_handle_resolved(EntityHandle handle) const
Definition CommandQueue.cpp:63
usize get_count() const
Definition CommandQueue.cpp:70
Definition EntityManager.hpp:83
Definition serialization.hpp:36
Definition Application.hpp:28
Definition Command.hpp:97
Definition Entity.hpp:18
constexpr T g_type_max
Definition types.hpp:21
std::size_t usize
Definition types.hpp:18