aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorNexusNull <p.wellershaus@googlemail.com>2023-03-11 22:59:54 +0100
committerGitHub <noreply@github.com>2023-03-11 22:59:54 +0100
commitf9f1bd2f8d83bf9289254beb93efd65f9bcc5fed (patch)
treedf3a50bd38519e8368e8750ab85ddcfc11fc6f52 /src/main/java/gregtech
parentc182412944cb3159b5068e57614cb0944f872a26 (diff)
downloadGT5-Unofficial-f9f1bd2f8d83bf9289254beb93efd65f9bcc5fed.tar.gz
GT5-Unofficial-f9f1bd2f8d83bf9289254beb93efd65f9bcc5fed.tar.bz2
GT5-Unofficial-f9f1bd2f8d83bf9289254beb93efd65f9bcc5fed.zip
Add regulator abilities to Steam Valve (#1785)
* fix: fix Steam Valve not being configurable * Revert "fix: fix Steam Valve not being configurable" This reverts commit 505d9e273b48315fde154490e116d58fed46ffaf. * feat: add steam regulator * feat: add superheated steam to steam valve
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java6
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java10
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_SteamRegulator.java26
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_SteamValve.java2
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java78
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java41
6 files changed, 159 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 290f4766f7..71d7e9b205 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -463,6 +463,12 @@ public enum ItemList implements IItemContainer {
Steam_Valve_EV,
Steam_Valve_IV,
+ Steam_Regulator_LV,
+ Steam_Regulator_MV,
+ Steam_Regulator_HV,
+ Steam_Regulator_EV,
+ Steam_Regulator_IV,
+
FluidRegulator_LV,
FluidRegulator_MV,
FluidRegulator_HV,
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
index df0b16c297..b02610ebf4 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
@@ -36,13 +36,13 @@ import io.netty.buffer.ByteBuf;
/**
* Cover variable
- *
+ *
* <pre>
* 1111 1111 1111 1111 1111 1111 1111 1111
* |- interval-| |- flow rate 2 compl. -|
* ^ export?
* </pre>
- *
+ *
* Concat export and flow rate 2 compl. together to get actual flow rate. A positive actual flow rate is export, and
* vice versa.
* <p>
@@ -123,7 +123,7 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase<GT_Cover_Fluid
if (tTank1 != null && tTank2 != null) {
allowFluid = true;
FluidStack tLiquid = tTank1.drain(directionFrom, Math.abs(aCoverVariable.speed), false);
- if (tLiquid != null) {
+ if (tLiquid != null && this.canTransferFluid(tLiquid)) {
tLiquid = tLiquid.copy();
tLiquid.amount = tTank2.fill(directionTo, tLiquid, false);
if (tLiquid.amount > 0) {
@@ -184,6 +184,10 @@ public class GT_Cover_FluidRegulator extends GT_CoverBehaviorBase<GT_Cover_Fluid
return true;
}
+ protected boolean canTransferFluid(FluidStack fluid) {
+ return true;
+ }
+
@Override
public boolean letsRedstoneGoInImpl(byte aSide, int aCoverID, FluidRegulatorData aCoverVariable,
ICoverable aTileEntity) {
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_SteamRegulator.java b/src/main/java/gregtech/common/covers/GT_Cover_SteamRegulator.java
new file mode 100644
index 0000000000..e9081006e2
--- /dev/null
+++ b/src/main/java/gregtech/common/covers/GT_Cover_SteamRegulator.java
@@ -0,0 +1,26 @@
+package gregtech.common.covers;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.util.GT_ModHandler;
+
+public class GT_Cover_SteamRegulator extends GT_Cover_FluidRegulator {
+
+ /**
+ * @deprecated use {@link #GT_Cover_SteamRegulator(int aTransferRate, ITexture coverTexture)} instead
+ */
+ @Deprecated
+ public GT_Cover_SteamRegulator(int aTransferRate) {
+ this(aTransferRate, null);
+ }
+
+ public GT_Cover_SteamRegulator(int aTransferRate, ITexture coverTexture) {
+ super(aTransferRate, coverTexture);
+ }
+
+ @Override
+ protected boolean canTransferFluid(FluidStack fluid) {
+ return GT_ModHandler.isAnySteam(fluid) || GT_ModHandler.isSuperHeatedSteam(fluid);
+ }
+}
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_SteamValve.java b/src/main/java/gregtech/common/covers/GT_Cover_SteamValve.java
index 916f5ed75e..0c24e135f1 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_SteamValve.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_SteamValve.java
@@ -28,6 +28,6 @@ public class GT_Cover_SteamValve extends GT_Cover_Pump {
@Override
protected boolean canTransferFluid(FluidStack fluid) {
- return GT_ModHandler.isAnySteam(fluid);
+ return GT_ModHandler.isAnySteam(fluid) || GT_ModHandler.isSuperHeatedSteam(fluid);
}
}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
index 7434321b86..87814c6fc2 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
@@ -4256,6 +4256,84 @@ public class GT_MetaGenerated_Item_01 extends GT_MetaGenerated_Item_X32 {
new Object[] { "PSP", "PCP", "PBP", 'P', OrePrefixes.plate.get(Materials.Aluminium), 'S',
ItemList.Tool_DataStick.get(1L), 'C', ItemList.Cover_Screen.get(1L), 'B',
ItemList.Battery_RE_MV_Lithium.get(1L) });
+
+ ItemList.Steam_Regulator_LV.set(
+ addItem(
+ tLastID = 332,
+ "Steam Regulator (LV)",
+ GT_Utility.formatNumbers(1024) + PartCoverText
+ + GT_Utility.formatNumbers(1024 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 1L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 1L)));
+ ItemList.Steam_Regulator_MV.set(
+ addItem(
+ tLastID = 333,
+ "Steam Regulator (MV)",
+ GT_Utility.formatNumbers(2048) + PartCoverText
+ + GT_Utility.formatNumbers(2048 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 2L)));
+ ItemList.Steam_Regulator_HV.set(
+ addItem(
+ tLastID = 334,
+ "Steam Regulator (HV)",
+ GT_Utility.formatNumbers(4096) + PartCoverText
+ + GT_Utility.formatNumbers(4096 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 4L)));
+ ItemList.Steam_Regulator_EV.set(
+ addItem(
+ tLastID = 335,
+ "Steam Regulator (EV)",
+ GT_Utility.formatNumbers(8192) + PartCoverText
+ + GT_Utility.formatNumbers(8192 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 8L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 8L)));
+ ItemList.Steam_Regulator_IV.set(
+ addItem(
+ tLastID = 336,
+ "Steam Regulator (IV)",
+ GT_Utility.formatNumbers(16384) + PartCoverText
+ + GT_Utility.formatNumbers(16384 * 20)
+ + PartCoverText2,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ITER, 16L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.AQUA, 16L)));
+
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_LV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[1][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(1024, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_MV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[2][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(2048, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_HV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[3][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(4096, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_EV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[4][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(8192, TextureFactory.of(OVERLAY_VALVE)));
+ GregTech_API.registerCover(
+ ItemList.Steam_Regulator_IV.get(1L),
+ TextureFactory.of(MACHINE_CASINGS[5][0], TextureFactory.of(OVERLAY_VALVE)),
+ new GT_Cover_SteamRegulator(16384, TextureFactory.of(OVERLAY_VALVE)));
+
}
private static final Map<Materials, Materials> cauldronRemap = new HashMap<>();
diff --git a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java
index 182ac2d648..d16ec67627 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/AssemblerRecipes.java
@@ -172,6 +172,47 @@ public class AssemblerRecipes implements Runnable {
500000);
GT_Values.RA.addAssemblerRecipe(
+ new ItemStack[] { ItemList.Steam_Valve_LV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Basic), 2L),
+ GT_Utility.getIntegratedCircuit(3) },
+ GT_Values.NF,
+ ItemList.Steam_Regulator_LV.get(1L),
+ 400,
+ (int) TierEU.RECIPE_LV);
+ GT_Values.RA.addAssemblerRecipe(
+ new ItemStack[] { ItemList.Steam_Valve_MV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Good), 2L),
+ GT_Utility.getIntegratedCircuit(3) },
+ GT_Values.NF,
+ ItemList.Steam_Regulator_MV.get(1L),
+ 350,
+ (int) TierEU.RECIPE_MV);
+ GT_Values.RA.addAssemblerRecipe(
+ new ItemStack[] { ItemList.Steam_Valve_HV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Advanced), 2L),
+ GT_Utility.getIntegratedCircuit(3) },
+ GT_Values.NF,
+ ItemList.Steam_Regulator_HV.get(1L),
+ 300,
+ (int) TierEU.RECIPE_HV);
+ GT_Values.RA.addAssemblerRecipe(
+ new ItemStack[] { ItemList.Steam_Valve_EV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Data), 2L),
+ GT_Utility.getIntegratedCircuit(3) },
+ GT_Values.NF,
+ ItemList.Steam_Regulator_EV.get(1L),
+ 250,
+ (int) TierEU.RECIPE_EV);
+ GT_Values.RA.addAssemblerRecipe(
+ new ItemStack[] { ItemList.Steam_Valve_IV.get(1L),
+ GT_OreDictUnificator.get(OrePrefixes.circuit.get(Materials.Elite), 2L),
+ GT_Utility.getIntegratedCircuit(3) },
+ GT_Values.NF,
+ ItemList.Steam_Regulator_IV.get(1L),
+ 200,
+ (int) TierEU.RECIPE_IV);
+
+ GT_Values.RA.addAssemblerRecipe(
new ItemStack[] { ItemList.Electric_Pump_LV.get(1L), ItemList.Electric_Motor_LV.get(1L),
GT_OreDictUnificator.get(OrePrefixes.gear.get(Materials.Steel), 2L),
GT_Utility.getIntegratedCircuit(5) },