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();
 }