diff options
author | Steelux <70096037+Steelux8@users.noreply.github.com> | 2022-05-19 14:02:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-19 15:02:04 +0200 |
commit | c11ab7d6f778b9a338d6a84ff8496adce4b8653e (patch) | |
tree | ba0aec1284688458856eeea6d73c2be988834949 /src/main | |
parent | cfe1f45c6b83243213c6e70c1d64bfe341463d3e (diff) | |
download | GT5-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')
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) { |