From 9c206089265f47dcf8699ac52b4d6a20820bb41a Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Fri, 29 Aug 2025 01:32:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9autoPattern=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=BB=93=E6=9E=84=EF=BC=8C=E5=85=88=E5=AE=8C=E6=88=90=E5=86=8D?= =?UTF-8?q?=E6=91=86=E6=94=BE=E8=87=B3=E6=AD=A3=E7=A1=AE=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mixin/ae2/CraftingTreeProcessMixin.java | 45 ------------------- .../CraftingCalculationAccessor.java | 2 +- .../CraftingServiceGetProvidersMixin.java | 2 +- .../CraftingTreeNodeAccessor.java | 2 +- .../autopattern/CraftingTreeProcessMixin.java | 34 ++++++++++++++ .../resources/extendedae_plus.mixins.json | 12 ++--- 6 files changed, 41 insertions(+), 56 deletions(-) delete mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/CraftingTreeProcessMixin.java rename src/main/java/com/extendedae_plus/mixin/{ae2/accessor => autopattern}/CraftingCalculationAccessor.java (88%) rename src/main/java/com/extendedae_plus/mixin/{ae2 => autopattern}/CraftingServiceGetProvidersMixin.java (96%) rename src/main/java/com/extendedae_plus/mixin/{ae2/accessor => autopattern}/CraftingTreeNodeAccessor.java (88%) create mode 100644 src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeProcessMixin.java diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/CraftingTreeProcessMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/CraftingTreeProcessMixin.java deleted file mode 100644 index 47c21fa..0000000 --- a/src/main/java/com/extendedae_plus/mixin/ae2/CraftingTreeProcessMixin.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.extendedae_plus.mixin.ae2; - -import appeng.api.crafting.IPatternDetails; -import appeng.api.networking.crafting.ICraftingService; -import appeng.api.stacks.AEKey; -import appeng.crafting.CraftingCalculation; -import appeng.crafting.CraftingTreeNode; -import appeng.crafting.CraftingTreeProcess; -import appeng.crafting.pattern.AEProcessingPattern; -import com.extendedae_plus.mixin.ae2.accessor.CraftingCalculationAccessor; -import com.extendedae_plus.mixin.ae2.accessor.CraftingTreeNodeAccessor; -import com.extendedae_plus.util.PatternScaler; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyVariable; - -/** - * 注入 CraftingTreeProcess 构造器尾部:将 AEProcessingPattern 替换为 ScaledProcessingPattern - * 以确保后续执行使用放大后的输入/输出视图。 - */ -@Mixin(CraftingTreeProcess.class) -public class CraftingTreeProcessMixin { - - @ModifyVariable(method = "(Lappeng/api/networking/crafting/ICraftingService;Lappeng/crafting/CraftingCalculation;Lappeng/api/crafting/IPatternDetails;Lappeng/crafting/CraftingTreeNode;)V", - at = @At("HEAD"), argsOnly = true) - private static IPatternDetails extendedae_plus$replaceDetailsAtHead(IPatternDetails original, ICraftingService cc, CraftingCalculation job, IPatternDetails details, CraftingTreeNode craftingTreeNode) { - try { - if (!(details instanceof AEProcessingPattern proc)) return original; - - CraftingCalculationAccessor jobAcc = (CraftingCalculationAccessor) job; - long requested = jobAcc.extendedae_plus$getRequestedAmount(); - - CraftingTreeNodeAccessor parentAcc = (CraftingTreeNodeAccessor) craftingTreeNode; - AEKey parentTarget = parentAcc.extendedae_plus$getWhat(); - - System.out.println("[extendedae_plus] Replacing constructor details at HEAD for: " + parentTarget + " x " + requested); - - return PatternScaler.scale(proc, parentTarget, requested); - } catch (Exception e) { - System.err.println("[extendedae_plus] Error replacing pattern at HEAD: " + e.getMessage()); - e.printStackTrace(); - return original; - } - } -} diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingCalculationAccessor.java b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingCalculationAccessor.java similarity index 88% rename from src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingCalculationAccessor.java rename to src/main/java/com/extendedae_plus/mixin/autopattern/CraftingCalculationAccessor.java index 859866b..96bb300 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingCalculationAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingCalculationAccessor.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin.ae2.accessor; +package com.extendedae_plus.mixin.autopattern; import appeng.api.stacks.AEKey; import appeng.crafting.CraftingCalculation; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/CraftingServiceGetProvidersMixin.java b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingServiceGetProvidersMixin.java similarity index 96% rename from src/main/java/com/extendedae_plus/mixin/ae2/CraftingServiceGetProvidersMixin.java rename to src/main/java/com/extendedae_plus/mixin/autopattern/CraftingServiceGetProvidersMixin.java index 2361c8a..fc6ea61 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/CraftingServiceGetProvidersMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingServiceGetProvidersMixin.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin.ae2; +package com.extendedae_plus.mixin.autopattern; import appeng.api.crafting.IPatternDetails; import appeng.me.service.CraftingService; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingTreeNodeAccessor.java b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeNodeAccessor.java similarity index 88% rename from src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingTreeNodeAccessor.java rename to src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeNodeAccessor.java index 39b7dbc..81d60e2 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/CraftingTreeNodeAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeNodeAccessor.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin.ae2.accessor; +package com.extendedae_plus.mixin.autopattern; import appeng.api.stacks.AEKey; import appeng.crafting.CraftingTreeNode; diff --git a/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeProcessMixin.java b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeProcessMixin.java new file mode 100644 index 0000000..cada53a --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/autopattern/CraftingTreeProcessMixin.java @@ -0,0 +1,34 @@ +package com.extendedae_plus.mixin.autopattern; + +import appeng.crafting.CraftingTreeProcess; +import org.spongepowered.asm.mixin.Mixin; + +/** + * 注入 CraftingTreeProcess 构造器尾部:将 AEProcessingPattern 替换为 ScaledProcessingPattern + * 以确保后续执行使用放大后的输入/输出视图。 + */ +@Mixin(CraftingTreeProcess.class) +public class CraftingTreeProcessMixin { + +// @ModifyVariable(method = "(Lappeng/api/networking/crafting/ICraftingService;Lappeng/crafting/CraftingCalculation;Lappeng/api/crafting/IPatternDetails;Lappeng/crafting/CraftingTreeNode;)V", +// at = @At("HEAD"), argsOnly = true) +// private static IPatternDetails extendedae_plus$replaceDetailsAtHead(IPatternDetails original, ICraftingService cc, CraftingCalculation job, IPatternDetails details, CraftingTreeNode craftingTreeNode) { +// try { +// if (!(details instanceof AEProcessingPattern proc)) return original; +// +// CraftingCalculationAccessor jobAcc = (CraftingCalculationAccessor) job; +// long requested = jobAcc.extendedae_plus$getRequestedAmount(); +// +// CraftingTreeNodeAccessor parentAcc = (CraftingTreeNodeAccessor) craftingTreeNode; +// AEKey parentTarget = parentAcc.extendedae_plus$getWhat(); +// +// System.out.println("[extendedae_plus] Replacing constructor details at HEAD for: " + parentTarget + " x " + requested); +// +// return PatternScaler.scale(proc, parentTarget, requested); +// } catch (Exception e) { +// System.err.println("[extendedae_plus] Error replacing pattern at HEAD: " + e.getMessage()); +// e.printStackTrace(); +// return original; +// } +// } +} diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json index 1418956..a5eb682 100644 --- a/src/main/resources/extendedae_plus.mixins.json +++ b/src/main/resources/extendedae_plus.mixins.json @@ -29,25 +29,21 @@ "mixins": [ "ae2.ContainerPatternEncodingTermMenuMixin", "ae2.CraftingCPUClusterMixin", - "ae2.CraftingServiceGetProvidersMixin", - "ae2.CraftingTreeProcessMixin", "ae2.MEStorageMenuMixin", - "ae2.NetworkCraftingProvidersGetMediumsMixin", - "ae2.NetworkCraftingProvidersProviderStateMixin", "ae2.PatternEncodingTermMenuMixin", "ae2.PatternProviderLogicAdvancedMixin", "ae2.PatternProviderLogicContainsRedirectMixin", - "ae2.PatternProviderLogicMixin", - "ae2.PatternProviderLogicPushPatternMixin", "ae2.PatternProviderMenuAdvancedMixin", - "ae2.accessor.CraftingCalculationAccessor", - "ae2.accessor.CraftingTreeNodeAccessor", "ae2.accessor.MEStorageMenuAccessor", "ae2.accessor.PatternEncodingTermMenuAccessor", "ae2.accessor.PatternProviderLogicAccessor", "ae2.accessor.PatternProviderLogicPatternInputsAccessor", "ae2.accessor.PatternProviderMenuAdvancedAccessor", "ae2WTlib.ContainerUWirelessExPatternTerminalMixin", + "autopattern.CraftingCalculationAccessor", + "autopattern.CraftingServiceGetProvidersMixin", + "autopattern.CraftingTreeNodeAccessor", + "autopattern.CraftingTreeProcessMixin", "extendedae.ContainerExPatternProviderMixin", "extendedae.ContainerExPatternTerminalMixin", "extendedae.ContainerWirelessExPatternTerminalMixin",