示例#1
0
        private static void SaveChunk(BinaryWriter writer, ChunkData chunk)
        {
            writer.Write(chunk.pos.x);
            writer.Write(chunk.pos.y);
            writer.Write(chunk.pos.z);

            for (int z = 0; z < MapConstants.ChunkSize; z++)
            {
                for (int y = 0; y < MapConstants.ChunkSize; y++)
                {
                    for (int x = 0; x < MapConstants.ChunkSize; x++)
                    {
                        writer.Write((int)chunk.GetBlock(x, y, z));
                    }
                }
            }
        }
示例#2
0
        private void BuildMesh()
        {
            rendered = true;
            MeshData meshData = new MeshData(world.data);

            for (int y = 0; y < MapConstants.ChunkSize; y++)
            {
                for (int z = 0; z < MapConstants.ChunkSize; z++)
                {
                    for (int x = 0; x < MapConstants.ChunkSize; x++)
                    {
                        var block = data.GetBlock(x, y, z);
                        meshData.AddBlock(block, pos.x + x, pos.y + y, pos.z + z);
                    }
                }
            }

            // TOOD: ThreadNinja might help
            // yield return Ninja.JumpToUnity;
            RenderMesh(meshData);
        }