コード例 #1
0
        /**
         * Save and serialize a chunk.
         **/
        public static void SerializeChunk(Chunk chunk)
        {
            ChunkSerialized save = new ChunkSerialized(chunk);

            if (save.empty)
            {
                return;
            }

            string saveFile = FileManager.SaveLocation(chunk.world.worldName);

            saveFile += FileName(chunk.pos);

            IFormatter formatter = new BinaryFormatter();
            Stream     stream    = new FileStream(saveFile, FileMode.Create, FileAccess.Write, FileShare.None);

            formatter.Serialize(stream, save);
            stream.Close();
        }
コード例 #2
0
        /**
         * Unserialize and load a chunk.
         **/
        public static bool DeserializeChunk(Chunk chunk)
        {
            string saveFile = FileManager.SaveLocation(chunk.world.worldName);

            saveFile += FileName(chunk.pos);

            if (!File.Exists(saveFile))
            {
                return(false);
            }

            IFormatter formatter = new BinaryFormatter();
            FileStream stream    = new FileStream(saveFile, FileMode.Open);

            ChunkSerialized save = (ChunkSerialized)formatter.Deserialize(stream);

            chunk.blocks = save.blocks;
            chunk.meta   = save.meta;

            stream.Close();

            return(true);
        }