From 2a1911490ee158041630d524fb26d27099faec7f Mon Sep 17 00:00:00 2001 From: GaLi <3096147684@qq.com> Date: Mon, 25 May 2026 11:32:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=B7=E6=9D=BF=E7=BB=88?= =?UTF-8?q?=E7=AB=AF=E6=8C=89=E9=92=AE=E6=98=BE=E7=A4=BA=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screen/ProviderSelectScreen.java | 40 ++++++++++++++++++- .../gui/ProcessingEncodingPanelMixin.java | 22 +++++----- .../assets/extendedae_plus/lang/en_us.json | 3 +- .../assets/extendedae_plus/lang/zh_cn.json | 3 +- 4 files changed, 55 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/extendedae_plus/client/screen/ProviderSelectScreen.java b/src/main/java/com/extendedae_plus/client/screen/ProviderSelectScreen.java index 535b3bf..f6d4f01 100644 --- a/src/main/java/com/extendedae_plus/client/screen/ProviderSelectScreen.java +++ b/src/main/java/com/extendedae_plus/client/screen/ProviderSelectScreen.java @@ -33,8 +33,10 @@ public class ProviderSelectScreen extends Screen { private static final Set pinnedProviders = new HashSet<>(); private static final String PINNED_CONFIG_PATH = "extendedae_plus/pinned_providers.json"; private static final String AUTO_UPLOAD_UNIQUE_MATCH_KEY = "auto_upload_unique_match"; + private static final String SHOW_PROCESSING_BUTTONS_KEY = "show_processing_buttons"; private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); private static boolean autoUploadUniqueMatchEnabled = true; + private static boolean showProcessingButtonsEnabled = true; // 静态初始化块:加载置顶配置 static { @@ -65,6 +67,7 @@ public class ProviderSelectScreen extends Screen { private EditBox searchBox; // 中文名输入框(用于添加映射) private EditBox cnInput; + private Button processingButtonsToggleButton; private Button autoUploadToggleButton; private String query = ""; private boolean needsRefresh = false; @@ -154,6 +157,26 @@ public class ProviderSelectScreen extends Screen { Component.translatable(stateKey)); } + private Component buildProcessingButtonsToggleLabel() { + String stateKey = showProcessingButtonsEnabled + ? "extendedae_plus.configuration.state_on" + : "extendedae_plus.configuration.state_off"; + return Component.translatable("extendedae_plus.screen.show_processing_buttons", + Component.translatable(stateKey)); + } + + public static boolean isProcessingButtonsEnabled() { + return showProcessingButtonsEnabled; + } + + private void toggleProcessingButtons() { + showProcessingButtonsEnabled = !showProcessingButtonsEnabled; + savePinnedProviders(); + if (this.processingButtonsToggleButton != null) { + this.processingButtonsToggleButton.setMessage(this.buildProcessingButtonsToggleLabel()); + } + } + private void toggleAutoUploadUniqueMatch() { autoUploadUniqueMatchEnabled = !autoUploadUniqueMatchEnabled; savePinnedProviders(); @@ -359,8 +382,17 @@ public class ProviderSelectScreen extends Screen { .build(); this.addRenderableWidget(reload); + int toggleX = centerX + 50; + int toggleY = navY + 30; + int toggleGap = 6; + int toggleWidth = 122; + this.processingButtonsToggleButton = Button.builder(this.buildProcessingButtonsToggleLabel(), b -> this.toggleProcessingButtons()) + .bounds(toggleX, toggleY, toggleWidth, 20) + .build(); + this.addRenderableWidget(this.processingButtonsToggleButton); + this.autoUploadToggleButton = Button.builder(this.buildAutoUploadToggleLabel(), b -> this.toggleAutoUploadUniqueMatch()) - .bounds(centerX + 50, navY + 30, 250, 20) + .bounds(toggleX + toggleWidth + toggleGap, toggleY, toggleWidth, 20) .build(); this.addRenderableWidget(this.autoUploadToggleButton); @@ -562,6 +594,11 @@ public class ProviderSelectScreen extends Screen { if (autoUploadElement != null && autoUploadElement.isJsonPrimitive()) { autoUploadUniqueMatchEnabled = autoUploadElement.getAsBoolean(); } + + JsonElement showProcessingButtonsElement = obj.get(SHOW_PROCESSING_BUTTONS_KEY); + if (showProcessingButtonsElement != null && showProcessingButtonsElement.isJsonPrimitive()) { + showProcessingButtonsEnabled = showProcessingButtonsElement.getAsBoolean(); + } } catch (IOException | JsonSyntaxException e) { // 加载失败时静默处理 } @@ -582,6 +619,7 @@ public class ProviderSelectScreen extends Screen { } obj.add("pinned", arr); obj.addProperty(AUTO_UPLOAD_UNIQUE_MATCH_KEY, autoUploadUniqueMatchEnabled); + obj.addProperty(SHOW_PROCESSING_BUTTONS_KEY, showProcessingButtonsEnabled); Files.writeString(cfgPath, GSON.toJson(obj)); } catch (IOException e) { diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/ProcessingEncodingPanelMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/ProcessingEncodingPanelMixin.java index 15f34e2..760838c 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/ProcessingEncodingPanelMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/ProcessingEncodingPanelMixin.java @@ -6,6 +6,7 @@ import appeng.client.gui.me.items.PatternEncodingTermScreen; import appeng.client.gui.me.items.ProcessingEncodingPanel; import appeng.client.gui.widgets.ActionButton; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.client.screen.ProviderSelectScreen; import com.extendedae_plus.client.gui.widgets.ScaledTextureButton; import com.extendedae_plus.mixin.accessor.AbstractContainerScreenAccessor; import com.extendedae_plus.mixin.accessor.ScreenAccessor; @@ -139,7 +140,8 @@ public abstract class ProcessingEncodingPanelMixin extends EncodingModePanel { @Inject(method = "setVisible", at = @At("TAIL"), remap = false) private void eap$updateInjectedButtons(boolean visible, CallbackInfo ci) { - this.cycleOutputBtn.setVisibility(false); + boolean showInjectedButtons = visible && ProviderSelectScreen.isProcessingButtonsEnabled(); + this.cycleOutputBtn.setVisibility(visible && !showInjectedButtons); if (this.eap$mul2Button == null) { return; @@ -154,16 +156,16 @@ public abstract class ProcessingEncodingPanelMixin extends EncodingModePanel { eap$ensureAdded(this.eap$swapOutputsButton); eap$ensureAdded(this.eap$restoreRatioButton); - this.eap$mul2Button.setVisibility(visible); - this.eap$mul3Button.setVisibility(visible); - this.eap$mul5Button.setVisibility(visible); - this.eap$div2Button.setVisibility(visible); - this.eap$div3Button.setVisibility(visible); - this.eap$div5Button.setVisibility(visible); - this.eap$swapOutputsButton.setVisibility(visible); - this.eap$restoreRatioButton.setVisibility(visible); + this.eap$mul2Button.setVisibility(showInjectedButtons); + this.eap$mul3Button.setVisibility(showInjectedButtons); + this.eap$mul5Button.setVisibility(showInjectedButtons); + this.eap$div2Button.setVisibility(showInjectedButtons); + this.eap$div3Button.setVisibility(showInjectedButtons); + this.eap$div5Button.setVisibility(showInjectedButtons); + this.eap$swapOutputsButton.setVisibility(showInjectedButtons); + this.eap$restoreRatioButton.setVisibility(showInjectedButtons); - if (!visible) { + if (!showInjectedButtons) { return; } diff --git a/src/main/resources/assets/extendedae_plus/lang/en_us.json b/src/main/resources/assets/extendedae_plus/lang/en_us.json index d174fd1..6221b21 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -102,7 +102,8 @@ "extendedae_plus.screen.reload_mapping": "Reload Mapping", "extendedae_plus.screen.add_mapping": "Add Mapping", "extendedae_plus.screen.remove_mapping": "Remove Mapping", - "extendedae_plus.screen.auto_upload_unique_match": "Auto Upload on Unique Match: %s", + "extendedae_plus.screen.show_processing_buttons": "Pattern Terminal Buttons Display: %s", + "extendedae_plus.screen.auto_upload_unique_match": "Unique Match Upload: %s", "extendedae_plus.screen.cn_name": "Chinese Name", "extendedae_plus.button.choose_provider": "Upload Pattern", "key.extendedae_plus.create_pattern": "Create Pattern (Ctrl+Q)", diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json index 96b3cac..1ac7f8a 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -103,7 +103,8 @@ "extendedae_plus.screen.reload_mapping": "重载映射", "extendedae_plus.screen.add_mapping": "增加映射", "extendedae_plus.screen.remove_mapping": "删除映射", - "extendedae_plus.screen.auto_upload_unique_match": "唯一匹配时自动上传: %s", + "extendedae_plus.screen.show_processing_buttons": "样板终端按钮显示: %s", + "extendedae_plus.screen.auto_upload_unique_match": "唯一匹配上传: %s", "extendedae_plus.screen.cn_name": "中文名", "extendedae_plus.button.choose_provider":"上传样板", "key.extendedae_plus.create_pattern": "快速创建样板 (Ctrl+Q)",