Exemple #1
0
 /// <exception cref="System.IO.IOException"/>
 public virtual void SaveChunk(net.minecraft.src.World world, net.minecraft.src.Chunk
                               chunk)
 {
     world.CheckSessionLock();
     try
     {
         java.io.DataOutputStream dataoutputstream = net.minecraft.src.RegionFileCache.Func_22120_d
                                                         (worldFolder, chunk.xPosition, chunk.zPosition);
         net.minecraft.src.NBTTagCompound nbttagcompound = new net.minecraft.src.NBTTagCompound
                                                               ();
         net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                ();
         nbttagcompound.SetTag("Level", nbttagcompound1);
         net.minecraft.src.ChunkLoader.StoreChunkInCompound(chunk, world, nbttagcompound1);
         net.minecraft.src.CompressedStreamTools.Func_771_a(nbttagcompound, dataoutputstream
                                                            );
         dataoutputstream.Close();
         net.minecraft.src.WorldInfo worldinfo = world.GetWorldInfo();
         worldinfo.SetSizeOnDisk(worldinfo.GetSizeOnDisk() + (long)net.minecraft.src.RegionFileCache
                                 .Func_22121_b(worldFolder, chunk.xPosition, chunk.zPosition));
     }
     catch (System.Exception exception)
     {
         Sharpen.Runtime.PrintStackTrace(exception);
     }
 }
 public static void StoreChunkInCompound(net.minecraft.src.Chunk chunk, net.minecraft.src.World
                                         world, net.minecraft.src.NBTTagCompound nbttagcompound)
 {
     world.CheckSessionLock();
     nbttagcompound.SetInteger("xPos", chunk.xPosition);
     nbttagcompound.SetInteger("zPos", chunk.zPosition);
     nbttagcompound.SetLong("LastUpdate", world.GetWorldTime());
     nbttagcompound.SetByteArray("Blocks", chunk.blocks);
     nbttagcompound.SetByteArray("Data", chunk.data.data);
     nbttagcompound.SetByteArray("SkyLight", chunk.skylightMap.data);
     nbttagcompound.SetByteArray("BlockLight", chunk.blocklightMap.data);
     nbttagcompound.SetByteArray("HeightMap", chunk.heightMap);
     nbttagcompound.SetBoolean("TerrainPopulated", chunk.isTerrainPopulated);
     chunk.hasEntities = false;
     net.minecraft.src.NBTTagList nbttaglist = new net.minecraft.src.NBTTagList();
     for (int i = 0; i < chunk.entities.Length; i++)
     {
         System.Collections.IEnumerator iterator = chunk.entities[i].GetEnumerator();
         do
         {
             if (!iterator.MoveNext())
             {
                 goto label0_continue;
             }
             net.minecraft.src.Entity entity = (net.minecraft.src.Entity)iterator.Current;
             chunk.hasEntities = true;
             net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                    ();
             if (entity.AddEntityID(nbttagcompound1))
             {
                 nbttaglist.SetTag(nbttagcompound1);
             }
         }while (true);
         label0_continue :;
     }
     label0_break :;
     nbttagcompound.SetTag("Entities", nbttaglist);
     net.minecraft.src.NBTTagList     nbttaglist1 = new net.minecraft.src.NBTTagList();
     net.minecraft.src.NBTTagCompound nbttagcompound2;
     for (System.Collections.IEnumerator iterator1 = chunk.chunkTileEntityMap.Values.GetEnumerator
                                                         (); iterator1.MoveNext(); nbttaglist1.SetTag(nbttagcompound2))
     {
         net.minecraft.src.TileEntity tileentity = (net.minecraft.src.TileEntity)iterator1
                                                   .Current;
         nbttagcompound2 = new net.minecraft.src.NBTTagCompound();
         tileentity.WriteToNBT(nbttagcompound2);
     }
     nbttagcompound.SetTag("TileEntities", nbttaglist1);
 }
        /// <exception cref="System.IO.IOException"/>
        public virtual void SaveChunk(net.minecraft.src.World world, net.minecraft.src.Chunk
                                      chunk)
        {
            world.CheckSessionLock();
            string file = ChunkFileForXZ(chunk.xPosition, chunk.zPosition);

            if (System.IO.File.Exists(file))
            {
                net.minecraft.src.WorldInfo worldinfo = world.GetWorldInfo();
                worldinfo.SetSizeOnDisk(worldinfo.GetSizeOnDisk() - file.Length);
            }
            try
            {
                string file1 = System.IO.Path.Combine(saveDir, "tmp_chunk.dat");
                using (FileStream fileoutputstream = File.OpenWrite(file1))
                {
                    net.minecraft.src.NBTTagCompound nbttagcompound = new net.minecraft.src.NBTTagCompound
                                                                          ();
                    net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                           ();
                    nbttagcompound.SetTag("Level", nbttagcompound1);
                    StoreChunkInCompound(chunk, world, nbttagcompound1);
                    net.minecraft.src.CompressedStreamTools.WriteGzippedCompoundToOutputStream(nbttagcompound, fileoutputstream);
                    //fileoutputstream.Close();
                }
                if (System.IO.File.Exists(file))
                {
                    System.IO.File.Delete(file);
                }
                System.IO.File.Move(file1, file);
                //file1.RenameTo(file);
                net.minecraft.src.WorldInfo worldinfo1 = world.GetWorldInfo();
                worldinfo1.SetSizeOnDisk(worldinfo1.GetSizeOnDisk() + file.Length);
            }
            catch (System.Exception exception)
            {
                Sharpen.Runtime.PrintStackTrace(exception);
            }
        }