package imdutch21.oilcraft.block; import imdutch21.oilcraft.creativetab.OCCreativeTabs; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.UniversalBucket; public class OCBlock extends Block { public OCBlock(Material material, MapColor mapColor) { super(material, mapColor); this.setCreativeTab(OCCreativeTabs.main); } public int[] modelMetas() { return new int[]{0}; } public boolean checkForBucketClick(World worldIn, BlockPos pos, EnumHand hand, EntityPlayer playerIn, EnumFacing side) { if (worldIn.isRemote) return false; ItemStack itemStack = playerIn.getHeldItem(hand); if (worldIn.getTileEntity(pos) instanceof IFluidHandler && itemStack != null && itemStack.getItem() != null && itemStack.getItem() instanceof UniversalBucket) { TileEntity tile = worldIn.getTileEntity(pos); FluidStack fluidStack = ((UniversalBucket) itemStack.getItem()).getFluid(itemStack); if (fluidStack != null && fluidStack.getFluid() != null && ((IFluidHandler) tile).canFill(side, fluidStack.getFluid()) && ((IFluidHandler) tile).fill(side, fluidStack,false) == fluidStack.amount){ worldIn.notifyBlockUpdate(pos, worldIn.getBlockState(pos), worldIn.getBlockState(pos), 3); ((IFluidHandler) tile).fill(side, fluidStack, true); ((UniversalBucket) itemStack.getItem()).drain(itemStack, fluidStack.amount, true); return true; } } return false; } public OCBlock setSoundType(SoundType sound) { return (OCBlock) super.setSoundType(sound); } }