package resonantinduction.mechanical.fluid; import java.util.List; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.ItemFluidContainer; import resonantinduction.core.ResonantInductionTabs; import resonantinduction.old.transport.ResonantInductionTransport; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; /** * Small fluid can that is designed to store up to one bucket of fluid. Doesn't work like a bucket * as it is sealed with a pressure cap. This can is designed to work with tools or machines only. * * @author DarkGuardsman */ public class ItemFluidCan extends ItemFluidContainer { public static final String FLUID_NBT = "FluidStack"; @SideOnly(Side.CLIENT) public Icon[] icons; public ItemFluidCan() { super(ResonantInductionTransport.CONFIGURATION.getItem("FluidCan", DarkCore.getNextItemId()).getInt()); this.setUnlocalizedName("FluidCan"); this.setCreativeTab(ResonantInductionTabs.tabHydraulic()); this.setMaxStackSize(1); this.setMaxDamage(100); this.setNoRepair(); this.capacity = FluidContainerRegistry.BUCKET_VOLUME * 2; this.setContainerItem(this); } @Override public boolean doesContainerItemLeaveCraftingGrid(ItemStack par1ItemStack) { FluidStack fluidStack = this.drain(par1ItemStack, Integer.MAX_VALUE, false); if (fluidStack != null) { return false; } return true; } @Override public String getItemDisplayName(ItemStack par1ItemStack) { String fluid = ""; FluidStack fluidStack = this.drain(par1ItemStack, Integer.MAX_VALUE, false); if (fluidStack != null) { fluid = fluidStack.getFluid().getLocalizedName(); } return ("" + (fluid + " " + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(par1ItemStack) + ".name"))).trim(); } @Override public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { FluidStack fluidStack = this.drain(par1ItemStack, Integer.MAX_VALUE, false); if (fluidStack != null) { par3List.add("Volume: " + fluidStack.amount + "mb"); } } @Override public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) { par3List.add(new ItemStack(this)); ItemStack waterCan = new ItemStack(this); this.fill(waterCan, new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), true); par3List.add(waterCan); ItemStack lavaCan = new ItemStack(this); this.fill(lavaCan, new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), true); par3List.add(lavaCan); } }