示例#1
0
        public void LoadChunk(IChunk runtimeChunk)
        {
            using (var file = new FileStream(Path.Combine(this.m_Path, this.GetName(runtimeChunk)), FileMode.Open))
            {
                var serializer = new TychaiaDataSerializer();
                var chunk = new Chunk();
                serializer.Deserialize(file, chunk, typeof(Chunk));

                runtimeChunk.Cells = chunk.Cells;

                runtimeChunk.GeneratedIndices = chunk.Indexes;

                if (chunk.Vertexes == null)
                {
                    runtimeChunk.GeneratedVertexes = new VertexPositionTexture[0];
                }
                else
                {
                    runtimeChunk.GeneratedVertexes = new VertexPositionTexture[chunk.Vertexes.Length];
                    for (var i = 0; i < chunk.Vertexes.Length; i++)
                    {
                        runtimeChunk.GeneratedVertexes[i] =
                            new VertexPositionTexture(
                                new Vector3(chunk.Vertexes[i].X, chunk.Vertexes[i].Y, chunk.Vertexes[i].Z),
                                new Vector2(chunk.Vertexes[i].U, chunk.Vertexes[i].V));
                    }
                }

                runtimeChunk.Generated = true;
            }
        }