public static ChunkFile CreateFromChunk(VoxelChunk chunk) { var r = new ChunkFile { ID = chunk.ID, Types = new byte[VoxelConstants.ChunkVoxelCount], Liquid = new byte[VoxelConstants.ChunkVoxelCount], GrassType = new byte[VoxelConstants.ChunkVoxelCount], RampsSunlightExplored = new byte[VoxelConstants.ChunkVoxelCount], Decals = new byte[VoxelConstants.ChunkVoxelCount], Origin = chunk.Origin }; chunk.Data.Types.CopyTo(r.Types, 0); chunk.Data.Grass.CopyTo(r.GrassType, 0); chunk.Data.RampsSunlightExploredPlayerBuilt.CopyTo(r.RampsSunlightExplored, 0); chunk.Data.Liquid.CopyTo(r.Liquid, 0); chunk.Data.Decal.CopyTo(r.Decals, 0); r.VoxelTypeMap = Library.GetVoxelTypeMap(); r.GrassTypeMap = Library.GetGrassTypeMap(); r.DecalTypeMap = Library.GetDecalTypeMap(); return(r); }
public bool ReadFile(string filePath, bool isCompressed, bool isBinary) { if (!isBinary) { ChunkFile chunkFile = FileUtils.LoadJson <ChunkFile>(filePath, isCompressed); if (chunkFile == null) { return(false); } CopyFrom(chunkFile); return(true); } else { ChunkFile chunkFile = FileUtils.LoadBinary <ChunkFile>(filePath); if (chunkFile == null) { return(false); } CopyFrom(chunkFile); return(true); } }
public bool SaveAllChunks(string directory, bool compress) { foreach (KeyValuePair <Point3, VoxelChunk> pair in ChunkMap) { ChunkFile chunkFile = new ChunkFile(pair.Value); string fileName = directory + Path.DirectorySeparatorChar + pair.Key.X + "_" + pair.Key.Y + "_" + pair.Key.Z; if (compress) { fileName += ".zch"; } else { fileName += ".jch"; } if (!chunkFile.WriteFile(fileName, compress)) { return(false); } } return(true); }
public void CopyFrom(ChunkFile chunkFile) { this.ID = chunkFile.ID; this.Liquid = chunkFile.Liquid; this.LiquidTypes = chunkFile.LiquidTypes; this.Origin = chunkFile.Origin; this.Size = chunkFile.Size; this.Types = chunkFile.Types; }
public static SaveGame CreateFromWorld(WorldManager World) { return(new SaveGame { Metadata = MetaData.CreateFromWorld(World), PlayData = PlayData.CreateFromWorld(World), ChunkData = World.ChunkManager.GetChunkEnumerator().Select(c => ChunkFile.CreateFromChunk(c)).ToList() }); }
public void CopyFrom(ChunkFile chunkFile) { ID = chunkFile.ID; Liquid = chunkFile.Liquid; LiquidTypes = chunkFile.LiquidTypes; Origin = chunkFile.Origin; Types = chunkFile.Types; Explored = chunkFile.Explored; }
public void CopyFrom(ChunkFile chunkFile) { ID = chunkFile.ID; Liquid = chunkFile.Liquid; Origin = chunkFile.Origin; Types = chunkFile.Types; GrassType = chunkFile.GrassType; Decals = chunkFile.Decals; RampsSunlightExplored = chunkFile.RampsSunlightExplored; }
public void CopyFrom(ChunkFile chunkFile) { ID = chunkFile.ID; Liquid = chunkFile.Liquid; LiquidTypes = chunkFile.LiquidTypes; Origin = chunkFile.Origin; Types = chunkFile.Types; Explored = chunkFile.Explored; GrassType = chunkFile.GrassType; GrassDecay = chunkFile.GrassDecay; Decals = chunkFile.Decals; }
public ChunkFile(string fileName, bool binary) { ChunkFile chunkFile = null; if (!binary) { chunkFile = FileUtils.LoadJsonFromAbsolutePath <ChunkFile>(fileName); } else { chunkFile = FileUtils.LoadBinary <ChunkFile>(fileName); } if (chunkFile != null) { CopyFrom(chunkFile); } }
public bool SaveAllChunks(string directory, bool compress) { foreach(KeyValuePair<Point3, VoxelChunk> pair in ChunkMap) { ChunkFile chunkFile = new ChunkFile(pair.Value); string fileName = directory + Path.DirectorySeparatorChar + pair.Key.X + "_" + pair.Key.Y + "_" + pair.Key.Z; if(compress) { fileName += ".zch"; } else { fileName += ".jch"; } if(!chunkFile.WriteFile(fileName, compress)) { return false; } } return true; }