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; }
public void UnloadSubworldChunks() { //Iterate subworld chunks foreach (KeyValuePair <Vec2i, LoadedChunk2> kvp in SubworldChunks) { kvp.Value.gameObject.SetActive(false); ChunkLoader.AddToChunkBuffer(kvp.Value); } SubworldChunks.Clear(); }