aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorNexusNull <p.wellershaus@googlemail.com>2023-04-01 14:03:40 +0200
committerGitHub <noreply@github.com>2023-04-01 14:03:40 +0200
commita01d019ed97101936210f16c7a362d852f081f09 (patch)
treeda44db62feb0cfaa468c6e2dcb1aa3bb3b4c54c2 /src/main/java
parent64d25607407bea9ac4240fc45356a886e8e753f1 (diff)
downloadGT5-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.java44
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;
}