@Override public void getSubItems(Item id, CreativeTabs tab, List list) { // Vanilla style arrow Item accessory = getAccessoryItem(); ItemStack accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, 0) : null; Item extra = getExtraItem(); ItemStack extraStack = extra != null ? new ItemStack(extra, 1, 0) : null; ItemStack tool = ToolBuilder.instance.buildTool( new ItemStack(getHeadItem(), 1, 3), new ItemStack(getHandleItem(), 1, 0), accessoryStack, extraStack, ""); if (tool != null) { tool.stackSize = 1; tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true); list.add(tool); } // Random arrow accessory = getAccessoryItem(); accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, random.nextInt(4)) : null; extra = getExtraItem(); extraStack = extra != null ? new ItemStack(extra, 1, 0) : null; tool = ToolBuilder.instance.buildTool( new ItemStack(getHeadItem(), 1, random.nextInt(18)), new ItemStack(getHandleItem(), 1, random.nextInt(18)), accessoryStack, extraStack, StatCollector.translateToLocal("item.tool.randomarrow")); if (tool != null) { tool.stackSize = 1; tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true); list.add(tool); } super.getSubItems(id, tab, list); }
@Override public IIcon getIcon(ItemStack stack, int renderPass) { NBTTagCompound tags = stack.getTagCompound(); if (tags != null) { tags = stack.getTagCompound().getCompoundTag("InfiTool"); if (renderPass < getPartAmount()) { if (renderPass == 0) // Handle { if (tags.getBoolean("Broken")) return (brokenIcons.get(tags.getInteger("RenderHandle"))); return handleIcons.get(tags.getInteger("RenderHandle")); } else if (renderPass == 1) // Head { return (headIcons.get(tags.getInteger("RenderHead"))); } else if (renderPass == 2) // Accessory { return (accessoryIcons.get(tags.getInteger("RenderAccessory"))); } else if (renderPass == 3) // Extra { return (extraIcons.get(tags.getInteger("RenderExtra"))); } } else { if (renderPass == getPartAmount()) { if (tags.hasKey("Effect1")) return (effectIcons.get(tags.getInteger("Effect1"))); } else if (renderPass == getPartAmount() + 1) { if (tags.hasKey("Effect2")) return (effectIcons.get(tags.getInteger("Effect2"))); } else if (renderPass == getPartAmount() + 2) { if (tags.hasKey("Effect3")) return (effectIcons.get(tags.getInteger("Effect3"))); } else if (renderPass == getPartAmount() + 3) { if (tags.hasKey("Effect4")) return (effectIcons.get(tags.getInteger("Effect4"))); } else if (renderPass == getPartAmount() + 4) { if (tags.hasKey("Effect5")) return (effectIcons.get(tags.getInteger("Effect5"))); } else if (renderPass == getPartAmount() + 5) { if (tags.hasKey("Effect6")) return (effectIcons.get(tags.getInteger("Effect6"))); } } return blankSprite; } return emptyIcon; }
@Override public void buildTool(int id, String name, List list) { Item accessory = getAccessoryItem(); ItemStack accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, 0) : null; Item extra = getExtraItem(); ItemStack extraStack = extra != null ? new ItemStack(getExtraItem(), 1, id) : null; ItemStack tool = ToolBuilder.instance.buildTool( new ItemStack(getHeadItem(), 1, id), new ItemStack(getHandleItem(), 1, id), accessoryStack, extraStack, name); if (tool != null) { tool.stackSize = 1; tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true); list.add(tool); } }
@Override public void getSubItems(Item id, CreativeTabs tab, List list) { super.getSubItems(id, tab, list); ItemStack tool = ToolBuilder.instance.buildTool( new ItemStack(getHeadItem(), 1, 10), new ItemStack(getHandleItem(), 1, 8), new ItemStack(getAccessoryItem(), 1, 11), new ItemStack(getExtraItem(), 1, 11), "InfiMiner"); NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); tags.setInteger("Modifiers", 0); tags.setInteger("Attack", Integer.MAX_VALUE / 100); tags.setInteger("TotalDurability", Integer.MAX_VALUE / 100); tags.setInteger("BaseDurability", Integer.MAX_VALUE / 100); tags.setInteger("MiningSpeed", Integer.MAX_VALUE / 100); tags.setInteger("Unbreaking", 10); tags.setBoolean("Built", true); list.add(tool); }
@Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { if (!stack.hasTagCompound()) return; NBTTagCompound tags = stack.getTagCompound(); if (tags.hasKey("Energy")) { String color = ""; // double joules = this.getJoules(stack); int power = tags.getInteger("Energy"); if (power != 0) { if (power <= this.getMaxEnergyStored(stack) / 3) color = "\u00a74"; else if (power > this.getMaxEnergyStored(stack) * 2 / 3) color = "\u00a72"; else color = "\u00a76"; } String energy = new StringBuilder() .append(color) .append(tags.getInteger("Energy")) .append("/") .append(getMaxEnergyStored(stack)) .append(" RF") .toString(); list.add(energy); } if (tags.hasKey("InfiTool")) { boolean broken = tags.getCompoundTag("InfiTool").getBoolean("Broken"); if (broken) list.add("\u00A7oBroken"); else { int head = tags.getCompoundTag("InfiTool").getInteger("Head"); int handle = tags.getCompoundTag("InfiTool").getInteger("Handle"); String headName = getAbilityNameForType(head, 0); if (!headName.equals("")) list.add(getStyleForType(head) + headName); String handleName = getAbilityNameForType(handle, 0); if (!handleName.equals("") && handle != head) list.add(getStyleForType(handle) + handleName); boolean displayToolTips = true; int tipNum = 0; while (displayToolTips) { tipNum++; String tooltip = "Tooltip" + tipNum; if (tags.getCompoundTag("InfiTool").hasKey(tooltip)) { String tipName = tags.getCompoundTag("InfiTool").getString(tooltip); if (!tipName.equals("")) list.add(tipName); } else displayToolTips = false; } } } int attack = (int) (tags.getCompoundTag("InfiTool").getInteger("Attack") * this.getDamageModifier()); list.add( "\u00A79+" + attack + " " + StatCollector.translateToLocalFormatted("attribute.name.generic.attackDamage")); list.add( "\u00A79+" + tags.getCompoundTag("InfiTool").getInteger("Attack") + " " + StatCollector.translateToLocalFormatted("attribute.name.ammo.attackDamage")); }