Exemplo n.º 1
0
        internal static Tuple <int, int, SaveChunk> TranslateToSave(this GameSave gameSave, Chunk chunk)
        {
            if (!chunk.Loaded)
            {
                throw new ArgumentException("Chunk isn't loaded.", "chunk");
            }

            var saveOctrees = new SaveOctree[chunk.Octrees.Length];

            for (int i = 0; i < chunk.Octrees.Length; i++)
            {
                saveOctrees[i] = gameSave.TranslateOctree(chunk.Octrees[i]);
            }

            SaveBlockTypeTable saveBlockTypeTable = gameSave.TranslateBlockTypeTable(BlockManager.GetAll());
            //TODO: Find most used blocks in chunk?

            var saveChunk = new SaveChunk(gameSave, saveBlockTypeTable, saveOctrees);

            return(new Tuple <int, int, SaveChunk>(chunk.X, chunk.Z, saveChunk));
        }
Exemplo n.º 2
0
        internal static Tuple<int, int, SaveChunk> TranslateToSave(this GameSave gameSave, Chunk chunk)
        {
            if (!chunk.Loaded)
            {
                throw new ArgumentException("Chunk isn't loaded.", "chunk");
            }

            var saveOctrees = new SaveOctree[chunk.Octrees.Length];

            for (int i = 0; i < chunk.Octrees.Length; i++)
            {
                saveOctrees[i] = gameSave.TranslateOctree(chunk.Octrees[i]);
            }

            SaveBlockTypeTable saveBlockTypeTable = gameSave.TranslateBlockTypeTable(BlockManager.GetAll());
            //TODO: Find most used blocks in chunk?

            var saveChunk = new SaveChunk(gameSave, saveBlockTypeTable, saveOctrees);

            return new Tuple<int, int, SaveChunk>(chunk.X, chunk.Z, saveChunk);
        }