Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
WorldContextManager.hpp
1
#pragma once
2
3
#include <map>
4
#include <vector>
5
#include <Common/HashedString.hpp>
6
#include <Common/Memory/SmartPointers/UniquePtr.hpp>
7
8
#include "WorldContextSet.hpp"
9
#include "WorldContext.hpp"
10
11
namespace
Grindstone {
12
class
WorldContextManager
{
13
public
:
14
static
WorldContextManager
* GetInstance();
15
16
virtual
void
Register(
HashedString
name,
Grindstone::UniquePtr<Grindstone::WorldContext>
(*factoryFn)());
17
virtual
void
Unregister(
HashedString
name);
18
virtual
void
SetActiveWorldContextSet(
Grindstone::WorldContextSet
*);
19
[[nodiscard]]
virtual
Grindstone::WorldContextSet
* GetActiveWorldContextSet();
20
[[nodiscard]]
virtual
Grindstone::WorldContextSet
* Create(
const
std::string& name);
21
virtual
void
Remove(
Grindstone::WorldContextSet
* cxtSet);
22
virtual
void
ClearContextSets();
23
24
using
WorldContextSetArray = std::vector<Grindstone::UniquePtr<Grindstone::WorldContextSet>>;
25
26
virtual
WorldContextSetArray::iterator begin();
27
virtual
WorldContextSetArray::const_iterator begin()
const
;
28
virtual
WorldContextSetArray::iterator end();
29
virtual
WorldContextSetArray::const_iterator end()
const
;
30
31
private
:
32
size_t
activeWorldIndex;
33
std::map<HashedString, Grindstone::UniquePtr<Grindstone::WorldContext> (*)()> factoryFunctions;
34
WorldContextSetArray worldContextSets;
35
};
36
}
Grindstone::HashedString
Definition
HashedString.hpp:9
Grindstone::UniquePtr
Definition
UniquePtr.hpp:7
Grindstone::WorldContextManager
Definition
WorldContextManager.hpp:12
Grindstone::WorldContextSet
Definition
WorldContextSet.hpp:11
sources
code
EngineCore
WorldContext
WorldContextManager.hpp
Generated by
1.17.0