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);
 }
        private bool CheckForBurnout(net.minecraft.src.World world, int i, int j, int k,
                                     bool flag)
        {
            if (flag)
            {
                torchUpdates.Add(new net.minecraft.src.RedstoneUpdateInfo(i, j, k, world.GetWorldTime
                                                                              ()));
            }
            int l = 0;

            for (int i1 = 0; i1 < torchUpdates.Count; i1++)
            {
                net.minecraft.src.RedstoneUpdateInfo redstoneupdateinfo = (net.minecraft.src.RedstoneUpdateInfo
                                                                           )torchUpdates[i1];
                if (redstoneupdateinfo.x == i && redstoneupdateinfo.y == j && redstoneupdateinfo.
                    z == k && ++l >= 8)
                {
                    return(true);
                }
            }
            return(false);
        }
        public override void UpdateTick(net.minecraft.src.World world, int i, int j, int
                                        k, SharpBukkitLive.SharpBukkit.SharpRandom random)
        {
            bool flag = Func_30003_g(world, i, j, k);

            for (; torchUpdates.Count > 0 && world.GetWorldTime() - ((net.minecraft.src.RedstoneUpdateInfo
                                                                      )torchUpdates[0]).updateTime > 100L; torchUpdates.RemoveAt(0))
            {
            }
            if (torchActive)
            {
                if (flag)
                {
                    world.SetBlockAndMetadataWithNotify(i, j, k, net.minecraft.src.Block.REDSTONE_TORCH_OFF
                                                        .ID, world.GetBlockMetadata(i, j, k));
                    if (CheckForBurnout(world, i, j, k, true))
                    {
                        world.PlaySoundEffect((float)i + 0.5F, (float)j + 0.5F, (float)k + 0.5F, "random.fizz"
                                              , 0.5F, 2.6F + (world.rand.NextFloat() - world.rand.NextFloat()) * 0.8F);
                        for (int l = 0; l < 5; l++)
                        {
                            double d  = (double)i + random.NextDouble() * 0.59999999999999998D + 0.20000000000000001D;
                            double d1 = (double)j + random.NextDouble() * 0.59999999999999998D + 0.20000000000000001D;
                            double d2 = (double)k + random.NextDouble() * 0.59999999999999998D + 0.20000000000000001D;
                            world.SpawnParticle("smoke", d, d1, d2, 0.0D, 0.0D, 0.0D);
                        }
                    }
                }
            }
            else
            {
                if (!flag && !CheckForBurnout(world, i, j, k, false))
                {
                    world.SetBlockAndMetadataWithNotify(i, j, k, net.minecraft.src.Block.REDSTONE_TORCH_ON
                                                        .ID, world.GetBlockMetadata(i, j, k));
                }
            }
        }