diff options
author | Daniel Mendes <70096037+Steelux8@users.noreply.github.com> | 2023-08-13 14:30:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-13 14:30:43 +0100 |
commit | 7859a7053e1710ac09c0a60a57d149fa07afcf68 (patch) | |
tree | b503d79b9354cca6f2e02251c333ecbed64765f7 /src/main/java/gtPlusPlus | |
parent | 7cd31843a62de11e0c0ebcf115c30b5ff5d1cabd (diff) | |
download | GT5-Unofficial-7859a7053e1710ac09c0a60a57d149fa07afcf68.tar.gz GT5-Unofficial-7859a7053e1710ac09c0a60a57d149fa07afcf68.tar.bz2 GT5-Unofficial-7859a7053e1710ac09c0a60a57d149fa07afcf68.zip |
More LFTR Chain Fixes (#716)
* Fix LFTR powergen without fuel
- Override "process" from ProcessingLogic to execute the new "resetMultiProcessing" method before returning NO_Recipe;
- Add new "resetMultiProcessing" method to reset EU/t value, progress, recipe and shut down the LFTR when inputs aren't enough.
* Fix Sparge Tower OC and 10x speed bonus
- Changed voltage calculation to actually allow overclocking with 2 energy hatches, which the Sparge Tower already accepted;
- Removed the 10x speed bonus the multi had for seemingly no reason, and reduced recipe time by 10x, from 250s to 25s, on all of its recipes to compensate.
* Fix Sparge Tower energy handling
- Set lEUt to negative to properly consume energy, since the old logic used a positive lEUt value, which corresponds to EU generation, not consumption.
* Tweaked Fuel Refinery required hatches
- Removed the Output Bus requirement, as there are no item outputs in this recipe map;
- Changed the fluid hatch count to minimum 2 input and 1 output, which is enough for Refinery recipes. Left the maximum at the previous 4 input and 2 output, to keep existing structures working and for setups that produce two fuels per Refinery.
* Downscaled longest Refinery recipes
- Changed the two very long Refinery recipes, so that fluid amounts are 10x lower in input and output, alongside a 10x smaller duration, to make them more manageable, and less punishing if the multi voids for some reason.
* Apply spotless
* Requested fixes
* spotlessApply (#720)
Co-authored-by: GitHub GTNH Actions <>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gtPlusPlus')
4 files changed, 46 insertions, 15 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java index 662f0e0470..438cb650a8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java @@ -18,6 +18,7 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -142,7 +143,6 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType("Gas Sparge Tower").addInfo("Controller block for the Sparging Tower") .addInfo("Runs gases through depleted molten salts to extract precious fluids") - .addInfo("Has a speed bonus of 10x - recipe times are 1/10 of what is shown on NEI") .addInfo("Works the same way as the Distillation Tower, but with a fixed height of 8") .addInfo("Fluids are only put out at the correct height") .addInfo("The correct height equals the slot number in the NEI recipe").addSeparator() @@ -204,7 +204,7 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB @Override public @NotNull CheckRecipeResult checkProcessing() { ArrayList<FluidStack> tFluidList = getStoredFluids(); - long tVoltage = getMaxInputVoltage(); + long tVoltage = GT_Utility.roundUpVoltage(this.getMaxInputVoltage()); byte tTier = (byte) Math.max(0, GT_Utility.getTier(tVoltage)); FluidStack[] tFluids = tFluidList.toArray(new FluidStack[0]); if (tFluids.length > 0) { @@ -219,12 +219,17 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB this.mEfficiencyIncrease = 10000; calculateOverclockedNessMulti((long) tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); - mMaxProgresstime = Math.max(1, mMaxProgresstime / 10); + mMaxProgresstime = Math.max(1, mMaxProgresstime); ArrayList<FluidStack> aFluidOutputs = getByproductsOfSparge( tRecipe.mFluidInputs[0], tRecipe.mFluidInputs[1]); this.mOutputFluids = aFluidOutputs.toArray(new FluidStack[0]); updateSlots(); + + if (lEUt > 0) { + lEUt = (-lEUt); + } + return CheckRecipeResultRegistry.SUCCESSFUL; } } @@ -486,4 +491,13 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB } return aLayerIndex > 0; } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + // Ensure that lEUt is negative from loaded NBT data, since this multi consumes EU + if (lEUt > 0) { + lEUt = (-lEUt); + } + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java index 9f91316621..fbfbf7bc2d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java @@ -361,6 +361,16 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg @NotNull @Override + public CheckRecipeResult process() { + CheckRecipeResult result = super.process(); + if (!result.wasSuccessful()) { + resetMultiProcessing(); + } + return result; + } + + @NotNull + @Override protected CheckRecipeResult validateRecipe(@NotNull GT_Recipe recipe) { mFuelRemaining = getStoredFuel(recipe); if (mFuelRemaining < 100) { @@ -377,6 +387,12 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg }; } + protected void resetMultiProcessing() { + this.mEfficiency = 0; + this.mLastRecipe = null; + stopMachine(); + } + @Override public @NotNull CheckRecipeResult checkProcessing() { // Warm up for 4~ minutes diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java index c1352ccf82..af429facea 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java @@ -67,10 +67,10 @@ public class GregtechMetaTileEntity_Refinery extends GregtechMeta_MultiBlockBase .addCasingInfoMin("Incoloy-DS Fluid Containment Block", 5, false) .addCasingInfoMin("Zeron-100 Reactor Shielding", 4, false) .addCasingInfoMin("Hastelloy-N Sealant Blocks", 17, false).addInputHatch("Base platform", 1) - .addOutputHatch("Base platform", 1).addOutputBus("Base platform", 1).addMufflerHatch("Base platform", 1) + .addOutputHatch("Base platform", 1).addMufflerHatch("Base platform", 1) .addMaintenanceHatch("Base platform", 1).addEnergyHatch("Base platform", 1) .addStructureInfo("Muffler's Tier must be IV+") - .addStructureInfo("4x Input Hatches, 2x Output Hatches, 1x Output Bus") + .addStructureInfo("2-4x Input Hatches, 1-2x Output Hatches") .addStructureInfo("1x Muffler, 1x Maintenance Hatch, 1x Energy Hatch") .toolTipFinisher(CORE.GT_Tooltip_Builder.get()); return tt; @@ -162,8 +162,9 @@ public class GregtechMetaTileEntity_Refinery extends GregtechMeta_MultiBlockBase public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mCasing = 0; if (checkPiece(mName, 1, 7, 0) && mCasing >= 7) { - if (this.mInputHatches.size() == 4 && this.mOutputHatches.size() == 2 - && this.mOutputBusses.size() == 1 + if (this.mInputHatches.size() >= 2 && this.mInputHatches.size() <= 4 + && this.mOutputHatches.size() >= 1 + && this.mOutputHatches.size() <= 2 && this.mMufflerHatches.size() == 1 && this.mMaintenanceHatches.size() == 1 && this.mEnergyHatches.size() == 1) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java index e088b50880..b39ceb8e3a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java @@ -232,8 +232,8 @@ public class RecipeLoader_NuclearFuelProcessing { */ CORE.RA.addFissionFuel( - FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(1000), - NUCLIDE.LiFBeF2UF4.getFluidStack(9000), + FLUORIDES.ZIRCONIUM_TETRAFLUORIDE.getFluidStack(100), + NUCLIDE.LiFBeF2UF4.getFluidStack(900), null, null, null, @@ -241,9 +241,9 @@ public class RecipeLoader_NuclearFuelProcessing { null, null, null, - NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(10000), + NUCLIDE.LiFBeF2ZrF4UF4.getFluidStack(1000), null, - 20 * 60 * 120, // Duration + 20 * 60 * 12, // Duration MaterialUtils.getVoltageForTier(5)); // LiFBeF2ThF4UF4 @@ -258,8 +258,8 @@ public class RecipeLoader_NuclearFuelProcessing { */ CORE.RA.addFissionFuel( - FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(1000), - NUCLIDE.LiFBeF2UF4.getFluidStack(9000), + FLUORIDES.THORIUM_TETRAFLUORIDE.getFluidStack(100), + NUCLIDE.LiFBeF2UF4.getFluidStack(900), null, null, null, @@ -267,9 +267,9 @@ public class RecipeLoader_NuclearFuelProcessing { null, null, null, - NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(10000), + NUCLIDE.LiFBeF2ThF4UF4.getFluidStack(1000), null, - 20 * 60 * 150, // Duration + 20 * 60 * 15, // Duration MaterialUtils.getVoltageForTier(5)); } } |