package mods.mod_infinitedispenser;
import java.util.List;
import net.minecraft.block.*;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.dispenser.IBehaviorDispenseItem;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityDispenser;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraft.block.material.Material;
public class BlockInfiniteDispenser extends BlockDispenser {
// private Icon icon1;
public BlockInfiniteDispenser(int id)
{
super(id);
this.setCreativeTab(CreativeTabs.tabRedstone);
}
@Override
public void registerIcons(IconRegister reg)
{
this.blockIcon = reg.registerIcon("mod_infinitedispenser:side");
this.furnaceTopIcon = reg.registerIcon("mod_infinitedispenser:side");
//this.furnaceTopIcon = reg.registerIcon("furnace_top");
this.furnaceFrontIcon = reg.registerIcon("mod_infinitedispenser:front_top");
this.field_96473_e = reg.registerIcon("mod_infinitedispenser:front");
}
protected void dispense(World par1World, int par2, int par3, int par4)
{
BlockSourceImpl blocksourceimpl = new BlockSourceImpl(par1World, par2, par3, par4);
TileEntityDispenser tileentitydispenser = (TileEntityDispenser)blocksourceimpl.getBlockTileEntity();
if (tileentitydispenser != null)
{
int l = tileentitydispenser.getRandomStackFromInventory();
if (l < 0)
{
par1World.playAuxSFX(1001, par2, par3, par4, 0);
}
else
{
ItemStack itemstack = tileentitydispenser.getStackInSlot(l);
IBehaviorDispenseItem ibehaviordispenseitem = this.getBehaviorForItemStack(itemstack);
if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider)
{
/*if (itemstack.stackSize<64)
{
++itemstack.stackSize;
}*/
ItemStack itemstack1 = ibehaviordispenseitem.dispense(blocksourceimpl, itemstack);
itemstack1.stackSize = itemstack1.getMaxStackSize();
tileentitydispenser.setInventorySlotContents(l, itemstack1.stackSize == 0 ? null : itemstack1);
}
}
}
}
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
if (par1World.isRemote)
{
return true;
}
else
{
TileEntityDispenser tileentitydispenser = (TileEntityDispenser)par1World.getBlockTileEntity(par2, par3, par4);
if (tileentitydispenser != null)
{
tileentitydispenser.setCustomName("Infinite dispenser");
par5EntityPlayer.displayGUIDispenser(tileentitydispenser);
}
return true;
}
}
}