diff options
Diffstat (limited to 'src/main/java/bartworks/system/material')
-rw-r--r-- | src/main/java/bartworks/system/material/Werkstoff.java | 21 | ||||
-rw-r--r-- | src/main/java/bartworks/system/material/werkstoff_loaders/recipe/DustLoader.java | 207 |
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); } |