#pragma once #include "DeerCore/Tools/Memory.h" namespace Deer { class World; class WorldSettings; namespace Universe { struct WorldHandle { uint32_t worldId = 0; uint32_t generation = 0; WorldHandle() {} WorldHandle(uint32_t _worldId, uint32_t _generation) : worldId(_worldId), generation(_generation) {} }; struct EntityHandle { uint32_t entityId = 0; WorldHandle worldId; }; WorldHandle createWorld(const WorldSettings&); World& getWorld(WorldHandle); void destroyWorld(WorldHandle); void destroyAllWorlds(); void flushDestroyedWorlds(); } // namespace Universe } // namespace Deer