コード例 #1
0
  @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);
  }
コード例 #2
0
  @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;
  }
コード例 #3
0
 @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);
   }
 }
コード例 #4
0
  @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);
  }
コード例 #5
0
  @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"));
  }