package crazypants.enderio.conduit.liquid; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import com.enderio.core.api.client.gui.IAdvancedTooltipProvider; import com.enderio.core.client.handlers.SpecialTooltipHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import crazypants.enderio.EnderIO; import crazypants.enderio.ModObject; import crazypants.enderio.conduit.AbstractItemConduit; import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.ItemConduitSubtype; import crazypants.enderio.config.Config; public class ItemLiquidConduit extends AbstractItemConduit implements IAdvancedTooltipProvider { private static ItemConduitSubtype[] subtypes = new ItemConduitSubtype[] { new ItemConduitSubtype(ModObject.itemLiquidConduit.name(), "enderio:itemLiquidConduit"), new ItemConduitSubtype(ModObject.itemLiquidConduit.name() + "Advanced", "enderio:itemLiquidConduitAdvanced"), new ItemConduitSubtype(ModObject.itemLiquidConduit.name() + "Ender", "enderio:itemLiquidConduitEnder") }; public static ItemLiquidConduit create() { ItemLiquidConduit result = new ItemLiquidConduit(); result.init(); return result; } protected ItemLiquidConduit() { super(ModObject.itemLiquidConduit, subtypes); } @Override public Class<? extends IConduit> getBaseConduitType() { return ILiquidConduit.class; } @Override public IConduit createConduit(ItemStack stack, EntityPlayer player) { if(stack.getItemDamage() == 1) { return new AdvancedLiquidConduit(); } else if(stack.getItemDamage() == 2) { return new EnderLiquidConduit(); } return new LiquidConduit(); } @Override @SideOnly(Side.CLIENT) public void addCommonEntries(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) { } @Override @SideOnly(Side.CLIENT) public void addBasicEntries(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) { } @Override @SideOnly(Side.CLIENT) public void addDetailedEntries(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) { int extractRate; int maxIo; if(itemstack.getItemDamage() == 0) { extractRate = Config.fluidConduitExtractRate; maxIo = Config.fluidConduitMaxIoRate; } else if(itemstack.getItemDamage() == 1){ extractRate = Config.advancedFluidConduitExtractRate; maxIo = Config.advancedFluidConduitMaxIoRate; } else { extractRate = Config.enderFluidConduitExtractRate; maxIo = Config.enderFluidConduitMaxIoRate; } String mbt = " " + EnderIO.lang.localize("fluid.millibucketsTick"); list.add(EnderIO.lang.localize("itemLiquidConduit.tooltip.maxExtract") + " " + extractRate + mbt); list.add(EnderIO.lang.localize("itemLiquidConduit.tooltip.maxIo") + " " + maxIo + mbt); if(itemstack.getItemDamage() == 0) { SpecialTooltipHandler.addDetailedTooltipFromResources(list, "enderio.itemLiquidConduit"); } else if(itemstack.getItemDamage() == 2) { SpecialTooltipHandler.addDetailedTooltipFromResources(list, "enderio.itemLiquidConduitEnder"); } } @Override public boolean shouldHideFacades(ItemStack stack, EntityPlayer player) { return true; } }