9#include <unordered_set>
14#include "misc/Globals.h"
15#include "misc/Error.h"
73 static std::unique_ptr<World>
96 const std::filesystem::path& pathToNodeTree,
Definition: GameManager.h:34
static constexpr size_t getDefaultWorldSize()
Definition: Globals.h:33
void destroyWorld()
Definition: World.cpp:123
std::pair< std::recursive_mutex, std::unordered_map< size_t, Node * > > mtxSpawnedNodes
Definition: World.h:258
static std::variant< std::unique_ptr< World >, Error > loadNodeTreeAsWorld(GameManager *pGameManager, const std::filesystem::path &pathToNodeTree, size_t iWorldSize=Globals::getDefaultWorldSize())
Definition: World.cpp:77
sgc::GcPtr< Node > getRootNode()
Definition: World.cpp:94
float getWorldTimeInSeconds() const
Definition: World.cpp:106
void addNodeToCalledEveryFrameArrays(Node *pNode)
Definition: World.cpp:386
std::atomic< size_t > iTotalSpawnedNodeCount
Definition: World.h:261
const size_t iWorldSize
Definition: World.h:264
bool removeNodeFromReceivingInputArray(Node *pNode)
Definition: World.cpp:419
std::chrono::steady_clock::time_point timeWhenWorldCreated
Definition: World.h:267
CalledEveryFrameNodes * getCalledEveryFrameNodes()
Definition: World.cpp:143
~World()
Definition: World.cpp:47
void onNodeSpawned(Node *pNode)
Definition: World.cpp:149
void onNodeDespawned(Node *pNode)
Definition: World.cpp:204
std::pair< std::recursive_mutex, std::unordered_set< Node * > > * getReceivingInputNodes()
Definition: World.cpp:145
size_t getCalledEveryFrameNodeCount()
Definition: World.cpp:99
void onSpawnedNodeChangedIsReceivingInput(Node *pNode)
Definition: World.cpp:321
CalledEveryFrameNodes calledEveryFrameNodes
Definition: World.h:252
size_t getTotalSpawnedNodeCount()
Definition: World.cpp:92
std::pair< std::recursive_mutex, bool > mtxIsDestroyed
Definition: World.h:246
GameManager * pGameManager
Definition: World.h:243
bool isNodeSpawned(size_t iNodeId)
Definition: World.cpp:115
bool removeNodeFromCalledEveryFrameArrays(Node *pNode)
Definition: World.cpp:396
void onSpawnedNodeChangedIsCalledEveryFrame(Node *pNode)
Definition: World.cpp:257
std::pair< std::recursive_mutex, std::unordered_set< Node * > > mtxReceivingInputNodes
Definition: World.h:255
std::pair< std::mutex, sgc::GcPtr< Node > > mtxRootNode
Definition: World.h:249
size_t getWorldSize() const
Definition: World.cpp:113
static std::unique_ptr< World > createWorld(GameManager *pGameManager, size_t iWorldSize=Globals::getDefaultWorldSize())
Definition: World.cpp:73
std::pair< std::recursive_mutex, std::unordered_set< Node * > > mtxFirstTickGroup
Definition: World.h:32
std::pair< std::recursive_mutex, std::unordered_set< Node * > > mtxSecondTickGroup
Definition: World.h:35