Example #1
0
 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);
 }
Example #2
0
 protected internal override void WriteEntityToNBT(net.minecraft.src.NBTTagCompound
                                                   nbttagcompound)
 {
     nbttagcompound.SetInteger("Type", minecartType);
     if (minecartType == 2)
     {
         nbttagcompound.SetDouble("PushX", pushX);
         nbttagcompound.SetDouble("PushZ", pushZ);
         nbttagcompound.SetShort("Fuel", (short)fuel);
     }
     else
     {
         if (minecartType == 1)
         {
             net.minecraft.src.NBTTagList nbttaglist = new net.minecraft.src.NBTTagList();
             for (int i = 0; i < cargoItems.Length; i++)
             {
                 if (cargoItems[i] != null)
                 {
                     net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                            ();
                     nbttagcompound1.SetByte("Slot", unchecked ((byte)i));
                     cargoItems[i].WriteToNBT(nbttagcompound1);
                     nbttaglist.SetTag(nbttagcompound1);
                 }
             }
             nbttagcompound.SetTag("Items", nbttaglist);
         }
     }
 }
Example #3
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);
     }
 }
Example #4
0
 public virtual void Func_22094_a(net.minecraft.src.WorldInfo worldinfo)
 {
     net.minecraft.src.NBTTagCompound nbttagcompound  = worldinfo.Func_22185_a();
     net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                            ();
     nbttagcompound1.SetTag("Data", nbttagcompound);
     try
     {
         string file  = System.IO.Path.Combine(worldDir, "level.dat_new");
         string file1 = System.IO.Path.Combine(worldDir, "level.dat_old");
         string file2 = System.IO.Path.Combine(worldDir, "level.dat");
         using (FileStream fs = File.OpenWrite(file))
             net.minecraft.src.CompressedStreamTools.WriteGzippedCompoundToOutputStream(nbttagcompound1, fs);
         if (File.Exists(file1))
         {
             File.Delete(file1);
         }
         File.Move(file2, file1);
         if (File.Exists(file2))
         {
             File.Delete(file2);
         }
         File.Move(file, file2);
         if (File.Exists(file))
         {
             File.Delete(file);
         }
     }
     catch (System.Exception exception)
     {
         Sharpen.Runtime.PrintStackTrace(exception);
     }
 }
Example #5
0
        public virtual void WriteToNBT(net.minecraft.src.NBTTagCompound nbttagcompound)
        {
            // CRAFTBUKKIT start
            if (float.IsNaN(rotationYaw))
            {
                rotationYaw = 0;
            }
            if (float.IsNaN(rotationPitch))
            {
                rotationPitch = 0;
            }
            // CRAFTBUKKIT end

            nbttagcompound.SetTag("Pos", NewDoubleNBTList(new double[] { posX, posY + (double)ySize, posZ }));
            nbttagcompound.SetTag("Motion", NewDoubleNBTList(new double[] { motionX, motionY, motionZ }));
            nbttagcompound.SetTag("Rotation", NewFloatNBTList(new float[] { rotationYaw, rotationPitch }));
            nbttagcompound.SetFloat("FallDistance", fallDistance);
            nbttagcompound.SetShort("Fire", (short)fire);
            nbttagcompound.SetShort("Air", (short)air);
            nbttagcompound.SetBoolean("OnGround", onGround);
            WriteEntityToNBT(nbttagcompound);
        }
Example #6
0
 protected internal override void WriteEntityToNBT(net.minecraft.src.NBTTagCompound
                                                   nbttagcompound)
 {
     base.WriteEntityToNBT(nbttagcompound);
     nbttagcompound.SetTag("Inventory", inventory.WriteToNBT(new net.minecraft.src.NBTTagList
                                                                 ()));
     nbttagcompound.SetInteger("Dimension", dimension);
     nbttagcompound.SetBoolean("Sleeping", sleeping);
     nbttagcompound.SetShort("SleepTimer", (short)sleepTimer);
     if (spawnChunk != null)
     {
         nbttagcompound.SetInteger("SpawnX", spawnChunk.posX);
         nbttagcompound.SetInteger("SpawnY", spawnChunk.posY);
         nbttagcompound.SetInteger("SpawnZ", spawnChunk.posZ);
     }
 }
Example #7
0
 public override void WriteToNBT(net.minecraft.src.NBTTagCompound nbttagcompound)
 {
     base.WriteToNBT(nbttagcompound);
     net.minecraft.src.NBTTagList nbttaglist = new net.minecraft.src.NBTTagList();
     for (int i = 0; i < items.Length; i++)
     {
         if (items[i] != null)
         {
             net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                    ();
             nbttagcompound1.SetByte("Slot", unchecked ((byte)i));
             items[i].WriteToNBT(nbttagcompound1);
             nbttaglist.SetTag(nbttagcompound1);
         }
     }
     nbttagcompound.SetTag("Items", nbttaglist);
 }
Example #8
0
 public override void WriteToNBT(net.minecraft.src.NBTTagCompound nbttagcompound)
 {
     base.WriteToNBT(nbttagcompound);
     nbttagcompound.SetShort("BurnTime", (short)furnaceBurnTime);
     nbttagcompound.SetShort("CookTime", (short)furnaceCookTime);
     net.minecraft.src.NBTTagList nbttaglist = new net.minecraft.src.NBTTagList();
     for (int i = 0; i < furnaceItemStacks.Length; i++)
     {
         if (furnaceItemStacks[i] != null)
         {
             net.minecraft.src.NBTTagCompound nbttagcompound1 = new net.minecraft.src.NBTTagCompound
                                                                    ();
             nbttagcompound1.SetByte("Slot", unchecked ((byte)i));
             furnaceItemStacks[i].WriteToNBT(nbttagcompound1);
             nbttaglist.SetTag(nbttagcompound1);
         }
     }
     nbttagcompound.SetTag("Items", nbttaglist);
 }
Example #9
0
        /// <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);
            }
        }