Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 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;
 }
Exemple #5
0
 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()
     });
 }
Exemple #6
0
 public void CopyFrom(ChunkFile chunkFile)
 {
     ID          = chunkFile.ID;
     Liquid      = chunkFile.Liquid;
     LiquidTypes = chunkFile.LiquidTypes;
     Origin      = chunkFile.Origin;
     Types       = chunkFile.Types;
     Explored    = chunkFile.Explored;
 }
Exemple #7
0
 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;
 }
Exemple #8
0
 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;
 }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
        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;
        }
Exemple #11
0
 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;
 }