private void UpdatePistonState(net.minecraft.src.World world, int i, int j, int k
                                       )
        {
            int  l    = world.GetBlockMetadata(i, j, k);
            int  i1   = GetOrientation(l);
            bool flag = IsPowered(world, i, j, k, i1);

            if (l == 7)
            {
                return;
            }
            if (flag && !IsExtended(l))
            {
                if (CanExtend(world, i, j, k, i1))                 //TODO: bukkit bool -> int return on CanExtend
                {
                    world.SetBlockMetadata(i, j, k, i1 | 8);
                    world.PlayNoteAt(i, j, k, 0, i1);
                }
            }
            else
            {
                if (!flag && IsExtended(l))
                {
                    world.SetBlockMetadata(i, j, k, i1);
                    world.PlayNoteAt(i, j, k, 1, i1);
                }
            }
        }
        public virtual void TriggerNote(net.minecraft.src.World world, int i, int j, int
                                        k)
        {
            if (world.GetBlockMaterial(i, j + 1, k) != net.minecraft.src.Material.air)
            {
                return;
            }
            net.minecraft.src.Material material = world.GetBlockMaterial(i, j - 1, k);
            byte byte0 = 0;

            if (material == net.minecraft.src.Material.rock)
            {
                byte0 = 1;
            }
            if (material == net.minecraft.src.Material.sand)
            {
                byte0 = 2;
            }
            if (material == net.minecraft.src.Material.glass)
            {
                byte0 = 3;
            }
            if (material == net.minecraft.src.Material.wood)
            {
                byte0 = 4;
            }
            world.PlayNoteAt(i, j, k, byte0, note);
        }