aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/gui')
-rw-r--r--src/main/java/gregtech/common/gui/modularui/widget/ShutDownReasonSyncer.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/gui/modularui/widget/ShutDownReasonSyncer.java b/src/main/java/gregtech/common/gui/modularui/widget/ShutDownReasonSyncer.java
new file mode 100644
index 0000000000..21c19e524c
--- /dev/null
+++ b/src/main/java/gregtech/common/gui/modularui/widget/ShutDownReasonSyncer.java
@@ -0,0 +1,26 @@
+package gregtech.common.gui.modularui.widget;
+
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils;
+import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
+
+import gregtech.api.util.shutdown.ShutDownReason;
+import gregtech.api.util.shutdown.ShutDownReasonRegistry;
+
+public class ShutDownReasonSyncer extends FakeSyncWidget<ShutDownReason> {
+
+ public ShutDownReasonSyncer(Supplier<ShutDownReason> getter, Consumer<ShutDownReason> setter) {
+ super(getter, setter, (buffer, result) -> {
+ NetworkUtils.writeStringSafe(buffer, result.getID());
+ result.encode(buffer);
+ }, buffer -> {
+ String id = NetworkUtils.readStringSafe(buffer);
+ ShutDownReason result = ShutDownReasonRegistry.getSampleFromRegistry(id)
+ .newInstance();
+ result.decode(buffer);
+ return result;
+ });
+ }
+}