aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod
diff options
context:
space:
mode:
authorSteelux <70096037+Steelux8@users.noreply.github.com>2022-05-19 14:02:04 +0100
committerGitHub <noreply@github.com>2022-05-19 15:02:04 +0200
commitc11ab7d6f778b9a338d6a84ff8496adce4b8653e (patch)
treeba0aec1284688458856eeea6d73c2be988834949 /src/main/java/gtPlusPlus/xmod
parentcfe1f45c6b83243213c6e70c1d64bfe341463d3e (diff)
downloadGT5-Unofficial-c11ab7d6f778b9a338d6a84ff8496adce4b8653e.tar.gz
GT5-Unofficial-c11ab7d6f778b9a338d6a84ff8496adce4b8653e.tar.bz2
GT5-Unofficial-c11ab7d6f778b9a338d6a84ff8496adce4b8653e.zip
Implementing the XL Heat Exchanger (#189)
* Made the XL LHE Work - Fixed the processing math so that this multi works as fast as 16 LHEs; - Changed inner pipe casings to Tungstensteel to add to the cost of building it; - Added recipes for controller and the special casings. They are LuV recipes that use Zeron-100, which needs an LuV Energy Hatch on the ABS; - Clarified the structure requirements and processing speed on the tooltip. * Tooltip Information - Added more information about input and output flow rates and circuit config in the tooltip. * Changed 16x to 32x Parallel - Changed the speed of the XHE to scale off the EHE's 10x max speed at IV, or 5x if keeping SH Steam.
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java
index 9a6fcd4989..c24728a160 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java
@@ -7,6 +7,7 @@ import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import gregtech.api.GregTech_API;
import gregtech.api.enums.TAE;
import gregtech.api.enums.Textures;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
@@ -49,7 +50,7 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger extends GregtechMeta_Multi
{" f f ", "f f", " ", "f f", " f f "},
{" f f ", "f f", " ", "f f", " f f "},
}))
- .addElement('P', ofBlock(ModBlocks.blockCustomPipeGearCasings, 11))
+ .addElement('P', ofBlock(GregTech_API.sBlockCasings2, 15))
.addElement('f', ofBlock(getFrame(), 0))
.addElement('C', ofChain(
ofHatchAdder(GregtechMetaTileEntity_Adv_HeatExchanger::addColdFluidOutputToMachineList, CASING_INDEX, 2),
@@ -92,21 +93,25 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger extends GregtechMeta_Multi
.addInfo("Controller Block for the XL Heat Exchanger")
.addInfo("More complicated than a Fusion Reactor. Seriously")
.addInfo("But you know this by now, right?")
+ .addInfo("Works as fast as 16 Large Heat Exchangers")
.addSeparator()
.addInfo("Inputs are Hot Coolant or Lava")
.addInfo("Outputs Coolant or Pahoehoe Lava and SH Steam/Steam")
- .addInfo("Read the wiki article to understand how it works")
- .addInfo("Then go to the Discord to understand the wiki")
+ .addInfo("Outputs SH Steam if input flow is equal to or above a certain value:")
+ .addInfo("Hot Coolant: 12,800 L/s, maximum 25,600 EU/t, max output 6,400,000 SH Steam/s")
+ .addInfo("Lava: 16,000 L/s, maximum 32,000 EU/t, max output 2,560,000 SH Steam/s")
+ .addInfo("A circuit in the controller lowers the SH Steam threshold and efficiency")
+ .addInfo("2400 L/s reduction and 1.5% efficiency loss per circuit config over 1")
.addSeparator()
.beginStructureBlock(5, 9, 5, false)
.addController("Front bottom")
- .addCasingInfo("Stable Titanium Machine Casing", 20)
- .addOtherStructurePart("Titanium Pipe Casing", "Center 2 blocks")
+ .addCasingInfo("Reinforced Heat Exchanger Casing", 90)
+ .addOtherStructurePart("Tungstensteel Pipe Casing", "Center 3x5x3 (45 blocks)")
.addMaintenanceHatch("Any casing", 1)
.addInputHatch("Hot fluid, bottom center", 2)
- .addInputHatch("Distilled water, any casing", 1)
+ .addInputHatch("Distilled water, any bottom layer casing", 1)
.addOutputHatch("Cold fluid, top center", 3)
- .addOutputHatch("Steam/SH Steam, any casing", 1)
+ .addOutputHatch("Steam/SH Steam, any bottom layer casing", 1)
.toolTipFinisher(CORE.GT_Tooltip_Builder);
return tt;
}
@@ -152,9 +157,11 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger extends GregtechMeta_Multi
int fluidAmountToConsume = mInputHotFluidHatch.getFluidAmount(); // how much fluid is in hatch
- superheated_threshold = 4000; // default: must have 4000L per second to generate superheated steam
+ // The XL LHE works as fast as 32 regular LHEs. These are the comments from the original LHE,
+ // with changes where the values needed to change for the 32x speed multiplier
+ superheated_threshold = 128000; // default: must have 4000L -> 128000L per second to generate superheated steam
float efficiency = 1f; // default: operate at 100% efficiency with no integrated circuitry
- int shs_reduction_per_config = 150; // reduce threshold 150L/s per circuitry level (1-25)
+ int shs_reduction_per_config = 4800; // reduce threshold 150L -> 4800L per second per circuitry level (1-25)
float steam_output_multiplier = 20f; // default: multiply output by 4 * 10 (boosted x5)
float penalty = 0.0f; // penalty to apply to output based on circuitry level (1-25).
boolean do_lava = false;
@@ -185,7 +192,7 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger extends GregtechMeta_Multi
}
superheated = fluidAmountToConsume >= superheated_threshold; // set the internal superheated flag if we have enough hot fluid. Used in the onRunningTick method.
- fluidAmountToConsume = Math.min(fluidAmountToConsume, superheated_threshold * 2); // Don't consume too much hot fluid per second
+ fluidAmountToConsume = Math.min(fluidAmountToConsume, superheated_threshold * 2); // Don't consume too much hot fluid per second, maximum is 2x SH threshold.
mInputHotFluidHatch.drain(fluidAmountToConsume, true);
this.mMaxProgresstime = 20;
this.mEUt = (int) (fluidAmountToConsume * steam_output_multiplier * efficiency);
@@ -248,7 +255,7 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger extends GregtechMeta_Multi
mOutputColdFluidHatch = null;
mInputHotFluidHatch = null;
mCasingAmount = 0;
- return checkPiece(STRUCTURE_PIECE_MAIN, 2, 5, 0) && mCasingAmount >= 20 && mMaintenanceHatches.size() == 1;
+ return checkPiece(STRUCTURE_PIECE_MAIN, 2, 5, 0) && mCasingAmount >= 90 && mMaintenanceHatches.size() == 1;
}
public boolean addColdFluidOutputToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {