diff options
author | NexusNull <p.wellershaus@googlemail.com> | 2023-03-11 22:59:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-11 22:59:54 +0100 |
commit | f9f1bd2f8d83bf9289254beb93efd65f9bcc5fed (patch) | |
tree | df3a50bd38519e8368e8750ab85ddcfc11fc6f52 /src/main/java/gregtech | |
parent | c182412944cb3159b5068e57614cb0944f872a26 (diff) | |
download | GT5-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')
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) }, |