public void LeaveSubworld() { UnloadSubworldChunks(); if (!CurrentSubworld.ShouldUnloadWorldOnEnter()) { foreach (KeyValuePair <Vec2i, LoadedChunk2> kvp in LoadedChunks) { kvp.Value.gameObject.SetActive(true); EntityManager.Instance?.LoadChunk(kvp.Key); } } CurrentSubworld = null; LoadedChunksCentre = null; return; /* * InSubworld = false; * foreach (KeyValuePair<Vec2i, LoadedChunk> kvp in SubworldChunks) * { * Destroy(kvp.Value.gameObject); * * } * SubworldChunks.Clear();*/ }
public void LoadSubworldChunks(Subworld sub) { CurrentSubworld = sub; if (sub.ShouldUnloadWorldOnEnter()) { UnloadAllChunks(); } else { foreach (KeyValuePair <Vec2i, LoadedChunk2> kvp in LoadedChunks) { kvp.Value.gameObject.SetActive(false); } } SubworldChunks.Clear(); foreach (ChunkData cd in sub.SubworldChunks) { //Debug.Log("Object count:" + cd.WorldObjects.Count); SubworldChunks.Add(cd.Position, ChunkLoader.GetLoadedChunk(cd, 1)); //Debug.Log("sub chunk: " + cd.Position); //ChunkLoader.LoadChunk(cd); } CurrentSubworld = sub; //ChunkLoader.ForceLoadAll(); //TODO - fix this bad boy return; }