package net.geforcemods.securitycraft.blocks;
import java.util.Random;
import net.geforcemods.securitycraft.gui.GuiHandler;
import net.geforcemods.securitycraft.main.mod_SecurityCraft;
import net.geforcemods.securitycraft.tileentity.TileEntityKeypadFurnace;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class BlockKeypadFurnace extends BlockContainer {
private Random random = new Random();
public BlockKeypadFurnace(Material materialIn) {
super(materialIn);
}
public boolean renderAsNormalBlock(){
return false;
}
public boolean isNormalCube(){
return false;
}
public boolean isOpaqueCube(){
return false;
}
public int getRenderType(){
return -1;
}
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){
if(!par1World.isRemote){
((TileEntityKeypadFurnace) par1World.getTileEntity(par2, par3, par4)).openPasswordGUI(par5EntityPlayer);
}
return true;
}
public static void activate(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer){
par5EntityPlayer.openGui(mod_SecurityCraft.instance, GuiHandler.KEYPAD_FURNACE_GUI_ID, par1World, par2, par3, par4);
par1World.setBlockMetadataWithNotify(par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4) + 5, 3);
}
/**
* Called when the block is placed in the world.
*/
public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack){
int l = MathHelper.floor_double(par5EntityLivingBase.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(l == 0){
par1World.setBlockMetadataWithNotify(par2, par3, par4, 1, 2);
}
if(l == 1){
par1World.setBlockMetadataWithNotify(par2, par3, par4, 4, 2);
}
if(l == 2){
par1World.setBlockMetadataWithNotify(par2, par3, par4, 3, 2);
}
if(l == 3){
par1World.setBlockMetadataWithNotify(par2, par3, par4, 2, 2);
}else{
return;
}
}
public void breakBlock(World par1World, int par2, int par3, int par4, Block par5Block, int par6){
TileEntityKeypadFurnace tileentityfurnace = (TileEntityKeypadFurnace) par1World.getTileEntity(par2, par3, par4);
if (tileentityfurnace != null)
{
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null)
{
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 j1 = this.random.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(par1World, par2 + f, par3 + f1, par4 + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
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;
par1World.spawnEntityInWorld(entityitem);
}
}
}
par1World.func_147453_f(par2, par3, par4, par5Block);
}
super.breakBlock(par1World, par2, par3, par4, par5Block, par6);
}
public TileEntity createNewTileEntity(World var1, int var2) {
return new TileEntityKeypadFurnace();
}
}