diff --git a/src/main/java/com/extendedae_plus/client/InputEvents.java b/src/main/java/com/extendedae_plus/client/InputEvents.java
index e45e7dd..9bae0b6 100644
--- a/src/main/java/com/extendedae_plus/client/InputEvents.java
+++ b/src/main/java/com/extendedae_plus/client/InputEvents.java
@@ -1,19 +1,16 @@
package com.extendedae_plus.client;
-import java.util.Optional;
-
-import org.lwjgl.glfw.GLFW;
-
+import appeng.api.stacks.GenericStack;
+import appeng.client.gui.me.common.MEStorageScreen;
+import appeng.integration.modules.jei.GenericEntryStackHelper;
import com.extendedae_plus.ExtendedAEPlus;
import com.extendedae_plus.integration.jei.JeiRuntimeProxy;
+import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor;
import com.extendedae_plus.network.ModNetwork;
import com.extendedae_plus.network.OpenCraftFromJeiC2SPacket;
import com.extendedae_plus.network.PullFromJeiOrCraftC2SPacket;
-
-import appeng.api.stacks.GenericStack;
-import appeng.integration.modules.jei.GenericEntryStackHelper;
-import mezz.jei.api.ingredients.ITypedIngredient;
import mezz.jei.api.constants.VanillaTypes;
+import mezz.jei.api.ingredients.ITypedIngredient;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.item.ItemStack;
@@ -21,8 +18,9 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ScreenEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
-import appeng.client.gui.me.common.MEStorageScreen;
-import com.extendedae_plus.mixin.accessor.MEStorageScreenAccessor;
+import org.lwjgl.glfw.GLFW;
+
+import java.util.Optional;
@Mod.EventBusSubscriber(modid = ExtendedAEPlus.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE)
public final class InputEvents {
diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java
similarity index 99%
rename from src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java
index 40f6266..0cd3947 100644
--- a/src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java
@@ -1,18 +1,18 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2;
+import appeng.api.crafting.PatternDetailsHelper;
import appeng.menu.me.items.PatternEncodingTermMenu;
import appeng.menu.slot.RestrictedInputSlot;
-import appeng.api.crafting.PatternDetailsHelper;
import appeng.parts.encoding.EncodingMode;
+import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
import com.glodblock.github.glodium.network.packet.sync.IActionHolder;
import com.glodblock.github.glodium.network.packet.sync.Paras;
-import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.Shadow;
+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;
diff --git a/src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java
similarity index 97%
rename from src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java
index 73c083b..bb1d402 100644
--- a/src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java
@@ -1,21 +1,20 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2;
+import appeng.api.config.Setting;
+import appeng.api.util.IConfigManager;
+import appeng.menu.me.common.MEStorageMenu;
+import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor;
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 appeng.api.util.IConfigManager;
-import appeng.menu.me.common.MEStorageMenu;
-import com.extendedae_plus.mixin.accessor.MEStorageMenuAccessor;
-import appeng.api.config.Setting;
-
/**
* 修复:当服务端 ConfigManager 注册了额外设置(例如 TERMINAL_SHOW_PATTERN_PROVIDERS)
* 而客户端 clientCM 未注册时,AE2 在同步环节会对 clientCM 执行 getSetting,
* 进而抛出 UnsupportedSettingException。
- *
+ *
* 方案:在服务端首次 broadcastChanges 时,仅为“客户端缺失”的设置执行注册补齐,且占位值与服务端不同,
* 以确保 AE2 后续仍会发送 ConfigValuePacket 完成真正的值同步,避免影响排序等行为。
*/
diff --git a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java
similarity index 97%
rename from src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java
index d17f475..cd01f0e 100644
--- a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java
@@ -1,30 +1,25 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2;
+import appeng.api.inventories.InternalInventory;
+import appeng.api.networking.energy.IEnergySource;
+import appeng.api.stacks.AEItemKey;
+import appeng.api.stacks.AEKey;
+import appeng.api.storage.MEStorage;
+import appeng.api.storage.StorageHelper;
+import appeng.core.definitions.AEItems;
+import appeng.helpers.IPatternTerminalMenuHost;
+import appeng.menu.me.common.MEStorageMenu;
+import appeng.menu.me.items.PatternEncodingTermMenu;
+import appeng.menu.slot.RestrictedInputSlot;
+import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor;
+import net.minecraft.world.entity.player.Inventory;
+import net.minecraft.world.inventory.MenuType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.jetbrains.annotations.Nullable;
-
-import net.minecraft.world.entity.player.Inventory;
-import net.minecraft.world.inventory.MenuType;
-
-import appeng.api.inventories.InternalInventory;
-import appeng.api.networking.energy.IEnergySource;
-import appeng.api.storage.MEStorage;
-import appeng.api.storage.StorageHelper;
-import appeng.api.stacks.AEItemKey;
-import appeng.api.stacks.AEKey;
-import appeng.core.definitions.AEItems;
-import appeng.helpers.IPatternTerminalMenuHost;
-import appeng.menu.me.items.PatternEncodingTermMenu;
-import appeng.api.networking.security.IActionSource;
-import appeng.menu.slot.RestrictedInputSlot;
-import appeng.menu.me.common.MEStorageMenu;
-import com.extendedae_plus.mixin.accessor.MEStorageMenuAccessor;
-
@Mixin(PatternEncodingTermMenu.class)
public abstract class PatternEncodingTermMenuMixin {
diff --git a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java
similarity index 98%
rename from src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java
index 09ac8be..4743df6 100644
--- a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java
@@ -1,28 +1,25 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2;
-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 net.minecraft.client.gui.components.Tooltip;
-import net.minecraft.client.gui.GuiGraphics;
-import net.minecraft.client.renderer.Rect2i;
-import net.minecraft.network.chat.Component;
-
-import appeng.client.gui.Icon;
import appeng.client.gui.AEBaseScreen;
+import appeng.client.gui.Icon;
import appeng.client.gui.me.items.PatternEncodingTermScreen;
import appeng.client.gui.style.ScreenStyle;
import appeng.client.gui.style.WidgetStyle;
import appeng.client.gui.widgets.IconButton;
import appeng.menu.AEBaseMenu;
-
-import com.extendedae_plus.network.ModNetwork;
-import com.extendedae_plus.mixin.accessor.AEBaseScreenAccessor;
import com.extendedae_plus.mixin.accessor.AbstractContainerScreenAccessor;
import com.extendedae_plus.mixin.accessor.ScreenAccessor;
+import com.extendedae_plus.mixin.ae2.accessor.AEBaseScreenAccessor;
+import com.extendedae_plus.network.ModNetwork;
+import net.minecraft.client.gui.GuiGraphics;
+import net.minecraft.client.gui.components.Tooltip;
+import net.minecraft.client.renderer.Rect2i;
+import net.minecraft.network.chat.Component;
+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;
/**
* 在图样编码终端界面加入一个上传按钮:
diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java
index 29f1bc9..4b749bf 100644
--- a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java
@@ -6,6 +6,12 @@ import appeng.client.gui.implementations.PatternProviderScreen;
import appeng.client.gui.style.ScreenStyle;
import appeng.client.gui.widgets.ToggleButton;
import appeng.menu.implementations.PatternProviderMenu;
+import com.extendedae_plus.api.PatternProviderMenuAdvancedSync;
+import com.extendedae_plus.client.ClientAdvancedBlockingState;
+import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicAccessor;
+import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor;
+import com.extendedae_plus.network.ModNetwork;
+import com.extendedae_plus.network.ToggleAdvancedBlockingC2SPacket;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Inventory;
import org.spongepowered.asm.mixin.Mixin;
@@ -14,13 +20,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import com.extendedae_plus.api.PatternProviderMenuAdvancedSync;
-import com.extendedae_plus.network.ModNetwork;
-import com.extendedae_plus.network.ToggleAdvancedBlockingC2SPacket;
-import com.extendedae_plus.client.ClientAdvancedBlockingState;
-import com.extendedae_plus.mixin.accessor.PatternProviderMenuAdvancedAccessor;
-import com.extendedae_plus.mixin.accessor.PatternProviderLogicAccessor;
-
/**
* 为 AE2 原版样板供应器界面添加“高级阻挡模式”按钮(仅客户端UI反馈)。
* - 位于左侧工具栏
diff --git a/src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java
similarity index 97%
rename from src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java
index 705b720..e4a9eff 100644
--- a/src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java
@@ -1,7 +1,7 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2;
-import appeng.client.gui.layout.SlotGridLayout;
import appeng.client.Point;
+import appeng.client.gui.layout.SlotGridLayout;
import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java
similarity index 89%
rename from src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java
index bdcad30..d9aa61a 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java
@@ -1,11 +1,10 @@
-package com.extendedae_plus.mixin.accessor;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
+package com.extendedae_plus.mixin.ae2.accessor;
import appeng.client.gui.AEBaseScreen;
import appeng.client.gui.style.ScreenStyle;
import appeng.menu.AEBaseMenu;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(value = AEBaseScreen.class, remap = false)
public interface AEBaseScreenAccessor {
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java
similarity index 86%
rename from src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java
index 46317d3..0ec30f9 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java
@@ -1,9 +1,8 @@
-package com.extendedae_plus.mixin.accessor;
-
-import org.spongepowered.asm.mixin.Mixin;
+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 {
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java
similarity index 94%
rename from src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java
index 0d7a184..a3662ac 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java
@@ -1,14 +1,12 @@
-package com.extendedae_plus.mixin.accessor;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
-
-import org.jetbrains.annotations.Nullable;
+package com.extendedae_plus.mixin.ae2.accessor;
import appeng.api.networking.energy.IEnergySource;
import appeng.api.storage.MEStorage;
-import appeng.menu.me.common.MEStorageMenu;
import appeng.api.util.IConfigManager;
+import appeng.menu.me.common.MEStorageMenu;
+import org.jetbrains.annotations.Nullable;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(MEStorageMenu.class)
public interface MEStorageMenuAccessor {
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java
similarity index 90%
rename from src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java
index d16ef19..e277e1a 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java
@@ -1,11 +1,10 @@
-package com.extendedae_plus.mixin.accessor;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
-import org.spongepowered.asm.mixin.gen.Invoker;
+package com.extendedae_plus.mixin.ae2.accessor;
import appeng.client.gui.me.common.MEStorageScreen;
import appeng.client.gui.widgets.AETextField;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(value = MEStorageScreen.class, remap = false)
public interface MEStorageScreenAccessor {
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java
similarity index 90%
rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java
index 2070091..a65aac2 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java
@@ -1,4 +1,4 @@
-package com.extendedae_plus.mixin.accessor;
+package com.extendedae_plus.mixin.ae2.accessor;
import appeng.menu.me.items.PatternEncodingTermMenu;
import appeng.menu.slot.RestrictedInputSlot;
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java
similarity index 88%
rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java
index 7818382..732c3fc 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java
@@ -1,10 +1,9 @@
-package com.extendedae_plus.mixin.accessor;
-
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
+package com.extendedae_plus.mixin.ae2.accessor;
import appeng.helpers.patternprovider.PatternProviderLogic;
import appeng.helpers.patternprovider.PatternProviderLogicHost;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(PatternProviderLogic.class)
public interface PatternProviderLogicAccessor {
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java
similarity index 88%
rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java
index 1c6701c..a7f1158 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java
@@ -1,13 +1,12 @@
-package com.extendedae_plus.mixin.accessor;
+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;
-import appeng.api.stacks.AEKey;
-import appeng.helpers.patternprovider.PatternProviderLogic;
-
@Mixin(PatternProviderLogic.class)
public interface PatternProviderLogicPatternInputsAccessor {
@Accessor("patternInputs")
diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java
similarity index 88%
rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java
rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java
index af5c494..2f62d09 100644
--- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java
@@ -1,11 +1,10 @@
-package com.extendedae_plus.mixin.accessor;
+package com.extendedae_plus.mixin.ae2.accessor;
+import appeng.helpers.patternprovider.PatternProviderLogic;
+import appeng.menu.implementations.PatternProviderMenu;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
-import appeng.menu.implementations.PatternProviderMenu;
-import appeng.helpers.patternprovider.PatternProviderLogic;
-
@Mixin(PatternProviderMenu.class)
public interface PatternProviderMenuAdvancedAccessor {
@Accessor("logic")
diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java
similarity index 96%
rename from src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java
rename to src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java
index 83178e8..ac08574 100644
--- a/src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java
@@ -1,6 +1,5 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.ae2WTlib;
-import appeng.api.util.IConfigurableObject;
import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
import com.glodblock.github.extendedae.xmod.wt.ContainerUWirelessExPAT;
import com.glodblock.github.extendedae.xmod.wt.HostUWirelessExPAT;
diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java
similarity index 98%
rename from src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java
index 9ed0c22..540d9c5 100644
--- a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java
@@ -1,28 +1,27 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
+import appeng.api.crafting.PatternDetailsHelper;
+import appeng.api.stacks.GenericStack;
+import appeng.crafting.pattern.AEProcessingPattern;
+import appeng.crafting.pattern.EncodedPatternItem;
import appeng.helpers.patternprovider.PatternProviderLogicHost;
import appeng.menu.SlotSemantics;
import appeng.menu.guisync.GuiSync;
import appeng.menu.implementations.PatternProviderMenu;
import appeng.menu.slot.AppEngSlot;
-import appeng.crafting.pattern.EncodedPatternItem;
-import appeng.crafting.pattern.AEProcessingPattern;
-import appeng.api.stacks.GenericStack;
-import appeng.api.crafting.PatternDetailsHelper;
import com.glodblock.github.extendedae.container.ContainerExPatternProvider;
import com.glodblock.github.glodium.network.packet.sync.IActionHolder;
import com.glodblock.github.glodium.network.packet.sync.Paras;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.inventory.Slot;
+import org.jetbrains.annotations.NotNull;
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 org.jetbrains.annotations.NotNull;
-import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java
similarity index 98%
rename from src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java
index 566c413..ff94b52 100644
--- a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java
@@ -1,12 +1,13 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
+import appeng.api.util.IConfigurableObject;
import appeng.menu.guisync.GuiSync;
import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
-import appeng.api.util.IConfigurableObject;
import com.glodblock.github.extendedae.container.ContainerExPatternTerminal;
import com.glodblock.github.glodium.network.packet.sync.IActionHolder;
import com.glodblock.github.glodium.network.packet.sync.Paras;
import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.world.entity.player.Player;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@@ -16,7 +17,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Map;
import java.util.function.Consumer;
-import net.minecraft.world.entity.player.Player;
@Mixin(ContainerExPatternTerminal.class)
public abstract class ContainerExPatternTerminalMixin implements IActionHolder {
diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java
similarity index 96%
rename from src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java
index 65abf96..168715a 100644
--- a/src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java
@@ -1,9 +1,8 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
-import appeng.api.util.IConfigurableObject;
import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
-import com.glodblock.github.extendedae.container.ContainerWirelessExPAT;
import com.glodblock.github.extendedae.common.me.itemhost.HostWirelessExPAT;
+import com.glodblock.github.extendedae.container.ContainerWirelessExPAT;
import com.glodblock.github.glodium.network.packet.sync.IActionHolder;
import com.glodblock.github.glodium.network.packet.sync.Paras;
import net.minecraft.server.level.ServerPlayer;
diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java
similarity index 99%
rename from src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java
index 752c06d..22990b7 100644
--- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java
@@ -1,18 +1,16 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
import appeng.client.gui.Icon;
import appeng.client.gui.implementations.PatternProviderScreen;
import appeng.client.gui.style.PaletteColor;
import appeng.client.gui.style.ScreenStyle;
-import appeng.client.gui.widgets.VerticalButtonBar;
import appeng.menu.SlotSemantics;
import com.extendedae_plus.NewIcon;
-import com.extendedae_plus.util.PatternProviderUIHelper;
import com.glodblock.github.extendedae.client.button.ActionEPPButton;
-import com.glodblock.github.extendedae.network.EPPNetworkHandler;
-import com.glodblock.github.glodium.network.packet.CGenericPacket;
import com.glodblock.github.extendedae.client.gui.GuiExPatternProvider;
import com.glodblock.github.extendedae.container.ContainerExPatternProvider;
+import com.glodblock.github.extendedae.network.EPPNetworkHandler;
+import com.glodblock.github.glodium.network.packet.CGenericPacket;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java
similarity index 98%
rename from src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java
index 1214f00..4143ffc 100644
--- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java
@@ -1,22 +1,19 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
-import appeng.client.gui.Icon;
+import appeng.api.crafting.PatternDetailsHelper;
import appeng.client.gui.AEBaseScreen;
+import appeng.client.gui.Icon;
import appeng.client.gui.style.ScreenStyle;
import appeng.client.gui.widgets.IconButton;
-import com.extendedae_plus.util.ExtendedAEPatternUploadUtil;
+import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal;
+import com.glodblock.github.extendedae.container.ContainerExPatternTerminal;
import com.glodblock.github.extendedae.network.EPPNetworkHandler;
import com.glodblock.github.glodium.network.packet.CGenericPacket;
-import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal;
-import com.glodblock.github.extendedae.client.gui.GuiWirelessExPAT;
-import com.glodblock.github.extendedae.container.ContainerExPatternTerminal;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.network.chat.Component;
-import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ItemStack;
-import appeng.api.crafting.PatternDetailsHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
diff --git a/src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java
similarity index 98%
rename from src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java
index 135d4d7..8d69174 100644
--- a/src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java
@@ -1,4 +1,4 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
import com.glodblock.github.extendedae.client.button.HighlightButton;
import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal;
diff --git a/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java
similarity index 95%
rename from src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java
index b6e4997..5b69fb6 100644
--- a/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java
@@ -1,4 +1,4 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
import com.extendedae_plus.config.ModConfigs;
import com.glodblock.github.extendedae.common.parts.PartExPatternProvider;
diff --git a/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java
similarity index 95%
rename from src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java
rename to src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java
index 5dd0d12..1740b24 100644
--- a/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java
+++ b/src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java
@@ -1,4 +1,4 @@
-package com.extendedae_plus.mixin;
+package com.extendedae_plus.mixin.extendedae;
import com.extendedae_plus.config.ModConfigs;
import com.glodblock.github.extendedae.common.tileentities.TileExPatternProvider;
diff --git a/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java b/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java
index 100cf9d..070e2ff 100644
--- a/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java
+++ b/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java
@@ -1,17 +1,16 @@
package com.extendedae_plus.network;
+import appeng.menu.implementations.PatternProviderMenu;
+import com.extendedae_plus.api.AdvancedBlockingHolder;
+import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicAccessor;
+import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor;
import net.minecraft.network.FriendlyByteBuf;
-import net.minecraftforge.network.NetworkEvent;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.network.NetworkDirection;
+import net.minecraftforge.network.NetworkEvent;
import java.util.function.Supplier;
-import appeng.menu.implementations.PatternProviderMenu;
-import com.extendedae_plus.mixin.accessor.PatternProviderMenuAdvancedAccessor;
-import com.extendedae_plus.api.AdvancedBlockingHolder;
-import com.extendedae_plus.mixin.accessor.PatternProviderLogicAccessor;
-
/**
* C2S:切换高级阻挡模式。
* 不含额外负载,直接基于玩家当前打开的 PatternProviderMenu 进行切换。
diff --git a/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java b/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java
index ef505b8..14923c8 100644
--- a/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java
+++ b/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java
@@ -1,46 +1,40 @@
package com.extendedae_plus.util;
-import appeng.api.inventories.InternalInventory;
-import appeng.api.crafting.PatternDetailsHelper;
import appeng.api.crafting.IPatternDetails;
+import appeng.api.crafting.PatternDetailsHelper;
+import appeng.api.inventories.InternalInventory;
import appeng.api.networking.IGrid;
import appeng.api.networking.IGridNode;
+import appeng.core.definitions.AEItems;
+import appeng.crafting.pattern.AECraftingPattern;
import appeng.helpers.patternprovider.PatternContainer;
import appeng.menu.implementations.PatternAccessTermMenu;
import appeng.menu.me.items.PatternEncodingTermMenu;
-import appeng.crafting.pattern.AECraftingPattern;
-import appeng.core.definitions.AEItems;
import appeng.util.inv.FilteredInternalInventory;
import appeng.util.inv.filter.IAEItemFilter;
-import net.minecraft.server.level.ServerPlayer;
-import net.minecraft.world.item.ItemStack;
-import net.minecraft.network.chat.Component;
-
-import java.lang.reflect.Field;
-import java.util.Map;
-import java.util.Set;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.nio.file.Path;
-import java.nio.file.Files;
-import java.io.IOException;
-
+import com.extendedae_plus.mixin.ae2.accessor.PatternEncodingTermMenuAccessor;
import com.glodblock.github.extendedae.common.tileentities.matrix.TileAssemblerMatrixBase;
-import net.minecraftforge.common.capabilities.ForgeCapabilities;
-import net.minecraftforge.fml.loading.FMLPaths;
-import net.minecraftforge.items.IItemHandler;
-
-import net.minecraft.core.registries.BuiltInRegistries;
-import net.minecraft.resources.ResourceLocation;
-import net.minecraft.world.item.crafting.Recipe;
-import net.minecraft.world.item.crafting.RecipeType;
-
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import net.minecraft.core.registries.BuiltInRegistries;
+import net.minecraft.network.chat.Component;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.crafting.Recipe;
+import net.minecraft.world.item.crafting.RecipeType;
+import net.minecraftforge.common.capabilities.ForgeCapabilities;
+import net.minecraftforge.fml.loading.FMLPaths;
+import net.minecraftforge.items.IItemHandler;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
/**
* ExtendedAE扩展样板管理终端专用的样板上传工具类
@@ -431,7 +425,7 @@ public class ExtendedAEPatternUploadUtil {
}
// 读取已编码槽位的物品
- var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu)
+ var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu)
.epp$getEncodedPatternSlot();
ItemStack stack = encodedSlot.getItem();
if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) {
@@ -465,7 +459,7 @@ public class ExtendedAEPatternUploadUtil {
player.sendSystemMessage(Component.literal("ExtendedAE Plus: 装配矩阵已存在相同样板,已跳过上传并返还空白样板"));
}
try {
- var accessor = (com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu;
+ var accessor = (PatternEncodingTermMenuAccessor) (Object) menu;
var blankSlot = accessor.epp$getBlankPatternSlot();
ItemStack blanks = AEItems.BLANK_PATTERN.stack(stack.getCount());
if (blankSlot != null && blankSlot.mayPlace(blanks)) {
@@ -982,7 +976,7 @@ public class ExtendedAEPatternUploadUtil {
return false;
}
// 读取已编码槽位的物品(通过 accessor)
- var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu)
+ var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu)
.epp$getEncodedPatternSlot();
ItemStack stack = encodedSlot.getItem();
if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) {
@@ -1054,7 +1048,7 @@ public class ExtendedAEPatternUploadUtil {
if (player == null || menu == null) {
return false;
}
- var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu)
+ var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu)
.epp$getEncodedPatternSlot();
ItemStack stack = encodedSlot.getItem();
if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) {
@@ -1192,7 +1186,7 @@ public class ExtendedAEPatternUploadUtil {
var container = list.get(index);
if (container == null) return false;
- var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu)
+ var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu)
.epp$getEncodedPatternSlot();
ItemStack stack = encodedSlot.getItem();
if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) {
diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json
index 5d011cd..7b3369a 100644
--- a/src/main/resources/extendedae_plus.mixins.json
+++ b/src/main/resources/extendedae_plus.mixins.json
@@ -4,36 +4,39 @@
"compatibilityLevel": "JAVA_17",
"minVersion": "0.8",
"client": [
- "GuiExPatternProviderMixin",
- "SlotGridLayoutMixin",
- "GuiExPatternTerminalMixin",
- "HighlightButtonMixin",
"PickFromWirelessMixin",
- "PatternEncodingTermScreenMixin",
- "ae2.PatternProviderScreenMixin",
- "jei.EncodePatternTransferHandlerMixin",
- "ae2.QuartzCuttingKnifeItemMixin",
- "accessor.AEBaseScreenAccessor",
"accessor.AbstractContainerScreenAccessor",
"accessor.ScreenAccessor",
- "accessor.MEStorageScreenAccessor"
+ "accessor.ScreenInvoker",
+ "ae2.PatternEncodingTermScreenMixin",
+ "ae2.PatternProviderScreenMixin",
+ "ae2.QuartzCuttingKnifeItemMixin",
+ "ae2.SlotGridLayoutMixin",
+ "ae2.accessor.AEBaseScreenAccessor",
+ "ae2.accessor.AEBaseScreenInvoker",
+ "ae2.accessor.MEStorageScreenAccessor",
+ "extendedae.GuiExPatternProviderMixin",
+ "extendedae.GuiExPatternTerminalMixin",
+ "extendedae.HighlightButtonMixin",
+ "jei.EncodePatternTransferHandlerMixin"
],
"mixins": [
- "ContainerExPatternProviderMixin",
- "ContainerExPatternTerminalMixin",
- "ContainerWirelessExPatternTerminalMixin",
- "ContainerUWirelessExPatternTerminalMixin",
- "TileExPatternProviderMixin",
- "PartExPatternProviderMixin",
- "PatternEncodingTermMenuMixin",
- "ContainerPatternEncodingTermMenuMixin",
- "MEStorageMenuMixin",
- "accessor.MEStorageMenuAccessor",
- "accessor.PatternEncodingTermMenuAccessor",
+ "ae2.ContainerPatternEncodingTermMenuMixin",
+ "ae2.MEStorageMenuMixin",
+ "ae2.PatternEncodingTermMenuMixin",
"ae2.PatternProviderLogicAdvancedMixin",
"ae2.PatternProviderMenuAdvancedMixin",
- "accessor.PatternProviderMenuAdvancedAccessor",
- "accessor.PatternProviderLogicAccessor"
+ "ae2.accessor.MEStorageMenuAccessor",
+ "ae2.accessor.PatternEncodingTermMenuAccessor",
+ "ae2.accessor.PatternProviderLogicAccessor",
+ "ae2.accessor.PatternProviderLogicPatternInputsAccessor",
+ "ae2.accessor.PatternProviderMenuAdvancedAccessor",
+ "ae2WTlib.ContainerUWirelessExPatternTerminalMixin",
+ "extendedae.ContainerExPatternProviderMixin",
+ "extendedae.ContainerExPatternTerminalMixin",
+ "extendedae.ContainerWirelessExPatternTerminalMixin",
+ "extendedae.PartExPatternProviderMixin",
+ "extendedae.TileExPatternProviderMixin"
],
"injectors": {
"defaultRequire": 1