#pragma once #include class GameInstance; class Entity; class Map; /* * Worlds are a collection of entities - but they only reference the entity's ids so they are technically still held by * the entity pool. */ class World { friend class GameInstance; public: World(GameInstance* gameInstance) : m_gameInstance(gameInstance) {} ~World(); void LoadFromMap(Map* map); void AddEntity(Entity* entity); void AddEntity(int id); nlohmann::json DumpToJSON(); std::string GetPath() { return m_path; } int skyboxID = 0; protected: std::vector m_associatedEntities; private: std::string m_path; GameInstance* m_gameInstance; };