Exemplo n.º 1
0
        public ChunkSaveData(Chunk chunk)
        {
            this.ChunkPos = new Vector3IntSaveData(chunk.ChunkPos);
            int blockArraySize = chunk.Blocks.GetLength(0);

            if (chunk.HasGeneratedChunkData == true)
            {
                this.Blocks = new BlockSaveData[blockArraySize * blockArraySize * blockArraySize];
                Block[] blockArray = chunk.Blocks.ToSingleArray();
                for (int i = 0; i < blockArray.Length; i++)
                {
                    this.Blocks[i] = new BlockSaveData(blockArray[i].ID);
                }
            }
            else
            {
                this.Blocks = new BlockSaveData[1];
            }
            if (chunk.UnloadedChunkBlockUpdates.Count > 0)
            {
                this.HasUnloadedChunkBlockUpdates = true;
                this.UnloadedChunkBlockUpdates    = new BlockUpdateSaveData[chunk.UnloadedChunkBlockUpdates.Count];
                int j = 0;
                while (chunk.UnloadedChunkBlockUpdates.Count > 0)
                {
                    if (chunk.UnloadedChunkBlockUpdates.TryDequeue(out Block.BlockUpdate blockUpdate))
                    {
                        this.UnloadedChunkBlockUpdates[j] = new BlockUpdateSaveData(blockUpdate);
                        j++;
                    }
                }
            }
            else
            {
                this.HasUnloadedChunkBlockUpdates = false;
                this.UnloadedChunkBlockUpdates    = new BlockUpdateSaveData[1];
            }
            this.HasGeneratedChunkData = chunk.HasGeneratedChunkData;
        }
Exemplo n.º 2
0
    /////////////////////////////////////////////////////////////////////////////////
    /// Vector3IntSaveData
    /////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    /// Converts a Vector3IntSaveData to a Vector3Int.
    /// </summary>
    /// <param name="v3SO">The Vector3IntSaveData to convert to a Vector3Int.</param>
    /// <returns>Returns a Vector3Int.</returns>
    public static Vector3Int ToVector3Int(this Vector3IntSaveData v3SO)
    {
        return(new Vector3Int(v3SO.x, v3SO.y, v3SO.z));
    }
Exemplo n.º 3
0
 public BlockUpdateSaveData(Block.BlockUpdate blockUpdate)
 {
     this.WorldPos = new Vector3IntSaveData(blockUpdate.WorldPos);
     this.ID       = blockUpdate.Block.ID;
 }