package com.minemaarten.advancedmod.block; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.minemaarten.advancedmod.AdvancedMod; import com.minemaarten.advancedmod.GuiHandler; import com.minemaarten.advancedmod.reference.Reference; import com.minemaarten.advancedmod.tileentity.TileEntityCamoMine; import com.minemaarten.advancedmod.utility.Names; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class BlockCamoMine extends BlockAdvancedModTileEntity{ public BlockCamoMine(){ setBlockName(Names.Blocks.CAMO_MINE); setBlockTextureName(Reference.MOD_ID_LOWER + ":" + Names.Blocks.CAMO_MINE); } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_){ return new TileEntityCamoMine(); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){ if(!world.isRemote) { if(player.isSneaking()) { player.openGui(AdvancedMod.instance, GuiHandler.GuiIDs.CAMO_MINE.ordinal(), world, x, y, z); } else { TileEntityCamoMine te = (TileEntityCamoMine)world.getTileEntity(x, y, z); if(te.getCamouflage(side) != null) { ItemStack camoStack = te.getCamouflage(side); te.setCamouflage(null, side); EntityItem itemEntity = new EntityItem(world, x, y, z, camoStack); world.spawnEntityInWorld(itemEntity); } else { ItemStack playerItem = player.getCurrentEquippedItem(); if(playerItem != null) { ItemStack camoStack = playerItem.splitStack(1); te.setCamouflage(camoStack, side); } } } } return true; } @Override @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ TileEntityCamoMine te = (TileEntityCamoMine)world.getTileEntity(x, y, z); ItemStack stack = te.getCamouflage(side); if(stack != null && stack.getItem() instanceof ItemBlock) { Block block = ((ItemBlock)stack.getItem()).field_150939_a; return block.getIcon(side, stack.getItemDamage()); } else { return super.getIcon(world, x, y, z, side); } } }