From 5f5b3da1fcff863eba6891992dd42963b3cde587 Mon Sep 17 00:00:00 2001 From: Dertiende <47276572+Dertiende@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:25:00 +0300 Subject: [PATCH] Backport fix with not saved RSOutput states --- src/main/java/mcjty/xnet/apiimpl/Constants.java | 5 +++++ .../java/mcjty/xnet/apiimpl/logic/RSOutput.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/mcjty/xnet/apiimpl/Constants.java b/src/main/java/mcjty/xnet/apiimpl/Constants.java index bbca4fea..40b098ce 100644 --- a/src/main/java/mcjty/xnet/apiimpl/Constants.java +++ b/src/main/java/mcjty/xnet/apiimpl/Constants.java @@ -91,10 +91,15 @@ public class Constants { public static final String TAG_RS_COUNTER = "RSCounter"; public static final String TAG_RS_TIMER = "RSTimer"; public static final String TAG_RS_COUNTING_HOLDER = "RSCountingHolder"; + public static final String TAG_RS_COUNTING_CURRENT = "RSCountingCurrent"; public static final String TAG_RS_TICKS_HOLDER = "RSTicksHolder"; + public static final String TAG_RS_TICKS_CURRENT = "RSTicksCurrent"; public static final String TAG_IMPULSE = "impulse"; public static final String TAG_IMPULSE_DUR = "impulseDuration"; public static final String TAG_IMPULSE_REM = "impulseRemaining"; + public static final String TAG_RS_FLIP_FLAP = "RSFlipFlapState"; + public static final String TAG_RS_LAST_INPUT = "RSLastInputTrue"; + public static final String TAG_TOOLTIP = "tooltip"; public static final String TAG_WORLDS = "worlds"; diff --git a/src/main/java/mcjty/xnet/apiimpl/logic/RSOutput.java b/src/main/java/mcjty/xnet/apiimpl/logic/RSOutput.java index a2214c87..25bf13f6 100644 --- a/src/main/java/mcjty/xnet/apiimpl/logic/RSOutput.java +++ b/src/main/java/mcjty/xnet/apiimpl/logic/RSOutput.java @@ -17,8 +17,12 @@ import static mcjty.xnet.apiimpl.Constants.TAG_RS_CHANNEL_1; import static mcjty.xnet.apiimpl.Constants.TAG_RS_CHANNEL_2; import static mcjty.xnet.apiimpl.Constants.TAG_RS_COUNTER; +import static mcjty.xnet.apiimpl.Constants.TAG_RS_COUNTING_CURRENT; import static mcjty.xnet.apiimpl.Constants.TAG_RS_COUNTING_HOLDER; import static mcjty.xnet.apiimpl.Constants.TAG_RS_FILTER; +import static mcjty.xnet.apiimpl.Constants.TAG_RS_FLIP_FLAP; +import static mcjty.xnet.apiimpl.Constants.TAG_RS_LAST_INPUT; +import static mcjty.xnet.apiimpl.Constants.TAG_RS_TICKS_CURRENT; import static mcjty.xnet.apiimpl.Constants.TAG_RS_TICKS_HOLDER; import static mcjty.xnet.apiimpl.Constants.TAG_RS_TIMER; import static mcjty.xnet.utils.I18nConstants.LOGIC_INPUT_CHANNEL_TOOLTIP; @@ -199,6 +203,7 @@ public void update(Map data) { impulse = CastTools.safeBoolean(data.get(TAG_IMPULSE)); impulseDuration = CastTools.safeIntOrValue(data.get(TAG_IMPULSE_DUR), 1); impulseRemaining = CastTools.safeInt(data.get(TAG_IMPULSE_REM)); + } public boolean isEnabled(String tag) { @@ -218,11 +223,16 @@ public void readFromNBT(CompoundTag tag) { inputChannel1 = Color.values()[tag.getByte(TAG_RS_CHANNEL_1)]; inputChannel2 = Color.values()[tag.getByte(TAG_RS_CHANNEL_2)]; setCountingHolder(tag.getInt(TAG_RS_COUNTING_HOLDER)); + setCountingCurrent(tag.getInt(TAG_RS_COUNTING_CURRENT)); setTicksHolder(tag.getInt(TAG_RS_TICKS_HOLDER)); + setTicksCurrent(tag.getInt(TAG_RS_TICKS_CURRENT)); redstoneOut = tag.getInt(TAG_REDSTONE_OUT); impulse = tag.getBoolean(TAG_IMPULSE); impulseDuration = tag.getInt(TAG_IMPULSE_DUR); impulseRemaining = tag.getInt(TAG_IMPULSE_REM); + flipFlapState = tag.getBoolean(TAG_RS_FLIP_FLAP); + lastInputTrue = tag.getBoolean(TAG_RS_LAST_INPUT); + } public void writeToNBT(CompoundTag tag) { @@ -230,10 +240,14 @@ public void writeToNBT(CompoundTag tag) { tag.putByte(TAG_RS_CHANNEL_1, (byte) inputChannel1.ordinal()); tag.putByte(TAG_RS_CHANNEL_2, (byte) inputChannel2.ordinal()); tag.putInt(TAG_RS_COUNTING_HOLDER, countingHolder); + tag.putInt(TAG_RS_COUNTING_CURRENT, countingCurrent); tag.putInt(TAG_RS_TICKS_HOLDER, ticksHolder); + tag.putInt(TAG_RS_TICKS_CURRENT, ticksCurrent); tag.putInt(TAG_REDSTONE_OUT, redstoneOut); tag.putBoolean(TAG_IMPULSE, impulse); tag.putInt(TAG_IMPULSE_DUR, impulseDuration); tag.putInt(TAG_IMPULSE_REM, impulseRemaining); + tag.putBoolean(TAG_RS_FLIP_FLAP, flipFlapState); + tag.putBoolean(TAG_RS_LAST_INPUT, lastInputTrue); } }