From b6d636fd996327c95271136eb1dbbed7612db411 Mon Sep 17 00:00:00 2001 From: n1xx1 Date: Mon, 22 Jun 2026 15:41:25 +0200 Subject: [PATCH] add grid connection info on Jade for ME parts --- .../resources/assets/gtceu/lang/en_ud.json | 1 + .../resources/assets/gtceu/lang/en_us.json | 1 + .../gtceu/data/lang/LangHandler.java | 1 + .../gtceu/integration/jade/GTJadePlugin.java | 6 ++- .../provider/MEGridConnectedProvider.java | 41 +++++++++++++++++++ 5 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/gregtechceu/gtceu/integration/jade/provider/MEGridConnectedProvider.java diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json index 86071272615..6dc83d61445 100644 --- a/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -1969,6 +1969,7 @@ "config.jade.plugin_gtceu.ldp_endpoint": "oɟuI ʇuıodpuƎ ǝuıןǝdıԀ ǝɔuɐʇsıᗡ buoꞀ ]nƎƆ⟘⅁[", "config.jade.plugin_gtceu.machine_mode": "ǝpoW ǝuıɥɔɐW ]nƎƆ⟘⅁[", "config.jade.plugin_gtceu.maintenance_info": "oɟuI ǝɔuɐuǝʇuıɐW ]nƎƆ⟘⅁[", + "config.jade.plugin_gtceu.me_grid_connected": "oɟuI ǝuıɥɔɐW pǝʇɔǝuuoƆ pıɹ⅁ ]nƎƆ⟘⅁[", "config.jade.plugin_gtceu.me_pattern_buffer": "oɟuI ɹǝɟɟnᗺ uɹǝʇʇɐԀ ]nƎƆ⟘⅁[", "config.jade.plugin_gtceu.me_pattern_buffer_proxy": "oɟuI ʎxoɹԀ ɹǝɟɟnᗺ uɹǝʇʇɐԀ ]nƎƆ⟘⅁[", "config.jade.plugin_gtceu.multiblock_structure": "ǝɹnʇɔnɹʇS ʞɔoןᗺıʇןnW ]nƎƆ⟘⅁[", diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json index 7fdaa75f485..56f7a5543d6 100644 --- a/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/src/generated/resources/assets/gtceu/lang/en_us.json @@ -1969,6 +1969,7 @@ "config.jade.plugin_gtceu.ldp_endpoint": "[GTCEu] Long Distance Pipeline Endpoint Info", "config.jade.plugin_gtceu.machine_mode": "[GTCEu] Machine Mode", "config.jade.plugin_gtceu.maintenance_info": "[GTCEu] Maintenance Info", + "config.jade.plugin_gtceu.me_grid_connected": "[GTCEu] Grid Connected Machine Info", "config.jade.plugin_gtceu.me_pattern_buffer": "[GTCEu] Pattern Buffer Info", "config.jade.plugin_gtceu.me_pattern_buffer_proxy": "[GTCEu] Pattern Buffer Proxy Info", "config.jade.plugin_gtceu.multiblock_structure": "[GTCEu] MultiBlock Structure", diff --git a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java index 9bbc2a56977..e006a2ef03b 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java @@ -1319,6 +1319,7 @@ public static void init(RegistrateLangProvider provider) { provider.add("config.jade.plugin_gtceu.data_bank", "[GTCEu] Data Bank Info"); provider.add("config.jade.plugin_gtceu.transformer", "[GTCEu] Transformer Info"); provider.add("config.jade.plugin_gtceu.stained_color", "[GTCEu] Stained Block Info"); + provider.add("config.jade.plugin_gtceu.me_grid_connected", "[GTCEu] Grid Connected Machine Info"); provider.add("config.jade.plugin_gtceu.me_pattern_buffer", "[GTCEu] Pattern Buffer Info"); provider.add("config.jade.plugin_gtceu.me_pattern_buffer_proxy", "[GTCEu] Pattern Buffer Proxy Info"); provider.add("config.jade.plugin_gtceu.energy_converter_provider", "[GTCEu] Energy Converter Mode"); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/jade/GTJadePlugin.java b/src/main/java/com/gregtechceu/gtceu/integration/jade/GTJadePlugin.java index 1e815f64a71..3570040f874 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/jade/GTJadePlugin.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/jade/GTJadePlugin.java @@ -46,7 +46,8 @@ public void register(IWailaCommonRegistration registration) { new LDPEndpointProvider()); if (GTCEu.Mods.isAE2Loaded()) { - register(registration, new MEPatternBufferProvider(), new MEPatternBufferProxyProvider()); + register(registration, new MEGridConnectedProvider(), new MEPatternBufferProvider(), + new MEPatternBufferProxyProvider()); } registration.registerItemStorage(GTItemStorageProvider.INSTANCE, MetaMachine.class); @@ -80,7 +81,8 @@ public void registerClient(IWailaClientRegistration registration) { new CableBlockProvider()); if (GTCEu.Mods.isAE2Loaded()) { - register(registration, new MEPatternBufferProvider(), new MEPatternBufferProxyProvider()); + register(registration, new MEGridConnectedProvider(), new MEPatternBufferProvider(), + new MEPatternBufferProxyProvider()); } registration.registerItemStorageClient(GTItemStorageProvider.INSTANCE); diff --git a/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/MEGridConnectedProvider.java b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/MEGridConnectedProvider.java new file mode 100644 index 00000000000..1373e0504bd --- /dev/null +++ b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/MEGridConnectedProvider.java @@ -0,0 +1,41 @@ +package com.gregtechceu.gtceu.integration.jade.provider; + +import com.gregtechceu.gtceu.GTCEu; +import com.gregtechceu.gtceu.api.machine.MetaMachine; +import com.gregtechceu.gtceu.integration.ae2.machine.feature.IGridConnectedMachine; + +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntity; + +import snownee.jade.api.BlockAccessor; +import snownee.jade.api.ITooltip; +import snownee.jade.api.config.IPluginConfig; + +public class MEGridConnectedProvider extends MachineInfoProvider { + + public MEGridConnectedProvider() { + super(GTCEu.id("me_grid_connected"), MetaMachine.class); + } + + @Override + protected CompoundTag write(MetaMachine machine) { + var tag = new CompoundTag(); + if (!(machine instanceof IGridConnectedMachine gridConnectedMachine)) return tag; + + tag.putBoolean("online", gridConnectedMachine.isOnline()); + return tag; + } + + @Override + protected void addTooltip(CompoundTag data, ITooltip tooltip, Player player, BlockAccessor block, + BlockEntity blockEntity, IPluginConfig config) { + if (!data.contains("online")) return; + + var online = data.getBoolean("online"); + var component = online ? Component.translatable("gtceu.gui.me_network.online") : + Component.translatable("gtceu.gui.me_network.offline"); + tooltip.add(component); + } +}