aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/bartworks/system/material
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/bartworks/system/material')
-rw-r--r--src/main/java/bartworks/system/material/Werkstoff.java21
-rw-r--r--src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java207
2 files changed, 95 insertions, 133 deletions
diff --git a/src/main/java/bartworks/system/material/Werkstoff.java b/src/main/java/bartworks/system/material/Werkstoff.java
index 1c29d52a92..d9b6b4503c 100644
--- a/src/main/java/bartworks/system/material/Werkstoff.java
+++ b/src/main/java/bartworks/system/material/Werkstoff.java
@@ -1089,8 +1089,29 @@ public class Werkstoff implements IColorModulationContainer, ISubTagContainer {
private double ebfGasRecipeTimeMultiplier = -1.0;
private double ebfGasRecipeConsumedAmountMultiplier = 1.0;
+ private boolean autoGenerateBlastFurnaceRecipes = true;
+ private boolean autoGenerateVacuumFreezerRecipes = true;
+
float durMod = 1f;
+ public boolean autoGenerateBlastFurnaceRecipes() {
+ return autoGenerateBlastFurnaceRecipes;
+ }
+
+ public boolean autoGenerateVacuumFreezerRecipes() {
+ return autoGenerateVacuumFreezerRecipes;
+ }
+
+ public Werkstoff.Stats disableAutoGeneratedBlastFurnaceRecipes() {
+ autoGenerateBlastFurnaceRecipes = false;
+ return this;
+ }
+
+ public Werkstoff.Stats disableAutoGeneratedVacuumFreezerRecipes() {
+ autoGenerateVacuumFreezerRecipes = false;
+ return this;
+ }
+
public float getDurMod() {
return this.durMod;
}
diff --git a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java
index e83af7ad46..ab7a2167aa 100644
--- a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java
+++ b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java
@@ -61,14 +61,14 @@ public class DustLoader implements IWerkstoffRunnable {
List<FluidStack> flOutputs = new ArrayList<>();
List<ItemStack> stOutputs = new ArrayList<>();
HashMap<ISubTagContainer, Pair<Integer, Integer>> tracker = new HashMap<>();
+
+ Werkstoff.Stats werkstoffStats = werkstoff.getStats();
+
int cells = 0;
if (werkstoff.getGenerationFeatures()
- .hasMixerRecipes()
- || werkstoff.getStats()
- .isElektrolysis()
- || werkstoff.getStats()
- .isCentrifuge()
+ .hasMixerRecipes() || werkstoffStats.isElektrolysis()
+ || werkstoffStats.isCentrifuge()
|| werkstoff.getGenerationFeatures()
.hasChemicalRecipes()) {
for (Pair<ISubTagContainer, Integer> container : werkstoff.getContents()
@@ -182,8 +182,7 @@ public class DustLoader implements IWerkstoffRunnable {
ItemStack input = werkstoff.get(dust);
input.stackSize = werkstoff.getContents()
.getKey();
- if (werkstoff.getStats()
- .isElektrolysis()) {
+ if (werkstoffStats.isElektrolysis()) {
GTRecipe tRecipe = new GTRecipe(
true,
new ItemStack[] { input, cells > 0 ? Materials.Empty.getCells(cells) : null },
@@ -195,11 +194,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getProtons()
- / werkstoff.getContents()
- .getValue()
- .size())),
+ werkstoffStats.getProtons() / werkstoff.getContents()
+ .getValue()
+ .size())),
Math.min(
4,
werkstoff.getContents()
@@ -210,8 +207,7 @@ public class DustLoader implements IWerkstoffRunnable {
RecipeMaps.electrolyzerRecipes.add(tRecipe);
RecipeMaps.electrolyzerNonCellRecipes.add(tRecipe);
}
- if (werkstoff.getStats()
- .isCentrifuge()) {
+ if (werkstoffStats.isCentrifuge()) {
RecipeMaps.centrifugeRecipes.add(
new GTRecipe(
true,
@@ -224,11 +220,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getMass()
- / werkstoff.getContents()
- .getValue()
- .size())),
+ werkstoffStats.getMass() / werkstoff.getContents()
+ .getValue()
+ .size())),
Math.min(
4,
werkstoff.getContents()
@@ -247,11 +241,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getProtons()
- / werkstoff.getContents()
- .getValue()
- .size())),
+ werkstoffStats.getProtons() / werkstoff.getContents()
+ .getValue()
+ .size())),
Math.min(
4,
werkstoff.getContents()
@@ -272,11 +264,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getProtons()
- / werkstoff.getContents()
- .getValue()
- .size())))
+ werkstoffStats.getProtons() / werkstoff.getContents()
+ .getValue()
+ .size())))
.eut(
Math.min(
4,
@@ -304,11 +294,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getMass()
- / werkstoff.getContents()
- .getValue()
- .size())),
+ werkstoffStats.getMass() / werkstoff.getContents()
+ .getValue()
+ .size())),
Math.min(
4,
werkstoff.getContents()
@@ -327,11 +315,9 @@ public class DustLoader implements IWerkstoffRunnable {
(int) Math.max(
1L,
Math.abs(
- werkstoff.getStats()
- .getProtons()
- / werkstoff.getContents()
- .getValue()
- .size())),
+ werkstoffStats.getProtons() / werkstoff.getContents()
+ .getValue()
+ .size())),
Math.min(
4,
werkstoff.getContents()
@@ -384,112 +370,67 @@ public class DustLoader implements IWerkstoffRunnable {
.eut(4)
.addTo(packagerRecipes);
- if (werkstoff.hasItemType(ingot) && !werkstoff.getStats()
- .isBlastFurnace()) {
+ if (werkstoff.hasItemType(ingot) && !werkstoffStats.isBlastFurnace()) {
GTModHandler.addSmeltingRecipe(werkstoff.get(dust), werkstoff.get(ingot));
GTModHandler.addSmeltingRecipe(werkstoff.get(dustTiny), werkstoff.get(nugget));
- } else if (werkstoff.hasItemType(ingot) && werkstoff.getStats()
- .isBlastFurnace()
- && werkstoff.getStats()
- .getMeltingPoint() != 0) {
- if (werkstoff.contains(WerkstoffLoader.ANAEROBE_SMELTING)) {
- GTValues.RA.stdBuilder()
- .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(11))
- .itemOutputs(
- werkstoff.getStats()
- .getMeltingPoint() < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot))
- .fluidInputs(Materials.Nitrogen.getGas(1000))
- .duration(
- Math.max(
- werkstoff.getStats()
- .getMass() / 40L,
- 1L)
- * werkstoff.getStats()
- .getMeltingPoint())
- .eut(
- werkstoff.getStats()
- .getMeltingVoltage())
- .metadata(
- COIL_HEAT,
- werkstoff.getStats()
- .getMeltingPoint())
- .addTo(blastFurnaceRecipes);
+ } else if (werkstoff.hasItemType(ingot) && werkstoffStats.isBlastFurnace()
+ && werkstoffStats.getMeltingPoint() != 0
+ && werkstoffStats.autoGenerateBlastFurnaceRecipes()) {
+ if (werkstoff.contains(WerkstoffLoader.ANAEROBE_SMELTING)) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(11))
+ .itemOutputs(
+ werkstoffStats.getMeltingPoint() < 1750 ? werkstoff.get(ingot)
+ : werkstoff.get(ingotHot))
+ .fluidInputs(Materials.Nitrogen.getGas(1000))
+ .duration(Math.max(werkstoffStats.getMass() / 40L, 1L) * werkstoffStats.getMeltingPoint())
+ .eut(werkstoffStats.getMeltingVoltage())
+ .metadata(COIL_HEAT, werkstoffStats.getMeltingPoint())
+ .addTo(blastFurnaceRecipes);
- } else if (werkstoff.contains(WerkstoffLoader.NOBLE_GAS_SMELTING)) {
- GTValues.RA.stdBuilder()
- .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(11))
- .itemOutputs(
- werkstoff.getStats()
- .getMeltingPoint() < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot))
- .fluidInputs(Materials.Argon.getGas(1000))
- .duration(
- Math.max(
- werkstoff.getStats()
- .getMass() / 40L,
- 1L)
- * werkstoff.getStats()
- .getMeltingPoint())
- .eut(
- werkstoff.getStats()
- .getMeltingVoltage())
- .metadata(
- COIL_HEAT,
- werkstoff.getStats()
- .getMeltingPoint())
- .addTo(blastFurnaceRecipes);
+ } else if (werkstoff.contains(WerkstoffLoader.NOBLE_GAS_SMELTING)) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(11))
+ .itemOutputs(
+ werkstoffStats.getMeltingPoint() < 1750 ? werkstoff.get(ingot)
+ : werkstoff.get(ingotHot))
+ .fluidInputs(Materials.Argon.getGas(1000))
+ .duration(Math.max(werkstoffStats.getMass() / 40L, 1L) * werkstoffStats.getMeltingPoint())
+ .eut(werkstoffStats.getMeltingVoltage())
+ .metadata(COIL_HEAT, werkstoffStats.getMeltingPoint())
+ .addTo(blastFurnaceRecipes);
- } else {
+ } else {
+ GTValues.RA.stdBuilder()
+ .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(1))
+ .itemOutputs(
+ werkstoffStats.getMeltingPoint() < 1750 ? werkstoff.get(ingot)
+ : werkstoff.get(ingotHot))
+ .duration(Math.max(werkstoffStats.getMass() / 40L, 1L) * werkstoffStats.getMeltingPoint())
+ .eut(werkstoffStats.getMeltingVoltage())
+ .metadata(COIL_HEAT, werkstoffStats.getMeltingPoint())
+ .addTo(blastFurnaceRecipes);
+
+ if (werkstoffStats.getMeltingPoint() <= 1000) {
GTValues.RA.stdBuilder()
- .itemInputs(werkstoff.get(dust), GTUtility.getIntegratedCircuit(1))
- .itemOutputs(
- werkstoff.getStats()
- .getMeltingPoint() < 1750 ? werkstoff.get(ingot) : werkstoff.get(ingotHot))
+ .itemInputs(werkstoff.get(dust))
+ .itemOutputs(werkstoff.get(ingot))
.duration(
- Math.max(
- werkstoff.getStats()
- .getMass() / 40L,
- 1L)
- * werkstoff.getStats()
- .getMeltingPoint())
- .eut(
- werkstoff.getStats()
- .getMeltingVoltage())
- .metadata(
- COIL_HEAT,
- werkstoff.getStats()
- .getMeltingPoint())
- .addTo(blastFurnaceRecipes);
-
- if (werkstoff.getStats()
- .getMeltingPoint() <= 1000) {
- GTValues.RA.stdBuilder()
- .itemInputs(werkstoff.get(dust))
- .itemOutputs(werkstoff.get(ingot))
- .duration(
- (int) Math.max(
- werkstoff.getStats()
- .getMass() / 40L,
- 1L) * werkstoff.getStats()
- .getMeltingPoint())
- .eut(0)
- .metadata(ADDITIVE_AMOUNT, 9)
- .addTo(primitiveBlastRecipes);
- }
+ (int) Math.max(werkstoffStats.getMass() / 40L, 1L)
+ * werkstoffStats.getMeltingPoint())
+ .eut(0)
+ .metadata(ADDITIVE_AMOUNT, 9)
+ .addTo(primitiveBlastRecipes);
}
}
+ }
- if (werkstoff.getStats()
- .isBlastFurnace()
- && werkstoff.getStats()
- .getMeltingPoint() > 1750) {
+ if (werkstoffStats.isBlastFurnace() && werkstoffStats.getMeltingPoint() > 1750
+ && werkstoffStats.autoGenerateVacuumFreezerRecipes()) {
GTValues.RA.stdBuilder()
.itemInputs(werkstoff.get(ingotHot))
.itemOutputs(werkstoff.get(ingot))
- .duration(
- (int) Math.max(
- werkstoff.getStats()
- .getMass() * 3L,
- 1L))
+ .duration((int) Math.max(werkstoffStats.getMass() * 3L, 1L))
.eut(TierEU.RECIPE_MV)
.addTo(vacuumFreezerRecipes);
}