From 342a9510d76cea70b7f2940ff7390b038e867a44 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Tue, 4 Nov 2025 21:04:09 +0800 Subject: [PATCH] =?UTF-8?q?gtl=EF=BC=9A=E6=96=B0=E7=89=88=E7=BF=BB?= =?UTF-8?q?=E5=80=8D=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopattern/CraftingTreeProcessMixin.java | 39 +++++++++++++++++++ .../resources/extendedae_plus.mixins.json | 1 + 2 files changed, 40 insertions(+) create mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingTreeProcessMixin.java diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingTreeProcessMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingTreeProcessMixin.java new file mode 100644 index 0000000..d90419e --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingTreeProcessMixin.java @@ -0,0 +1,39 @@ +package com.extendedae_plus.mixin.ae2.autopattern; + +import appeng.api.crafting.IPatternDetails; +import appeng.api.networking.crafting.ICraftingService; +import appeng.crafting.CraftingCalculation; +import appeng.crafting.CraftingTreeNode; +import appeng.crafting.CraftingTreeProcess; +import appeng.crafting.inv.CraftingSimulationState; +import com.extendedae_plus.api.smartDoubling.ICraftingSimulationStateExt; +import com.extendedae_plus.api.smartDoubling.ICraftingTreeProcessExt; +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; + +@SuppressWarnings({"AddedMixinMembersNamePattern"}) +@Mixin(value = CraftingTreeProcess.class, remap = false, priority = 2000) +public class CraftingTreeProcessMixin implements ICraftingTreeProcessExt { + @Unique private ICraftingService craftingService; + + @Inject(method = "",at = @At("RETURN")) + private void init(ICraftingService cc, CraftingCalculation job, IPatternDetails details, CraftingTreeNode craftingTreeNode, CallbackInfo ci) { + this.craftingService = cc; + } + + @Inject( + method = "ultraFastRequest", + at = @At("HEAD") + ) + private void bindSimulationState(CraftingSimulationState inv, long times, CallbackInfo ci) { + ((ICraftingSimulationStateExt) inv).setSourceProcess((CraftingTreeProcess) (Object) this); + } + + @Override + public ICraftingService getCraftingService() { + return this.craftingService; + } +} diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json index c819381..71fc82a 100644 --- a/src/main/resources/extendedae_plus.mixins.json +++ b/src/main/resources/extendedae_plus.mixins.json @@ -57,6 +57,7 @@ "ae2.autopattern.CraftingServiceGetProvidersMixin", "ae2.autopattern.CraftingSimulationStateAccessor", "ae2.autopattern.CraftingSimulationStateMixin", + "ae2.autopattern.CraftingTreeProcessMixin", "ae2.autopattern.PatternProviderLogicContainsRedirectMixin", "ae2.autopattern.gtceu.GTLCoreMEPatternBufferPartMachineMixin", "ae2.autopattern.gtceu.MEPatternBufferPartMachineMixin",