package net.brokenmoon.afloydironchest.blocks; import net.brokenmoon.afloydironchest.MixinInterfaces.IEntityPlayerMP; import net.brokenmoon.afloydironchest.MixinInterfaces.IEntityPlayerSP; import net.brokenmoon.afloydironchest.tileEntities.TileEntityDiamondChest; import net.minecraft.src.*; import java.util.Random; public class DiamondChest extends BlockContainer{ Random random = new Random(); public DiamondChest(int id, Material blockMaterial){ super(id, blockMaterial); } @Override public void onBlockRemoval(World world, int i, int j, int k) { TileEntityDiamondChest te = (TileEntityDiamondChest)world.getBlockTileEntity(i, j, k); for (int l = 0; l < te.getSizeInventory(); ++l) { ItemStack itemstack = te.getStackInSlot(l); if (itemstack == null) continue; float f = this.random.nextFloat() * 0.8f + 0.1f; float f1 = this.random.nextFloat() * 0.8f + 0.1f; float f2 = this.random.nextFloat() * 0.8f + 0.1f; while (itemstack.stackSize > 0) { int i1 = this.random.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.getMetadata())); float f3 = 0.05f; entityitem.motionX = (float)this.random.nextGaussian() * f3; entityitem.motionY = (float)this.random.nextGaussian() * f3 + 0.2f; entityitem.motionZ = (float)this.random.nextGaussian() * f3; world.entityJoinedWorld(entityitem); } } super.onBlockRemoval(world, i, j, k); } @Override public boolean blockActivated(World world, int x, int y, int z, EntityPlayer entityplayer) { IInventory chest = (TileEntityDiamondChest)world.getBlockTileEntity(x, y, z); if (!world.isMultiplayerAndNotHost) { this.displayGui(entityplayer, chest); } return true; } @Override protected TileEntity getBlockEntity() { return new TileEntityDiamondChest(); } public static void displayGui(EntityPlayer player, IInventory inventory){ if(player instanceof EntityPlayerMP) { //Multiplayer ((IEntityPlayerMP)player).displayGUIIronChest(inventory); return; } //Singleplayer ((IEntityPlayerSP)player).displayGUIIronChest(inventory); } }