From be48565e75605d9220b765eb85595ed1afafe5fa Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 27 Sep 2025 19:42:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A5=E5=BF=97=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=B0=8F=E9=83=A8=E5=88=86mixin=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E6=8E=89=E6=B2=A1=E7=94=A8=E7=9A=84Accessor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compat/UpgradeSlotCompat.java | 17 +----- .../mixin/MixinConditions.java | 2 - .../ae2/accessor/AEBaseScreenInvoker.java | 10 ---- .../PatternProviderLogicAccessor.java | 6 +++ ...ernProviderLogicPatternInputsAccessor.java | 14 ----- .../PatternProviderLogicPatternsAccessor.java | 14 ----- ....java => PatternProviderMenuAccessor.java} | 2 +- .../ae2/client/gui/AEBaseScreenMixin.java | 33 ++---------- .../ae2/client/gui/InterfaceScreenMixin.java | 18 ++----- .../client/gui/PatternProviderCloseMixin.java | 3 +- .../PatternProviderScreenUpgradesMixin.java | 54 ------------------- .../PatternProviderLogicDoublingMixin.java | 6 +-- .../ToggleAdvancedBlockingC2SPacket.java | 4 +- .../ToggleSmartDoublingC2SPacket.java | 4 +- .../resources/extendedae_plus.mixins.json | 25 ++++----- 15 files changed, 35 insertions(+), 177 deletions(-) delete mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java delete mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java delete mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternsAccessor.java rename src/main/java/com/extendedae_plus/mixin/ae2/accessor/{PatternProviderMenuAdvancedAccessor.java => PatternProviderMenuAccessor.java} (87%) delete mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderScreenUpgradesMixin.java diff --git a/src/main/java/com/extendedae_plus/compat/UpgradeSlotCompat.java b/src/main/java/com/extendedae_plus/compat/UpgradeSlotCompat.java index 9768050..c78c7c7 100644 --- a/src/main/java/com/extendedae_plus/compat/UpgradeSlotCompat.java +++ b/src/main/java/com/extendedae_plus/compat/UpgradeSlotCompat.java @@ -2,7 +2,6 @@ package com.extendedae_plus.compat; import appeng.api.upgrades.IUpgradeInventory; import appeng.api.upgrades.IUpgradeableObject; -import appeng.api.upgrades.UpgradeInventories; import appeng.client.gui.style.ScreenStyle; import appeng.client.gui.widgets.ToolboxPanel; import appeng.client.gui.widgets.UpgradesPanel; @@ -41,15 +40,7 @@ public class UpgradeSlotCompat { */ public static boolean shouldEnableUpgradeSlots() { boolean appfluxExists = isAppfluxPresent(); - ExtendedAELogger.LOGGER.info("ExtendedAE-appflux模组检测: {}", appfluxExists ? "存在" : "不存在"); - - if (appfluxExists) { - ExtendedAELogger.LOGGER.info("检测到ExtendedAE-appflux模组,跳过我们的升级卡槽功能"); - return false; - } else { - ExtendedAELogger.LOGGER.info("未检测到ExtendedAE-appflux模组,启用我们的升级卡槽功能"); - return true; - } + return !appfluxExists; } /** @@ -100,8 +91,6 @@ public class UpgradeSlotCompat { if (menu instanceof IUpgradeableMenuCompat compatMenu) { compatMenu.setCompatToolbox(toolbox); } - - ExtendedAELogger.LOGGER.debug("成功为PatternProviderMenu初始化升级功能"); return true; } } catch (Exception e) { @@ -147,8 +136,6 @@ public class UpgradeSlotCompat { ToolboxPanel toolboxPanel = new ToolboxPanel(style, toolbox.getName()); addMethod.invoke(widgets, "toolbox", toolboxPanel); } - - ExtendedAELogger.LOGGER.debug("成功为PatternProviderScreen添加升级面板"); return true; } catch (NoSuchMethodException e) { // 尝试其他可能的方法签名 @@ -173,8 +160,6 @@ public class UpgradeSlotCompat { ToolboxPanel toolboxPanel = new ToolboxPanel(style, toolbox.getName()); putMethod.invoke(widgets, "toolbox", toolboxPanel); } - - ExtendedAELogger.LOGGER.debug("成功为PatternProviderScreen添加升级面板(使用put方法)"); return true; } catch (Exception e2) { ExtendedAELogger.LOGGER.error("反射调用widgets方法失败", e2); diff --git a/src/main/java/com/extendedae_plus/mixin/MixinConditions.java b/src/main/java/com/extendedae_plus/mixin/MixinConditions.java index 595bf1c..dbf7799 100644 --- a/src/main/java/com/extendedae_plus/mixin/MixinConditions.java +++ b/src/main/java/com/extendedae_plus/mixin/MixinConditions.java @@ -1,6 +1,5 @@ package com.extendedae_plus.mixin; -import net.minecraftforge.fml.ModList; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; @@ -27,7 +26,6 @@ public class MixinConditions implements IMixinConfigPlugin { public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { // 对于升级相关的Mixin,检查appflux是否存在 if (mixinClassName.contains("PatternProviderMenuUpgradesMixin") || - mixinClassName.contains("PatternProviderScreenUpgradesMixin") || mixinClassName.contains("PatternProviderLogicUpgradesMixin") || mixinClassName.contains("PatternProviderLogicHostUpgradesMixin")) { diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java deleted file mode 100644 index 0ec30f9..0000000 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.extendedae_plus.mixin.ae2.accessor; - -import appeng.client.gui.AEBaseScreen; -import appeng.menu.AEBaseMenu; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(AEBaseScreen.class) -public interface AEBaseScreenInvoker { - // 空接口:避免在 AEBaseScreen 上声明不存在方法的 Invoker 导致编译错误 -} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java index 6155a13..eaf4672 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java @@ -1,11 +1,14 @@ package com.extendedae_plus.mixin.ae2.accessor; +import appeng.api.crafting.IPatternDetails; import appeng.api.networking.IManagedGridNode; import appeng.helpers.patternprovider.PatternProviderLogic; import appeng.helpers.patternprovider.PatternProviderLogicHost; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; +import java.util.List; + @Mixin(PatternProviderLogic.class) public interface PatternProviderLogicAccessor { @Accessor(value = "host", remap = false) @@ -13,4 +16,7 @@ public interface PatternProviderLogicAccessor { @Accessor(value = "mainNode", remap = false) IManagedGridNode eap$mainNode(); + + @Accessor(value = "patterns" , remap = false) + List eap$patterns(); } diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java deleted file mode 100644 index 3f62fd4..0000000 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.extendedae_plus.mixin.ae2.accessor; - -import appeng.api.stacks.AEKey; -import appeng.helpers.patternprovider.PatternProviderLogic; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.Set; - -@Mixin(PatternProviderLogic.class) -public interface PatternProviderLogicPatternInputsAccessor { - @Accessor(value = "patternInputs",remap = false) - Set eap$patternInputs(); -} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternsAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternsAccessor.java deleted file mode 100644 index c1471e3..0000000 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternsAccessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.extendedae_plus.mixin.ae2.accessor; - -import appeng.api.crafting.IPatternDetails; -import appeng.helpers.patternprovider.PatternProviderLogic; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; - -@Mixin(value = PatternProviderLogic.class, remap = false) -public interface PatternProviderLogicPatternsAccessor { - @Accessor("patterns") - List eap$patterns(); -} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAccessor.java similarity index 87% rename from src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAccessor.java index 18ca7b7..a1d296f 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAccessor.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(PatternProviderMenu.class) -public interface PatternProviderMenuAdvancedAccessor { +public interface PatternProviderMenuAccessor { @Accessor(value = "logic", remap = false) PatternProviderLogic eap$logic(); } diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/AEBaseScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/AEBaseScreenMixin.java index 749e00d..df7e08a 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/AEBaseScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/AEBaseScreenMixin.java @@ -16,11 +16,11 @@ import appeng.menu.slot.AppEngSlot; import com.extendedae_plus.api.IExPatternPageAccessor; import com.extendedae_plus.content.ClientPatternHighlightStore; import com.extendedae_plus.init.ModNetwork; +import com.extendedae_plus.mixin.ae2.accessor.AEBaseScreenAccessor; import com.extendedae_plus.network.crafting.CraftingMonitorJumpC2SPacket; import com.extendedae_plus.network.crafting.CraftingMonitorOpenProviderC2SPacket; import com.extendedae_plus.util.GuiUtil; import com.glodblock.github.extendedae.client.gui.GuiExPatternProvider; -import com.mojang.logging.LogUtils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; @@ -40,17 +40,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(AEBaseScreen.class) public abstract class AEBaseScreenMixin { - @Unique - private ScreenStyle eap$getStyle(Object self) { - try { - var f = self.getClass().getDeclaredField("style"); - f.setAccessible(true); - Object v = f.get(self); - if (v instanceof ScreenStyle s) return s; - } catch (Throwable ignored) {} - return null; - } - /** * 在 AEBaseScreen 的 mouseClicked 入口拦截 CraftingCPUScreen 的 Shift+左键, * 读取鼠标下的 AEKey 并发送 CraftingMonitorJumpC2SPacket。 @@ -75,14 +64,9 @@ public abstract class AEBaseScreenMixin { if (key == null) { return; } - // Debug: 标记一次发送 - try { - LogUtils.getLogger().info("EAP: Send CraftingMonitorJumpC2SPacket: {}", key); - } catch (Throwable ignored2) {} ModNetwork.CHANNEL.sendToServer(new CraftingMonitorJumpC2SPacket(key)); cir.setReturnValue(true); - } catch (Throwable ignored) { - } + } catch (Throwable ignored) {} } /** @@ -109,14 +93,9 @@ public abstract class AEBaseScreenMixin { if (key == null) { return; } - // Debug: 标记一次发送(打开供应器UI) - try { - LogUtils.getLogger().info("EAP: Send CraftingMonitorOpenProviderC2SPacket: {}", key); - } catch (Throwable ignored2) {} ModNetwork.CHANNEL.sendToServer(new CraftingMonitorOpenProviderC2SPacket(key)); cir.setReturnValue(true); - } catch (Throwable ignored) { - } + } catch (Throwable ignored) {} } @Unique @@ -289,7 +268,7 @@ public abstract class AEBaseScreenMixin { String pageText = "第" + cur + "页" + "/" + max + "页"; - ScreenStyle style = eap$getStyle(self); + ScreenStyle style = ((AEBaseScreenAccessor) this).eap$getStyle(); int color = 0xFFFFFFFF; if (style != null) { try { @@ -307,11 +286,9 @@ public abstract class AEBaseScreenMixin { guiGraphics.drawString(font, pageText, lineWidth + padding, 0, color, false); guiGraphics.pose().popPose(); } - } catch (Throwable ignored) { - } + } catch (Throwable ignored) {} } - @Shadow(remap = false) protected void setTextContent(String id, Component content) {}; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/InterfaceScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/InterfaceScreenMixin.java index 78fbd03..5bb6ec1 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/InterfaceScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/InterfaceScreenMixin.java @@ -4,13 +4,13 @@ import appeng.client.gui.AEBaseScreen; import appeng.client.gui.implementations.InterfaceScreen; import appeng.menu.AEBaseMenu; import appeng.menu.SlotSemantics; +import appeng.menu.implementations.InterfaceMenu; import com.extendedae_plus.ae.client.gui.NewIcon; import com.extendedae_plus.init.ModNetwork; import com.extendedae_plus.mixin.accessor.AbstractContainerScreenAccessor; import com.extendedae_plus.mixin.accessor.ScreenAccessor; import com.extendedae_plus.network.meInterface.InterfaceAdjustConfigAmountC2SPacket; import com.glodblock.github.extendedae.client.button.ActionEPPButton; -import com.mojang.logging.LogUtils; import net.minecraft.world.inventory.Slot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -46,7 +46,6 @@ public abstract class InterfaceScreenMixin { if (!eap$isSupportedInterfaceScreen()) { return; } - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] init tail reached, preparing scale buttons."); } catch (Throwable ignored) {} // 避免重复创建 if (eap$x2Button == null) { eap$x2Button = new ActionEPPButton((b) -> { @@ -108,7 +107,6 @@ public abstract class InterfaceScreenMixin { // 初次定位 eap$relayoutButtons(); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] buttons added and laid out."); } catch (Throwable ignored) {} } @Inject(method = "containerTick", at = @At("TAIL")) @@ -121,32 +119,26 @@ public abstract class InterfaceScreenMixin { if (eap$divideBy2Button != null && !accessor.eap$getRenderables().contains(eap$divideBy2Button)) { accessor.eap$getRenderables().add(eap$divideBy2Button); accessor.eap$getChildren().add(eap$divideBy2Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added divide2 button to renderables."); } catch (Throwable ignored) {} } if (eap$x2Button != null && !accessor.eap$getRenderables().contains(eap$x2Button)) { accessor.eap$getRenderables().add(eap$x2Button); accessor.eap$getChildren().add(eap$x2Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added x2 button to renderables."); } catch (Throwable ignored) {} } if (eap$divideBy5Button != null && !accessor.eap$getRenderables().contains(eap$divideBy5Button)) { accessor.eap$getRenderables().add(eap$divideBy5Button); accessor.eap$getChildren().add(eap$divideBy5Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added divide5 button to renderables."); } catch (Throwable ignored) {} } if (eap$x5Button != null && !accessor.eap$getRenderables().contains(eap$x5Button)) { accessor.eap$getRenderables().add(eap$x5Button); accessor.eap$getChildren().add(eap$x5Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added x5 button to renderables."); } catch (Throwable ignored) {} } if (eap$divideBy10Button != null && !accessor.eap$getRenderables().contains(eap$divideBy10Button)) { accessor.eap$getRenderables().add(eap$divideBy10Button); accessor.eap$getChildren().add(eap$divideBy10Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added divide10 button to renderables."); } catch (Throwable ignored) {} } if (eap$x10Button != null && !accessor.eap$getRenderables().contains(eap$x10Button)) { accessor.eap$getRenderables().add(eap$x10Button); accessor.eap$getChildren().add(eap$x10Button); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] re-added x10 button to renderables."); } catch (Throwable ignored) {} } // 尺寸变化时重新定位 int curLeft = ((AbstractContainerScreenAccessor) (Object) this).eap$getLeftPos(); @@ -159,7 +151,6 @@ public abstract class InterfaceScreenMixin { eap$lastImageWidth = curImgW; eap$lastImageHeight = curImgH; eap$relayoutButtons(); - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] relayout due to bounds change: left={}, top={}, w={}, h={}", curLeft, curTop, curImgW, curImgH); } catch (Throwable ignored) {} } // 每帧根据 hoveredSlot 刷新最近一次的配置槽索引 eap$updateLastConfigFromHover(); @@ -177,7 +168,7 @@ public abstract class InterfaceScreenMixin { // 获取菜单与配置槽列表 var screen = (AEBaseScreen) (Object) this; var menu = screen.getMenu(); - if (!(menu instanceof appeng.menu.implementations.InterfaceMenu interfaceMenu)) { + if (!(menu instanceof InterfaceMenu interfaceMenu)) { return; } var configSlots = interfaceMenu.getSlots(SlotSemantics.CONFIG); @@ -212,10 +203,8 @@ public abstract class InterfaceScreenMixin { slotField = slotFieldObj; } else if (eap$lastConfigIndex >= 0 && eap$lastConfigIndex < configSlots.size()) { slotField = eap$lastConfigIndex; - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] Using last hovered config index: {}", slotField); } catch (Throwable ignored) {} } if (slotField < 0) { - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] No hovered slot and no last config index; ignoring adjust."); } catch (Throwable ignored) {} return; } @@ -282,7 +271,7 @@ public abstract class InterfaceScreenMixin { } var screen = (AEBaseScreen) (Object) this; var menu = screen.getMenu(); - if (!(menu instanceof appeng.menu.implementations.InterfaceMenu interfaceMenu)) { + if (!(menu instanceof InterfaceMenu interfaceMenu)) { return; } var configSlots = interfaceMenu.getSlots(SlotSemantics.CONFIG); @@ -310,7 +299,6 @@ public abstract class InterfaceScreenMixin { if (idx != null && idx >= 0) { if (eap$lastConfigIndex != idx) { eap$lastConfigIndex = idx; - try { LogUtils.getLogger().info("[EAP][InterfaceMixin] lastConfigIndex updated: {}", eap$lastConfigIndex); } catch (Throwable ignored) {} } } } catch (Throwable ignored) {} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderCloseMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderCloseMixin.java index 4613b2c..4370433 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderCloseMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderCloseMixin.java @@ -16,7 +16,6 @@ public class PatternProviderCloseMixin { if (((Object) this) instanceof PatternProviderScreen) { ClientPatternHighlightStore.clearAll(); } - } catch (Throwable ignored) { - } + } catch (Throwable ignored) {} } } \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderScreenUpgradesMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderScreenUpgradesMixin.java deleted file mode 100644 index 1a061ae..0000000 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternProviderScreenUpgradesMixin.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.extendedae_plus.mixin.ae2.client.gui; - -import appeng.api.upgrades.Upgrades; -import appeng.client.gui.AEBaseScreen; -import appeng.client.gui.implementations.PatternProviderScreen; -import appeng.client.gui.style.ScreenStyle; -import appeng.client.gui.widgets.ToolboxPanel; -import appeng.client.gui.widgets.UpgradesPanel; -import appeng.core.localization.GuiText; -import appeng.menu.SlotSemantics; -import appeng.menu.implementations.PatternProviderMenu; -import com.extendedae_plus.api.bridge.IUpgradableMenu; -import com.extendedae_plus.compat.UpgradeSlotCompat; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Inventory; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.ArrayList; -import java.util.List; - -@Mixin(value = PatternProviderScreen.class, priority = 2000, remap = false) -public abstract class PatternProviderScreenUpgradesMixin extends AEBaseScreen { - - @Inject(method = "", at = @At("TAIL")) - private void eap$initUpgrades(PatternProviderMenu menu, Inventory playerInventory, Component title, ScreenStyle style, CallbackInfo ci) { - // 只有在应该启用升级卡槽时才添加升级面板 - if (!UpgradeSlotCompat.shouldAddUpgradePanelToScreen()) { - return; - } - - this.widgets.add("upgrades", new UpgradesPanel( - menu.getSlots(SlotSemantics.UPGRADE), - this::eap$getCompatibleUpgrades)); - if (((IUpgradableMenu) menu).getToolbox() != null && ((IUpgradableMenu) menu).getToolbox().isPresent()) { - this.widgets.add("toolbox", new ToolboxPanel(style, ((IUpgradableMenu) menu).getToolbox().getName())); - } - } - - @Unique - private List eap$getCompatibleUpgrades() { - var list = new ArrayList(); - list.add(GuiText.CompatibleUpgrades.text()); - list.addAll(Upgrades.getTooltipLinesForMachine(((IUpgradableMenu) menu).getUpgrades().getUpgradableItem())); - return list; - } - - public PatternProviderScreenUpgradesMixin(C menu, Inventory playerInventory, Component title, ScreenStyle style) { - super(menu, playerInventory, title, style); - } -} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/helpers/PatternProviderLogicDoublingMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/helpers/PatternProviderLogicDoublingMixin.java index df1e66a..d78a7eb 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/helpers/PatternProviderLogicDoublingMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/helpers/PatternProviderLogicDoublingMixin.java @@ -5,7 +5,7 @@ import appeng.crafting.pattern.AEProcessingPattern; import appeng.helpers.patternprovider.PatternProviderLogic; import com.extendedae_plus.api.smartDoubling.ISmartDoublingAwarePattern; import com.extendedae_plus.api.smartDoubling.ISmartDoublingHolder; -import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicPatternsAccessor; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicAccessor; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; @@ -33,7 +33,7 @@ public class PatternProviderLogicDoublingMixin implements ISmartDoublingHolder { this.eap$smartDoubling = value; // 立即将开关状态应用到当前 Provider 的样板上,避免等待下一次 updatePatterns try { - var list = ((PatternProviderLogicPatternsAccessor) this).eap$patterns(); + var list = ((PatternProviderLogicAccessor) this).eap$patterns(); for (IPatternDetails details : list) { if (details instanceof AEProcessingPattern proc && proc instanceof ISmartDoublingAwarePattern aware) { aware.eap$setAllowScaling(value); @@ -60,7 +60,7 @@ public class PatternProviderLogicDoublingMixin implements ISmartDoublingHolder { @Inject(method = "updatePatterns", at = @At("TAIL")) private void eap$applySmartDoublingToPatterns(CallbackInfo ci) { try { - var list = ((PatternProviderLogicPatternsAccessor) this).eap$patterns(); + var list = ((PatternProviderLogicAccessor) this).eap$patterns(); boolean allow = this.eap$smartDoubling; for (IPatternDetails details : list) { if (details instanceof AEProcessingPattern proc && proc instanceof ISmartDoublingAwarePattern aware) { diff --git a/src/main/java/com/extendedae_plus/network/provider/ToggleAdvancedBlockingC2SPacket.java b/src/main/java/com/extendedae_plus/network/provider/ToggleAdvancedBlockingC2SPacket.java index c971d73..9162194 100644 --- a/src/main/java/com/extendedae_plus/network/provider/ToggleAdvancedBlockingC2SPacket.java +++ b/src/main/java/com/extendedae_plus/network/provider/ToggleAdvancedBlockingC2SPacket.java @@ -5,7 +5,7 @@ import appeng.api.config.YesNo; import appeng.menu.implementations.PatternProviderMenu; import com.extendedae_plus.api.IAdvancedBlocking; import com.extendedae_plus.mixin.advancedae.accessor.AdvPatternProviderMenuAdvancedAccessor; -import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAccessor; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; @@ -34,7 +34,7 @@ public class ToggleAdvancedBlockingC2SPacket { var containerMenu = player.containerMenu; if (containerMenu instanceof PatternProviderMenu menu) { - var accessor = (PatternProviderMenuAdvancedAccessor) menu; + var accessor = (PatternProviderMenuAccessor) menu; var logic = accessor.eap$logic(); if (logic instanceof IAdvancedBlocking holder) { boolean current = holder.eap$getAdvancedBlocking(); diff --git a/src/main/java/com/extendedae_plus/network/provider/ToggleSmartDoublingC2SPacket.java b/src/main/java/com/extendedae_plus/network/provider/ToggleSmartDoublingC2SPacket.java index abba57b..2006b5c 100644 --- a/src/main/java/com/extendedae_plus/network/provider/ToggleSmartDoublingC2SPacket.java +++ b/src/main/java/com/extendedae_plus/network/provider/ToggleSmartDoublingC2SPacket.java @@ -3,7 +3,7 @@ package com.extendedae_plus.network.provider; import appeng.menu.implementations.PatternProviderMenu; import com.extendedae_plus.api.smartDoubling.ISmartDoublingHolder; import com.extendedae_plus.mixin.advancedae.accessor.AdvPatternProviderMenuAdvancedAccessor; -import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAccessor; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkEvent; @@ -31,7 +31,7 @@ public class ToggleSmartDoublingC2SPacket { if (player == null) return; var containerMenu = player.containerMenu; if (containerMenu instanceof PatternProviderMenu menu) { - var accessor = (PatternProviderMenuAdvancedAccessor) menu; + var accessor = (PatternProviderMenuAccessor) menu; var logic = accessor.eap$logic(); if (logic instanceof ISmartDoublingHolder holder) { boolean current = holder.eap$getSmartDoubling(); diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json index 97c7ce5..c01b196 100644 --- a/src/main/resources/extendedae_plus.mixins.json +++ b/src/main/resources/extendedae_plus.mixins.json @@ -11,7 +11,6 @@ "advancedae.client.gui.SmallAdvPatternProviderScreenMixin", "ae2.QuartzCuttingKnifeItemMixin", "ae2.accessor.AEBaseScreenAccessor", - "ae2.accessor.AEBaseScreenInvoker", "ae2.accessor.MEStorageScreenAccessor", "ae2.accessor.PatternAccessTermScreenAccessor", "ae2.accessor.PatternAccessTermScreenSlotsRowAccessor", @@ -20,8 +19,8 @@ "ae2.client.gui.PatternEncodingTermScreenMixin", "ae2.client.gui.PatternProviderCloseMixin", "ae2.client.gui.PatternProviderScreenMixin", - "ae2.compat.PatternProviderScreenCompatMixin", "ae2.client.gui.SlotGridLayoutMixin", + "ae2.compat.PatternProviderScreenCompatMixin", "ae2.menu.CraftConfirmMenuGoBackMixin", "extendedae.accessor.GuiExPatternTerminalAccessor", "extendedae.accessor.GuiExPatternTerminalSlotsRowAccessor", @@ -45,43 +44,41 @@ "ae2.CraftingCalculationMixin", "ae2.CraftingCPUClusterMixin", "ae2.EncodedPatternItemMixin", + "ae2.InterfaceLogicUpgradesMixin", "ae2.accessor.MEStorageMenuAccessor", "ae2.accessor.PatternEncodingTermMenuAccessor", "ae2.accessor.PatternProviderLogicAccessor", - "ae2.accessor.PatternProviderLogicPatternInputsAccessor", - "ae2.accessor.PatternProviderLogicPatternsAccessor", - "ae2.accessor.PatternProviderMenuAdvancedAccessor", + "ae2.accessor.PatternProviderMenuAccessor", "ae2.autopattern.CraftingServiceGetProvidersMixin", "ae2.autopattern.CraftingTreeNodeAccessor", "ae2.autopattern.CraftingTreeNodeMixin", "ae2.autopattern.CraftingTreeProcessMixin", "ae2.autopattern.PatternProviderLogicContainsRedirectMixin", + "ae2.compat.PatternProviderCompatMixin", + "ae2.compat.PatternProviderLogicCompatMixin", + "ae2.compat.PatternProviderLogicHostCompatMixin", + "ae2.helpers.InterfaceLogicChannelCardMixin", + "ae2.helpers.InterfaceLogicTickerMixin", "ae2.helpers.PatternProviderLogicAdvancedMixin", "ae2.helpers.PatternProviderLogicDoublingMixin", + "ae2.helpers.patternprovider.PatternProviderLogicTickerMixin", "ae2.menu.ContainerPatternEncodingTermMenuMixin", "ae2.menu.MEStorageMenuMixin", "ae2.menu.PatternEncodingTermMenuMixin", "ae2.menu.PatternProviderMenuAdvancedMixin", "ae2.menu.PatternProviderMenuDoublingMixin", - "ae2.compat.PatternProviderLogicCompatMixin", - "ae2.compat.PatternProviderLogicHostCompatMixin", - "ae2.compat.PatternProviderCompatMixin", - "appflux.AppfluxPatternProviderLogicMixin", - "ae2.helpers.patternprovider.PatternProviderLogicTickerMixin", "ae2.parts.AEBasePartClientSyncMixin", "ae2.parts.automation.IOBusPartChannelCardMixin", "ae2.parts.automation.IOBusPartTickerChannelCardMixin", "ae2.parts.storagebus.StorageBusPartChannelCardMixin", "ae2.parts.storagebus.StorageBusPartTickerChannelCardMixin", "ae2WTlib.ContainerUWirelessExPatternTerminalMixin", + "appflux.AppfluxPatternProviderLogicMixin", "extendedae.common.PartExPatternProviderMixin", "extendedae.common.TileExPatternProviderMixin", "extendedae.container.ContainerExPatternProviderMixin", "extendedae.container.ContainerExPatternTerminalMixin", - "extendedae.container.ContainerWirelessExPatternTerminalMixin", - "ae2.helpers.InterfaceLogicChannelCardMixin", - "ae2.helpers.InterfaceLogicTickerMixin", - "ae2.InterfaceLogicUpgradesMixin" + "extendedae.container.ContainerWirelessExPatternTerminalMixin" ], "injectors": { "defaultRequire": 1