[ThermalExpansion][Insolator] addRecipe

Now allows to set required amount of water.
Now there's also  that sets the recipe for the Sapling infuser augment
This commit is contained in:
kindlich 2019-01-12 21:53:41 +01:00
parent e25784c994
commit bd284827bb
No known key found for this signature in database
GPG key ID: A471F355F32425FE

View file

@ -2,13 +2,17 @@ package com.blamejared.compat.thermalexpansion;
import cofh.thermalexpansion.util.managers.machine.InsolatorManager;
import com.blamejared.ModTweaker;
import com.blamejared.mtlib.helpers.*;
import com.blamejared.mtlib.helpers.InputHelper;
import com.blamejared.mtlib.helpers.LogHelper;
import com.blamejared.mtlib.utils.BaseAction;
import crafttweaker.CraftTweakerAPI;
import crafttweaker.annotations.*;
import crafttweaker.annotations.ModOnly;
import crafttweaker.annotations.ZenRegister;
import crafttweaker.api.item.IItemStack;
import net.minecraft.item.ItemStack;
import stanhebben.zenscript.annotations.*;
import stanhebben.zenscript.annotations.Optional;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
@ZenClass("mods.thermalexpansion.Insolator")
@ModOnly("thermalexpansion")
@ -16,8 +20,13 @@ import stanhebben.zenscript.annotations.*;
public class Insolator {
@ZenMethod
public static void addRecipe(IItemStack primaryOutput, IItemStack primaryInput, IItemStack secondaryInput, int energy, @Optional IItemStack secondaryOutput, @Optional int secondaryChance) {
ModTweaker.LATE_ADDITIONS.add(new Add(InputHelper.toStack(primaryOutput), InputHelper.toStack(primaryInput), InputHelper.toStack(secondaryInput), energy, InputHelper.toStack(secondaryOutput), secondaryChance));
public static void addRecipe(IItemStack primaryOutput, IItemStack primaryInput, IItemStack secondaryInput, int energy, @Optional IItemStack secondaryOutput, @Optional int secondaryChance, @Optional(valueLong = -1L) int water) {
ModTweaker.LATE_ADDITIONS.add(new Add(InputHelper.toStack(primaryOutput), InputHelper.toStack(primaryInput), InputHelper.toStack(secondaryInput), energy, InputHelper.toStack(secondaryOutput), secondaryChance, water, false));
}
@ZenMethod
public static void addRecipeSaplingInfuser(IItemStack primaryOutput, IItemStack primaryInput, IItemStack secondaryInput, int energy, @Optional IItemStack secondaryOutput, @Optional int secondaryChance, @Optional(valueLong = -1L) int water) {
ModTweaker.LATE_ADDITIONS.add(new Add(InputHelper.toStack(primaryOutput), InputHelper.toStack(primaryInput), InputHelper.toStack(secondaryInput), energy, InputHelper.toStack(secondaryOutput), secondaryChance, water, true));
}
@ZenMethod
@ -27,25 +36,29 @@ public class Insolator {
private static class Add extends BaseAction {
private ItemStack primaryOutput, primaryInput, secondaryInput, secondaryOutput;
private int energy, secondaryChance;
private final ItemStack primaryOutput, primaryInput, secondaryInput, secondaryOutput;
private final int energy, secondaryChance, water;
private final boolean isSapling;
public Add(ItemStack primaryOutput, ItemStack primaryInput, ItemStack secondaryInput, int energy, ItemStack secondaryOutput, int secondaryChance) {
public Add(ItemStack primaryOutput, ItemStack primaryInput, ItemStack secondaryInput, int energy, ItemStack secondaryOutput, int secondaryChance, int water, boolean isSapling) {
super("PhytogenicInsolator");
this.primaryOutput = primaryOutput;
this.primaryInput = primaryInput;
this.secondaryInput = secondaryInput;
this.secondaryOutput = secondaryOutput;
this.energy = energy;
this.secondaryChance = secondaryChance;
if(!secondaryOutput.isEmpty() && secondaryChance <= 0) {
this.secondaryChance = 100;
}
this.water = water;
this.isSapling = isSapling;
this.secondaryChance = !secondaryOutput.isEmpty() && secondaryChance <= 0 ? 100 : secondaryChance;
}
@Override
public void apply() {
InsolatorManager.addRecipe(energy, primaryInput, secondaryInput, primaryOutput, secondaryOutput, secondaryChance);
final InsolatorManager.Type type = isSapling ? InsolatorManager.Type.TREE : InsolatorManager.Type.STANDARD;
if(water == -1)
InsolatorManager.addRecipe(energy, primaryInput, secondaryInput, primaryOutput, secondaryOutput, secondaryChance, type);
else
InsolatorManager.addRecipe(energy, water, primaryInput, secondaryInput, primaryOutput, secondaryOutput, secondaryChance, type);
}
@Override