aboutsummaryrefslogtreecommitdiff
path: root/src/main
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
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')
-rw-r--r--src/main/java/gtPlusPlus/core/item/ModItems.java2
-rw-r--r--src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java30
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java29
3 files changed, 48 insertions, 13 deletions
diff --git a/src/main/java/gtPlusPlus/core/item/ModItems.java b/src/main/java/gtPlusPlus/core/item/ModItems.java
index b77b46d34b..f0246e8695 100644
--- a/src/main/java/gtPlusPlus/core/item/ModItems.java
+++ b/src/main/java/gtPlusPlus/core/item/ModItems.java
@@ -588,7 +588,7 @@ public final class ModItems {
MaterialGenerator.generate(ALLOY.MARAGING350);
MaterialGenerator.generate(ALLOY.AQUATIC_STEEL);
- MaterialGenerator.generate(ALLOY.NITINOL_60,true,false);
+ MaterialGenerator.generate(ALLOY.NITINOL_60);
//Composite Alloys
MaterialGenerator.generate(ALLOY.STELLITE);
diff --git a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java
index 4a26a40d56..5ae06b5946 100644
--- a/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java
+++ b/src/main/java/gtPlusPlus/core/recipe/RECIPES_Machines.java
@@ -257,6 +257,7 @@ public class RECIPES_Machines {
chisels();
rockBreaker();
thermicFluidHeater();
+ advHeatExchanger();
gt4FarmManager();
gt4Redstone();
@@ -286,7 +287,34 @@ public class RECIPES_Machines {
CI.getPlate(5, 1), CI.circuitTier4, CI.getPlate(5, 1),
GregtechItemList.Controller_IndustrialFluidHeater.get(1));
}
-
+
+ private static void advHeatExchanger() {
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(18),
+ ItemList.Machine_Multi_HeatExchanger.get(1),
+ CI.getDoublePlate(6, 8),
+ CI.getScrew(6, 16),
+ CI.getCircuit(5, 8)
+ },
+ CI.tieredMaterials[5].getMolten(144 * 8),
+ GregtechItemList.XL_HeatExchanger.get(1),
+ 20 * 60,
+ MaterialUtils.getVoltageForTier(6));
+
+ CORE.RA.addSixSlotAssemblingRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(18),
+ ItemList.Casing_StableTitanium.get(1),
+ CI.getPlate(5, 4),
+ CI.getScrew(5, 8),
+ },
+ CI.tieredMaterials[5].getMolten(144 * 2),
+ GregtechItemList.Casing_XL_HeatExchanger.get(1),
+ 20 * 5,
+ MaterialUtils.getVoltageForTier(6));
+ }
+
private static void computerCube() {
CORE.RA.addSixSlotAssemblingRecipe(
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) {