All pastes #2095543 Raw Edit

Unnamed

public text v1 · immutable
#2095543 ·published 2011-11-24 22:33 UTC
rendered paste body
package net.minecraft.src;

import java.util.Random;

public class BlockDiamondFurnace extends BlockContainer
{

    protected BlockDiamondFurnace(int i, boolean flag)
    {
        super(i, Material.rock);
        DiamondfurnaceRand = new Random();
        isActive = flag;
        blockIndexInTexture = 45;
    }

    public int idDropped(int i, Random random)
    {
        return mod_Furnace.DiamondFurnace.blockID;
    }

    public void onBlockAdded(World world, int i, int j, int k)
    {
        super.onBlockAdded(world, i, j, k);
        
    }
    

    public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
    {
        if(world.multiplayerWorld)
        {
            return true;
        }
        TileEntityDiamondFurnace tileentityDiamondfurnace = (TileEntityDiamondFurnace)world.getBlockTileEntity(i, j, k);
        if(tileentityDiamondfurnace != null)
        {
            ModLoader.OpenGUI(ModLoader.getMinecraftInstance().thePlayer, new GuiDiamondfurnace(ModLoader.getMinecraftInstance().thePlayer.inventory, tileentityDiamondfurnace));
        }
        return true;
    }

    public static void updateDiamondFurnaceBlockState(boolean flag, World world, int i, int j, int k)
    {
        int l = world.getBlockMetadata(i, j, k);
        TileEntity tileentity = world.getBlockTileEntity(i, j, k);
        keepDiamondFurnaceInventory = true;
        keepDiamondFurnaceInventory = false;
        world.setBlockMetadataWithNotify(i, j, k, l);
        if(tileentity != null)
        {
            tileentity.validate();
            world.setBlockTileEntity(i, j, k, tileentity);
        }
    }

    public TileEntity getBlockEntity()
    {
        return new TileEntityFurnace();
    }

    public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving)
    {
        int l = MathHelper.floor_double((double)((entityliving.rotationYaw * 4F) / 360F) + 0.5D) & 3;
        if(l == 0)
        {
            world.setBlockMetadataWithNotify(i, j, k, 2);
        }
        if(l == 1)
        {
            world.setBlockMetadataWithNotify(i, j, k, 5);
        }
        if(l == 2)
        {
            world.setBlockMetadataWithNotify(i, j, k, 3);
        }
        if(l == 3)
        {
            world.setBlockMetadataWithNotify(i, j, k, 4);
        }
    }

    public void onBlockRemoval(World world, int i, int j, int k)
    {
        if(!keepDiamondFurnaceInventory)
        {
            TileEntityDiamondFurnace tileentityDiamondfurnace = (TileEntityDiamondFurnace)world.getBlockTileEntity(i, j, k);
            if(tileentityDiamondfurnace != null)
            {
label0:
                for(int l = 0; l < tileentityDiamondfurnace.getSizeInventory(); l++)
                {
                    ItemStack itemstack = tileentityDiamondfurnace.getStackInSlot(l);
                    if(itemstack == null)
                    {
                        continue;
                    }
                    float f = DiamondfurnaceRand.nextFloat() * 0.8F + 0.1F;
                    float f1 = DiamondfurnaceRand.nextFloat() * 0.8F + 0.1F;
                    float f2 = DiamondfurnaceRand.nextFloat() * 0.8F + 0.1F;
                    do
                    {
                        if(itemstack.stackSize <= 0)
                        {
                            continue label0;
                        }
                        int i1 = DiamondfurnaceRand.nextInt(21) + 10;
                        if(i1 > itemstack.stackSize)
                        {
                            i1 = itemstack.stackSize;
                        }
                        itemstack.stackSize -= i1;
                        EntityItem entityitem = new EntityItem(world, (float)i + f, (float)j + f1, (float)k + f2, new ItemStack(itemstack.itemID, i1, itemstack.getItemDamage()));
                        float f3 = 0.05F;
                        entityitem.motionX = (float)DiamondfurnaceRand.nextGaussian() * f3;
                        entityitem.motionY = (float)DiamondfurnaceRand.nextGaussian() * f3 + 0.2F;
                        entityitem.motionZ = (float)DiamondfurnaceRand.nextGaussian() * f3;
                        world.entityJoinedWorld(entityitem);
                    } while(true);
                }

            }
        }
        super.onBlockRemoval(world, i, j, k);
    }

    private Random DiamondfurnaceRand;
    private final boolean isActive;
    private static boolean keepDiamondFurnaceInventory = false;

}