protected ItemStack getInfiTool(String name) { // The InfiHarvester! List<Material> materials = ImmutableList.of(TinkerMaterials.slime, TinkerMaterials.cobalt, TinkerMaterials.ardite, TinkerMaterials.ardite); materials = materials.subList(0, requiredComponents.length); ItemStack tool = buildItem(materials); tool.setStackDisplayName(name); InfiTool.INSTANCE.apply(tool); return tool; }
protected void addDefaultSubItems(List<ItemStack> subItems, Material... fixedMaterials) { for(Material head : TinkerRegistry.getAllMaterials()) { List<Material> mats = new ArrayList<>(requiredComponents.length); for(int i = 0; i < requiredComponents.length; i++) { if(fixedMaterials.length > i && fixedMaterials[i] != null && requiredComponents[i].isValidMaterial(fixedMaterials[i])) { mats.add(fixedMaterials[i]); } else { // todo: check for applicability with stats mats.add(head); } } ItemStack tool = buildItem(mats); // only valid ones if(hasValidMaterials(tool)) { subItems.add(tool); if(!Config.listAllMaterials) { break; } } } }
public void recurse(ToolCore tool, ImmutableList<Material> materials, List<Triple<ItemStack, ImmutableList<Material>, Object[]>> results, Function<ItemStack, ?> fns[]) { // not enough materials yet, recurse if(tool.getRequiredComponents().size() > materials.size()) { for(Material mat : TinkerRegistry.getAllMaterials()) { if(!mat.hasStats(MaterialTypes.HEAD)) { continue; } ImmutableList.Builder<Material> mats = ImmutableList.builder(); mats.addAll(materials); mats.add(mat); recurse(tool, mats.build(), results, fns); } } // enough materials, build it and do stuff with it! else { ItemStack stack = tool.buildItem(materials); Object[] values = new Object[fns.length]; for(int i = 0; i < fns.length; i++) { values[i] = fns[i].apply(stack); } results.add(Triple.of(stack, materials, values)); } }
continue; ItemStack stack = tool.buildItem(ImmutableList.of(mat1, head, mat2)); int d = ToolHelper.getDurabilityStat(stack); String s = String.format("<td bgcolor=\"%s\">%s</td>", Integer
ImmutableList<Material> manyMaterials = ImmutableList.of(TinkerMaterials.wood, TinkerMaterials.manyullyn, TinkerMaterials.manyullyn); ItemStack wood = TinkerHarvestTools.pickaxe.buildItem(woodMaterials); ItemStack stone = TinkerHarvestTools.pickaxe.buildItem(stoneMaterials); ItemStack iron = TinkerHarvestTools.pickaxe.buildItem(ironMaterials); ItemStack extra = TinkerHarvestTools.pickaxe.buildItem(cobaltMaterials); new ItemStack(Items.DIAMOND_PICKAXE), new ItemStack(Items.GOLDEN_PICKAXE)); wood = TinkerHarvestTools.shovel.buildItem(woodMaterials); stone = TinkerHarvestTools.shovel.buildItem(stoneMaterials); iron = TinkerHarvestTools.shovel.buildItem(ironMaterials); extra = TinkerHarvestTools.shovel.buildItem(cobaltMaterials); new ItemStack(Items.DIAMOND_SHOVEL), new ItemStack(Items.GOLDEN_SHOVEL)); wood = TinkerHarvestTools.hatchet.buildItem(woodMaterials); stone = TinkerHarvestTools.hatchet.buildItem(stoneMaterials); iron = TinkerHarvestTools.hatchet.buildItem(ironMaterials); extra = TinkerHarvestTools.hatchet.buildItem(cobaltMaterials); new ItemStack(Items.DIAMOND_AXE), new ItemStack(Items.GOLDEN_AXE)); wood = TinkerMeleeWeapons.broadSword.buildItem(woodMaterials); stone = TinkerMeleeWeapons.broadSword.buildItem(stoneMaterials); iron = TinkerMeleeWeapons.broadSword.buildItem(ironMaterials); extra = TinkerMeleeWeapons.broadSword.buildItem(manyMaterials);
builder.add(material); ItemStack builtTool = tool.buildItem(builder.build()); if(tool.hasValidMaterials(builtTool)) { displayTools.add(new ElementTinkerItem(builtTool));