修改autoPattern文件结构,先完成再摆放至正确位置
This commit is contained in:
parent
ac522c7751
commit
9c20608926
|
|
@ -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 = "<init>(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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.extendedae_plus.mixin.ae2.accessor;
|
package com.extendedae_plus.mixin.autopattern;
|
||||||
|
|
||||||
import appeng.api.stacks.AEKey;
|
import appeng.api.stacks.AEKey;
|
||||||
import appeng.crafting.CraftingCalculation;
|
import appeng.crafting.CraftingCalculation;
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.extendedae_plus.mixin.ae2;
|
package com.extendedae_plus.mixin.autopattern;
|
||||||
|
|
||||||
import appeng.api.crafting.IPatternDetails;
|
import appeng.api.crafting.IPatternDetails;
|
||||||
import appeng.me.service.CraftingService;
|
import appeng.me.service.CraftingService;
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.extendedae_plus.mixin.ae2.accessor;
|
package com.extendedae_plus.mixin.autopattern;
|
||||||
|
|
||||||
import appeng.api.stacks.AEKey;
|
import appeng.api.stacks.AEKey;
|
||||||
import appeng.crafting.CraftingTreeNode;
|
import appeng.crafting.CraftingTreeNode;
|
||||||
|
|
@ -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 = "<init>(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;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
@ -29,25 +29,21 @@
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"ae2.ContainerPatternEncodingTermMenuMixin",
|
"ae2.ContainerPatternEncodingTermMenuMixin",
|
||||||
"ae2.CraftingCPUClusterMixin",
|
"ae2.CraftingCPUClusterMixin",
|
||||||
"ae2.CraftingServiceGetProvidersMixin",
|
|
||||||
"ae2.CraftingTreeProcessMixin",
|
|
||||||
"ae2.MEStorageMenuMixin",
|
"ae2.MEStorageMenuMixin",
|
||||||
"ae2.NetworkCraftingProvidersGetMediumsMixin",
|
|
||||||
"ae2.NetworkCraftingProvidersProviderStateMixin",
|
|
||||||
"ae2.PatternEncodingTermMenuMixin",
|
"ae2.PatternEncodingTermMenuMixin",
|
||||||
"ae2.PatternProviderLogicAdvancedMixin",
|
"ae2.PatternProviderLogicAdvancedMixin",
|
||||||
"ae2.PatternProviderLogicContainsRedirectMixin",
|
"ae2.PatternProviderLogicContainsRedirectMixin",
|
||||||
"ae2.PatternProviderLogicMixin",
|
|
||||||
"ae2.PatternProviderLogicPushPatternMixin",
|
|
||||||
"ae2.PatternProviderMenuAdvancedMixin",
|
"ae2.PatternProviderMenuAdvancedMixin",
|
||||||
"ae2.accessor.CraftingCalculationAccessor",
|
|
||||||
"ae2.accessor.CraftingTreeNodeAccessor",
|
|
||||||
"ae2.accessor.MEStorageMenuAccessor",
|
"ae2.accessor.MEStorageMenuAccessor",
|
||||||
"ae2.accessor.PatternEncodingTermMenuAccessor",
|
"ae2.accessor.PatternEncodingTermMenuAccessor",
|
||||||
"ae2.accessor.PatternProviderLogicAccessor",
|
"ae2.accessor.PatternProviderLogicAccessor",
|
||||||
"ae2.accessor.PatternProviderLogicPatternInputsAccessor",
|
"ae2.accessor.PatternProviderLogicPatternInputsAccessor",
|
||||||
"ae2.accessor.PatternProviderMenuAdvancedAccessor",
|
"ae2.accessor.PatternProviderMenuAdvancedAccessor",
|
||||||
"ae2WTlib.ContainerUWirelessExPatternTerminalMixin",
|
"ae2WTlib.ContainerUWirelessExPatternTerminalMixin",
|
||||||
|
"autopattern.CraftingCalculationAccessor",
|
||||||
|
"autopattern.CraftingServiceGetProvidersMixin",
|
||||||
|
"autopattern.CraftingTreeNodeAccessor",
|
||||||
|
"autopattern.CraftingTreeProcessMixin",
|
||||||
"extendedae.ContainerExPatternProviderMixin",
|
"extendedae.ContainerExPatternProviderMixin",
|
||||||
"extendedae.ContainerExPatternTerminalMixin",
|
"extendedae.ContainerExPatternTerminalMixin",
|
||||||
"extendedae.ContainerWirelessExPatternTerminalMixin",
|
"extendedae.ContainerWirelessExPatternTerminalMixin",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user