private void handleAlloyIMCs() { for(NBTTagList taglist : alloys) { List<FluidStack> fluids = Lists.newLinkedList(); for(int i = 0; i < taglist.tagCount(); i++) { NBTTagCompound tag = taglist.getCompoundTagAt(i); FluidStack fs = FluidStack.loadFluidStackFromNBT(tag); if(fs == null) { fluids.clear(); break; } fluids.add(fs); } // needs at least 3 fluids if(fluids.size() > 2) { FluidStack output = fluids.get(0); FluidStack[] input = new FluidStack[fluids.size() - 1]; input = fluids.subList(1, fluids.size()).toArray(input); TinkerRegistry.registerAlloy(output, input); log.debug("Added integration alloy: " + output.getLocalizedName()); } } }
public static void registerAlloy(FluidStack result, FluidStack... inputs) { if(result.amount < 1) { error("Alloy Recipe: Resulting alloy %s has to have an amount (%d)", result.getLocalizedName(), result.amount); } if(inputs.length < 2) { error("Alloy Recipe: Alloy for %s must consist of at least 2 liquids", result.getLocalizedName()); } registerAlloy(new AlloyRecipe(result, inputs)); }
TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.obsidian, 36), new FluidStack(FluidRegistry.WATER, 125), new FluidStack(FluidRegistry.LAVA, 125)); TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.clay, 144), new FluidStack(FluidRegistry.WATER, 250), new FluidStack(TinkerFluids.searedStone, 72), TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.knightslime, 72), new FluidStack(TinkerFluids.iron, 72), new FluidStack(TinkerFluids.purpleSlime, 125), TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.pigIron, 144), new FluidStack(TinkerFluids.iron, 144), new FluidStack(TinkerFluids.blood, 40), TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.manyullyn, 2), new FluidStack(TinkerFluids.cobalt, 2), new FluidStack(TinkerFluids.ardite, 2)); TinkerIntegration.isIntegrated(TinkerFluids.copper) && TinkerIntegration.isIntegrated(TinkerFluids.tin)) { TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.bronze, 4), new FluidStack(TinkerFluids.copper, 3), new FluidStack(TinkerFluids.tin, 1)); TinkerIntegration.isIntegrated(TinkerFluids.gold) && TinkerIntegration.isIntegrated(TinkerFluids.silver)) { TinkerRegistry.registerAlloy(new FluidStack(TinkerFluids.electrum, 2),
@Override public void apply() { TinkerRegistry.registerAlloy(new AlloyRecipeTweaker(output, input)); }
private static void registerAlloyRecipe(Pair<Things, NNList<Things>> alloy) { final Things result = NullHelper.notnull(alloy.getLeft(), "missing result item stack in alloy recipe"); final NNList<Things> input = alloy.getRight(); FluidStack fluidResult = getFluidForItems(result); if (fluidResult == null) { tryBasinAloying(result, input); return; } Set<String> used = new HashSet<>(); used.add(fluidResult.getFluid().getName()); FluidStack[] fluids = new FluidStack[input.size()]; List<String> debug = new ArrayList<>(); for (int i = 0; i < input.size(); i++) { if ((fluids[i] = getFluidForItems(NullHelper.notnull(input.get(i), "missing input item stack in alloy recipe"))) == null || used.contains(fluids[i].getFluid().getName())) { return; } used.add(fluids[i].getFluid().getName()); debug.add(toString(fluids[i])); } gcd(fluidResult, fluids); TinkerRegistry.registerAlloy(fluidResult, fluids); Log.debug("Tinkers.registerAlloy: " + toString(fluidResult) + ", " + debug); }