From 82f768f48e8964d6dee6b2b64f042ccc755bfb6a Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Thu, 19 Aug 2021 20:31:53 +0800 Subject: add Neutron Activator and NEI compact --- .../java/GoodGenerator/util/CharExchanger.java | 8 ++++-- src/main/java/GoodGenerator/util/ItemRefer.java | 1 + .../java/GoodGenerator/util/MyRecipeAdder.java | 30 ++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) (limited to 'src/main/java/GoodGenerator/util') diff --git a/src/main/java/GoodGenerator/util/CharExchanger.java b/src/main/java/GoodGenerator/util/CharExchanger.java index e2b95c040b..566afdfeed 100644 --- a/src/main/java/GoodGenerator/util/CharExchanger.java +++ b/src/main/java/GoodGenerator/util/CharExchanger.java @@ -66,10 +66,14 @@ public class CharExchanger { public static boolean compareExpression(String exp, int num) { int op = getOperator(exp); String NumExp = exp; - String[] opChar = new String[]{">", "<", "<=", ">=", "==", "!="}; + String[] opChar = new String[]{">", "<", "=", "!"}; if (op == -1) throw new IllegalArgumentException(); for (String re: opChar) NumExp = NumExp.replace(re, ""); - int num2 = Integer.getInteger(NumExp); + long num2 = 0; + for (char c: NumExp.toCharArray()) { + num2 *=10; + num2 += c - '0'; + } switch (op) { case 1: return num > num2; case 2: return num < num2; diff --git a/src/main/java/GoodGenerator/util/ItemRefer.java b/src/main/java/GoodGenerator/util/ItemRefer.java index 6d20636d1e..4a76951224 100644 --- a/src/main/java/GoodGenerator/util/ItemRefer.java +++ b/src/main/java/GoodGenerator/util/ItemRefer.java @@ -24,6 +24,7 @@ public final class ItemRefer { public static ItemRefer Aluminum_Nitride_Dust = getItemStack(aluminumNitride); public static ItemRefer Special_Ceramics_Dust = getItemStack(specialCeramics); public static ItemRefer Special_Ceramics_Plate = getItemStack(specialCeramicsPlate); + public static ItemRefer Radioactive_Waste = getItemStack(radioactiveWaste); public static ItemRefer Field_Restriction_Casing = getItemStack(MAR_Casing); public static ItemRefer Naquadah_Fuel_Refinery_Casing = getItemStack(FRF_Casings); diff --git a/src/main/java/GoodGenerator/util/MyRecipeAdder.java b/src/main/java/GoodGenerator/util/MyRecipeAdder.java index 85c36a1ea8..0f773a2807 100644 --- a/src/main/java/GoodGenerator/util/MyRecipeAdder.java +++ b/src/main/java/GoodGenerator/util/MyRecipeAdder.java @@ -40,6 +40,18 @@ public class MyRecipeAdder { true ); + public final NeutronActivatorMapper NA = new NeutronActivatorMapper( + new HashSet<>(150), + "gg.recipe.neutron_activator", + StatCollector.translateToLocal("tile.neutron_activator"), + null, + "goodgenerator:textures/gui/neutron_activator", + 6, 6, 0, 0, 0, + null, 0, null, + false, + false + ); + public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel{ int lasting = 0; @@ -70,4 +82,22 @@ public class MyRecipeAdder { public void addNaquadahFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ FRF.addNaqFuelRefineRecipe(input1, input2, output, EUt, ticks, tier); } + + public static class NeutronActivatorMapper extends GT_Recipe.GT_Recipe_Map{ + public NeutronActivatorMapper(Collection aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public void addNARecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int special) { + super.addRecipe(false, input2, output2, null, input1, output1, ticks, 0, special); + } + } + + public void addNeutronActivatorRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack[] output1, ItemStack[] output2, int ticks, int maxNKE, int minNKE) { + if (maxNKE <= 0) maxNKE = 1; + if (maxNKE >= 280) maxNKE = 280; + if (minNKE < 0) minNKE = 0; + if (minNKE >= maxNKE) minNKE = maxNKE - 1; + NA.addNARecipe(input1, input2, output1, output2, ticks, maxNKE * 10000 + minNKE); + } } -- cgit