aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dependencies.gradle2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java21
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java85
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java27
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BWRecipes.java12
5 files changed, 106 insertions, 41 deletions
diff --git a/dependencies.gradle b/dependencies.gradle
index 8b8a2c544e..7abb0e2f5d 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -1,7 +1,7 @@
// Add your dependencies here
dependencies {
- compile("com.github.GTNewHorizons:GT5-Unofficial:5.09.40.75-pre:dev")
+ compile("com.github.GTNewHorizons:GT5-Unofficial:5.09.40.78:dev")
compile("com.github.GTNewHorizons:StructureLib:1.0.16:dev")
compile("com.github.GTNewHorizons:TecTech:4.10.18:dev")
compile("com.github.GTNewHorizons:NotEnoughItems:2.2.15-GTNH:dev")
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java
index b34818e0bd..4300993943 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java
@@ -56,7 +56,6 @@ import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -70,8 +69,6 @@ import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader
import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.Oganesson;
import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.fluids;
import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.molten;
-import static com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader.*;
-import static gregtech.api.enums.GT_Values.MOD_ID_FR;
import static gregtech.api.enums.GT_Values.VN;
public class StaticRecipeChangeLoaders {
@@ -406,7 +403,13 @@ public class StaticRecipeChangeLoaders {
if (newGas.contains(GasTag)) {
int time = transformEBFGasRecipeTime(recipe, originalGas, newGas);
int gasAmount = Math.max(1, (int) Math.round((double) recipe.mFluidInputs[0].amount * gtEbfGasRecipeConsumptionMultipliers.get(newGas)));
- toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{newGas.getGas(gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue));
+ if (recipe.mFluidInputs != null && recipe.mFluidInputs.length == 1 && recipe.mFluidInputs[0].isFluidEqual(newGas.getGas(0))) {
+ // preserve original recipe owner
+ toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{newGas.getGas(gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue, recipe));
+ } else {
+ // new recipe
+ toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{newGas.getGas(gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue));
+ }
}
}
}
@@ -416,7 +419,13 @@ public class StaticRecipeChangeLoaders {
if (newGas.contains(GasTag)) {
int time = transformEBFGasRecipeTime(recipe, originalGas, newGas);
int gasAmount = Math.max(1, (int) Math.round((double) recipe.mFluidInputs[0].amount * newGas.getStats().getEbfGasRecipeConsumedAmountMultiplier()));
- toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{new FluidStack(Objects.requireNonNull(fluids.get(newGas)), gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue));
+ if (recipe.mFluidInputs != null && recipe.mFluidInputs.length == 1 && recipe.mFluidInputs[0].isFluidEqual(new FluidStack(Objects.requireNonNull(fluids.get(newGas)), 0))) {
+ // preserve original recipe owner
+ toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{new FluidStack(Objects.requireNonNull(fluids.get(newGas)), gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue, recipe));
+ } else {
+ // new recipe
+ toAdd.add(new BWRecipes.DynamicGTRecipe(false, recipe.mInputs, recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, new FluidStack[]{new FluidStack(Objects.requireNonNull(fluids.get(newGas)), gasAmount)}, recipe.mFluidOutputs, time, recipe.mEUt, recipe.mSpecialValue));
+ }
}
}
}
@@ -433,7 +442,7 @@ public class StaticRecipeChangeLoaders {
inputs.add(stack);
}
inputs.add(GT_Utility.getIntegratedCircuit(circuitConfiguration));
- toAdd.add(new BWRecipes.DynamicGTRecipe(false, inputs.toArray(new ItemStack[0]), recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, null, recipe.mFluidOutputs, transformEBFNoGasRecipeTime(recipe, originalGas), recipe.mEUt, recipe.mSpecialValue));
+ toAdd.add(new BWRecipes.DynamicGTRecipe(false, inputs.toArray(new ItemStack[0]), recipe.mOutputs, recipe.mSpecialItems, recipe.mChances, null, recipe.mFluidOutputs, transformEBFNoGasRecipeTime(recipe, originalGas), recipe.mEUt, recipe.mSpecialValue, recipe));
break;
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
index f5ee1e303a..e1a80035e1 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/LuVTierEnhancer.java
@@ -47,6 +47,7 @@ import java.util.*;
import java.util.function.Consumer;
import java.util.function.Predicate;
+import static com.github.bartimaeusnek.bartworks.MainMod.MOD_ID;
import static gregtech.api.enums.OrePrefixes.*;
@SuppressWarnings("ALL")
@@ -141,7 +142,7 @@ public class LuVTierEnhancer implements Runnable {
private static void rewriteCraftingRecipes(List<IRecipe> bufferedRecipeList, OrePrefixes[] LuVMaterialsGenerated, Predicate recipeFilter){
for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- Consumer recipeAction = obj -> LuVTierEnhancer.doStacksCointainAndReplace(((GT_Shaped_Recipe) obj).getInput(),
+ Consumer recipeAction = obj -> LuVTierEnhancer.doStacksContainAndReplace(null, ((GT_Shaped_Recipe) obj).getInput(),
GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true,
WerkstoffLoader.LuVTierMaterial.get(prefixes));
@@ -151,39 +152,39 @@ public class LuVTierEnhancer implements Runnable {
}
private static void rewriteMachineRecipes(ItemStack stack, OrePrefixes[] LuVMaterialsGenerated, GT_Recipe recipe) {
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, stack, false)) {
for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
}
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, stack, false)) {
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mOutputs, stack, false)) {
for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mOutputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidOutputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
}
}
private static void rewriteAsslineRecipes(ItemStack stack, OrePrefixes[] LuVMaterialsGenerated, GT_Recipe.GT_Recipe_AssemblyLine recipe){
for (OrePrefixes prefixes : LuVMaterialsGenerated) {
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
- if (LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
- LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, new Object[]{recipe.mOutput}, stack, false)) {
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, new Object[]{recipe.mOutput}, GT_OreDictUnificator.get(prefixes, Materials.Chrome, 1), true, WerkstoffLoader.LuVTierMaterial.get(prefixes));
}
}
- if (LuVTierEnhancer.doStacksCointainAndReplace(recipe.mInputs, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mInputs, stack, false)) {
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
}
- if (LuVTierEnhancer.doStacksCointainAndReplace(new Object[]{recipe.mOutput}, stack, false)) {
- LuVTierEnhancer.doStacksCointainAndReplace(recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
+ if (LuVTierEnhancer.doStacksContainAndReplace(recipe, new Object[]{recipe.mOutput}, stack, false)) {
+ LuVTierEnhancer.doStacksContainAndReplace(recipe, recipe.mFluidInputs, Materials.Chrome.getMolten(1), true, WerkstoffLoader.LuVTierMaterial.getMolten(1).getFluid());
}
}
@@ -192,7 +193,8 @@ public class LuVTierEnhancer implements Runnable {
gt_recipe.mInputs = replaceArrayWith(
gt_recipe.mInputs,
Materials.Osmiridium,
- WerkstoffLoader.Ruridit
+ WerkstoffLoader.Ruridit,
+ gt_recipe
);
GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes.stream()
@@ -201,7 +203,8 @@ public class LuVTierEnhancer implements Runnable {
recipe_assemblyLine.mInputs = replaceArrayWith(
recipe_assemblyLine.mInputs,
Materials.Osmiridium,
- WerkstoffLoader.Ruridit
+ WerkstoffLoader.Ruridit,
+ recipe_assemblyLine
)
);
@@ -225,25 +228,33 @@ public class LuVTierEnhancer implements Runnable {
return false;
}
- private static ItemStack[] replaceArrayWith(ItemStack[] stackArray, Materials source, Werkstoff target) {
+ private static ItemStack[] replaceArrayWith(ItemStack[] stackArray, Materials source, Werkstoff target, Object recipe) {
+ boolean replaced = false;
for (int i = 0; i < stackArray.length; i++) {
ItemStack stack = stackArray[i];
if (!BW_Util.checkStackAndPrefix(stack))
continue;
- stackArray[i] = replaceStackWith(stack, source, target);
+ stackArray[i] = replaceStackWith(stack, source, target, recipe);
}
return stackArray;
}
- private static ItemStack replaceStackWith(ItemStack stack, Materials source, Werkstoff target) {
+ private static ItemStack replaceStackWith(ItemStack stack, Materials source, Werkstoff target, Object recipe) {
ItemData ass = GT_OreDictUnificator.getAssociation(stack);
- if (ass.mMaterial.mMaterial.equals(source))
- if (target.hasItemType(ass.mPrefix))
+ if (ass.mMaterial.mMaterial.equals(source)) {
+ if (target.hasItemType(ass.mPrefix)) {
stack = target.get(ass.mPrefix, stack.stackSize);
+ if (recipe instanceof GT_Recipe) {
+ ((GT_Recipe) recipe).setOwner(MOD_ID);
+ } else if (recipe instanceof GT_Recipe_AssemblyLine) {
+ // todo: update NEI fake recipe
+ }
+ }
+ }
return stack;
}
- private static boolean doStacksCointainAndReplace(FluidStack[] stacks, FluidStack stack, boolean replace, Fluid... replacement) {
+ private static boolean doStacksContainAndReplace(Object recipe, FluidStack[] stacks, FluidStack stack, boolean replace, Fluid... replacement) {
boolean replaced = false;
for (int i = 0; i < stacks.length; i++) {
if (GT_Utility.areFluidsEqual(stack, stacks[i]))
@@ -255,10 +266,17 @@ public class LuVTierEnhancer implements Runnable {
replaced = true;
}
}
+ if (replace && replaced) {
+ if (recipe instanceof GT_Recipe) {
+ ((GT_Recipe) recipe).setOwner(MOD_ID);
+ } else if (recipe instanceof GT_Recipe_AssemblyLine) {
+ // todo: update NEI fake recipe
+ }
+ }
return replaced;
}
- private static boolean doStacksCointainAndReplace(Object[] stacks, ItemStack stack, boolean replace, ItemStack... replacement) {
+ private static boolean doStacksContainAndReplace(Object recipe, Object[] stacks, ItemStack stack, boolean replace, ItemStack... replacement) {
boolean replaced = false;
for (int i = 0; i < stacks.length; i++) {
if (!GT_Utility.isStackValid(stacks[i])) {
@@ -284,6 +302,13 @@ public class LuVTierEnhancer implements Runnable {
replaced = true;
}
}
+ if (replace && replaced) {
+ if (recipe instanceof GT_Recipe) {
+ ((GT_Recipe) recipe).setOwner(MOD_ID);
+ } else if (recipe instanceof GT_Recipe_AssemblyLine) {
+ // todo: update NEI fake recipe
+ }
+ }
return replaced;
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java
index 08ed4cd980..b7b4d07894 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/PlatinumSludgeOverHaul.java
@@ -267,12 +267,18 @@ public class PlatinumSludgeOverHaul {
toDel.add(recipe);
else if (GT_Utility.areFluidsEqual(Rhodium.getMolten(1), recipe.mFluidOutputs[i]))
toDel.add(recipe);
- else if (GT_Utility.areFluidsEqual(Materials.Iridium.getMolten(1), recipe.mFluidOutputs[i]))
+ else if (GT_Utility.areFluidsEqual(Materials.Iridium.getMolten(1), recipe.mFluidOutputs[i])) {
recipe.mFluidOutputs[i] = AcidicIridiumSolution.getFluidOrGas(1000);
- else if (GT_Utility.areFluidsEqual(Materials.Platinum.getMolten(1), recipe.mFluidOutputs[i]))
+ recipe.reloadOwner();
+ }
+ else if (GT_Utility.areFluidsEqual(Materials.Platinum.getMolten(1), recipe.mFluidOutputs[i])) {
recipe.mFluidOutputs[i] = PTConcentrate.getFluidOrGas(1000);
- else if (GT_Utility.areFluidsEqual(Materials.Osmium.getMolten(1), recipe.mFluidOutputs[i]))
+ recipe.reloadOwner();
+ }
+ else if (GT_Utility.areFluidsEqual(Materials.Osmium.getMolten(1), recipe.mFluidOutputs[i])) {
recipe.mFluidOutputs[i] = AcidicOsmiumSolution.getFluidOrGas(1000);
+ recipe.reloadOwner();
+ }
} else {
if (GT_Utility.areFluidsEqual(Ruthenium.getMolten(1), recipe.mFluidOutputs[i]))
toDel.add(recipe);
@@ -296,6 +302,7 @@ public class PlatinumSludgeOverHaul {
continue recipeloop;
int amount = recipe.mOutputs[i].stackSize * 2;
recipe.mOutputs[i] = LeachResidue.get(dust, amount);
+ recipe.reloadOwner();
}
}
if (BW_Util.areStacksEqualOrNull(Rhodium.get(dust), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Rhodium.get(dustImpure), recipe.mOutputs[i]) || BW_Util.areStacksEqualOrNull(Rhodium.get(dustPure), recipe.mOutputs[i])) {
@@ -305,6 +312,7 @@ public class PlatinumSludgeOverHaul {
continue recipeloop;
int amount = recipe.mOutputs[i].stackSize * 2;
recipe.mOutputs[i] = CrudeRhMetall.get(dust, amount);
+ recipe.reloadOwner();
}
}
if (!BW_Util.checkStackAndPrefix(recipe.mOutputs[i]))
@@ -318,12 +326,15 @@ public class PlatinumSludgeOverHaul {
if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dust) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustImpure) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustPure)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PTMetallicPowder.get(dust), amount * 2);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustSmall)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PTMetallicPowder.get(dustSmall), amount * 2);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustTiny)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PTMetallicPowder.get(dustTiny), amount * 2);
+ recipe.reloadOwner();
}
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Palladium)) {
for (int j = 0; j < recipe.mInputs.length; j++) {
@@ -333,12 +344,15 @@ public class PlatinumSludgeOverHaul {
if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dust) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustImpure) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustPure)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PDMetallicPowder.get(dust), amount * 4);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustSmall)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PDMetallicPowder.get(dustSmall), amount * 4);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustTiny)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(PDMetallicPowder.get(dustTiny), amount * 4);
+ recipe.reloadOwner();
}
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Osmium)) {
for (int j = 0; j < recipe.mInputs.length; j++) {
@@ -348,12 +362,15 @@ public class PlatinumSludgeOverHaul {
if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dust) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustImpure) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustPure)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrOsLeachResidue.get(dust), amount);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustSmall)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrOsLeachResidue.get(dustSmall), amount);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustTiny)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrOsLeachResidue.get(dustTiny), amount);
+ recipe.reloadOwner();
}
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mMaterial.mMaterial.equals(Materials.Iridium)) {
for (int j = 0; j < recipe.mInputs.length; j++) {
@@ -363,12 +380,15 @@ public class PlatinumSludgeOverHaul {
if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dust) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustImpure) || GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustPure)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrLeachResidue.get(dust), amount);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustSmall)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrLeachResidue.get(dustSmall), amount);
+ recipe.reloadOwner();
} else if (GT_OreDictUnificator.getAssociation(recipe.mOutputs[i]).mPrefix.equals(dustTiny)) {
int amount = recipe.mOutputs[i].stackSize;
recipe.mOutputs[i] = BW_Util.setStackSize(IrLeachResidue.get(dustTiny), amount);
+ recipe.reloadOwner();
}
}
}
@@ -395,6 +415,7 @@ public class PlatinumSludgeOverHaul {
ItemData ass = GT_OreDictUnificator.getAssociation(stack);
if (BW_Util.checkStackAndPrefix(stack) && ass.mMaterial.mMaterial.equals(Materials.Platinum)) {
recipe.mInputs[i] = GT_OreDictUnificator.get(ass.mPrefix,Materials.BlueAlloy,stack.stackSize);
+ recipe.reloadOwner();
}
}
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BWRecipes.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BWRecipes.java
index c7f578fe41..4e3b6ffc4a 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/util/BWRecipes.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BWRecipes.java
@@ -22,6 +22,7 @@
package com.github.bartimaeusnek.bartworks.util;
+import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.common.loaders.BioItemList;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
@@ -241,8 +242,17 @@ public class BWRecipes {
public static class DynamicGTRecipe extends GT_Recipe {
- public DynamicGTRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
+ public DynamicGTRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue, GT_Recipe originalRecipe) {
super(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
+ if (originalRecipe != null) {
+ this.owners = new ArrayList<>(originalRecipe.owners);
+ this.stackTraces = new ArrayList<>(originalRecipe.stackTraces);
+ this.setOwner(MainMod.MOD_ID);
+ }
+ }
+
+ public DynamicGTRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
+ this(aOptimize, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue, null);
}
}