diff options
author | NexusNull <p.wellershaus@googlemail.com> | 2023-04-01 14:03:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-01 14:03:40 +0200 |
commit | a01d019ed97101936210f16c7a362d852f081f09 (patch) | |
tree | da44db62feb0cfaa468c6e2dcb1aa3bb3b4c54c2 /src/main/java | |
parent | 64d25607407bea9ac4240fc45356a886e8e753f1 (diff) | |
download | GT5-Unofficial-a01d019ed97101936210f16c7a362d852f081f09.tar.gz GT5-Unofficial-a01d019ed97101936210f16c7a362d852f081f09.tar.bz2 GT5-Unofficial-a01d019ed97101936210f16c7a362d852f081f09.zip |
add option for strong signal (#1825)
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java index 4a3b96a769..af062ca56b 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java @@ -44,7 +44,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe @Override public LiquidMeterData createDataObject(int aLegacyData) { - return new LiquidMeterData(aLegacyData == 0, 0); + return new LiquidMeterData(aLegacyData == 0, false, 0); } @Override @@ -89,7 +89,11 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe protected LiquidMeterData doCoverThingsImpl(byte aSide, byte aInputRedstone, int aCoverID, LiquidMeterData aCoverVariable, ICoverable aTileEntity, long aTimer) { byte signal = computeSignalBasedOnFluid(aTileEntity, aCoverVariable.inverted, aCoverVariable.threshold); - aTileEntity.setOutputRedstoneSignal(aSide, signal); + if (aCoverVariable.strong) { + aTileEntity.setStrongOutputRedstoneSignal(aSide, signal); + } else { + aTileEntity.setOutputRedstoneSignal(aSide, signal); + } return aCoverVariable; } @@ -187,6 +191,8 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe protected void addUIWidgets(ModularWindow.Builder builder) { final String INVERTED = GT_Utility.trans("INVERTED", "Inverted"); final String NORMAL = GT_Utility.trans("NORMAL", "Normal"); + final String STRONG = GT_Utility.trans("STRONG", "Strong"); + final String WEAK = GT_Utility.trans("WEAK", "Weak"); final int maxCapacity; if (getUIBuildContext().getTile() instanceof IFluidHandler) { @@ -209,6 +215,15 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe widget -> widget.addTooltip(0, NORMAL).addTooltip(1, INVERTED) .setPos(spaceX * 0, spaceY * 0)) .addFollower( + CoverDataFollower_ToggleButtonWidget.ofRedstone(), + coverData -> coverData.strong, + (coverData, state) -> { + coverData.strong = state; + return coverData; + }, + widget -> widget.addTooltip(0, WEAK).addTooltip(1, STRONG) + .setPos(spaceX * 0, spaceY * 1)) + .addFollower( new CoverDataFollower_TextFieldWidget<>(), coverData -> String.valueOf(coverData.threshold), (coverData, state) -> { @@ -217,7 +232,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe }, widget -> widget.setOnScrollNumbers(1000, 100, 100000) .setNumbers(0, maxCapacity > 0 ? maxCapacity : Integer.MAX_VALUE) - .setFocusOnGuiOpen(true).setPos(spaceX * 0, spaceY * 1 + 2) + .setFocusOnGuiOpen(true).setPos(spaceX * 0, spaceY * 2 + 2) .setSize(spaceX * 4 + 5, 12)) .setPos(startX, startY)) .widget( @@ -226,32 +241,43 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe .setSynced(false).setDefaultColor(COLOR_TEXT_GRAY.get()) .setPos(startX + spaceX * 1, 4 + startY + spaceY * 0)) .widget( + TextWidget + .dynamicString( + () -> getCoverData() != null ? getCoverData().strong ? STRONG : WEAK : "") + .setSynced(false).setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(startX + spaceX * 1, 4 + startY + spaceY * 1)) + .widget( new TextWidget(GT_Utility.trans("222", "Fluid threshold")) .setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(startX + spaceX * 5 - 10, startY + spaceY * 1 + 4)); + .setPos(startX + spaceX * 5 - 10, startY + spaceY * 2 + 4)); } } public static class LiquidMeterData implements ISerializableObject { private boolean inverted; - /** The special value {@code 0} means threshold check is disabled. */ + private boolean strong; + /** + * The special value {@code 0} means threshold check is disabled. + */ private int threshold; public LiquidMeterData() { inverted = false; + strong = false; threshold = 0; } - public LiquidMeterData(boolean inverted, int threshold) { + public LiquidMeterData(boolean inverted, boolean strong, int threshold) { this.inverted = inverted; + this.strong = strong; this.threshold = threshold; } @Nonnull @Override public ISerializableObject copy() { - return new LiquidMeterData(inverted, threshold); + return new LiquidMeterData(inverted, strong, threshold); } @Nonnull @@ -259,6 +285,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe public NBTBase saveDataToNBT() { NBTTagCompound tag = new NBTTagCompound(); tag.setBoolean("invert", inverted); + tag.setBoolean("strong", strong); tag.setInteger("threshold", threshold); return tag; } @@ -266,6 +293,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe @Override public void writeToByteBuf(ByteBuf aBuf) { aBuf.writeBoolean(inverted); + aBuf.writeBoolean(strong); aBuf.writeInt(threshold); } @@ -273,6 +301,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe public void loadDataFromNBT(NBTBase aNBT) { NBTTagCompound tag = (NBTTagCompound) aNBT; inverted = tag.getBoolean("invert"); + strong = tag.getBoolean("strong"); threshold = tag.getInteger("threshold"); } @@ -280,6 +309,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe @Override public ISerializableObject readFromPacket(ByteArrayDataInput aBuf, EntityPlayerMP aPlayer) { inverted = aBuf.readBoolean(); + strong = aBuf.readBoolean(); threshold = aBuf.readInt(); return this; } |