diff --git a/build.gradle b/build.gradle index 29ff48c..4c9444c 100644 --- a/build.gradle +++ b/build.gradle @@ -163,7 +163,7 @@ dependencies { compileOnly "curse.maven:mega-cells-622112:6005043" compileOnly "curse.maven:jade-324717:5427817" compileOnly "me.shedaniel:RoughlyEnoughItems-neoforge:16.0.729" - compileOnly "mekanism:Mekanism:1.21.1-10.7.0.55" + // compileOnly "mekanism:Mekanism:1.21.1-10.7.0.55" compileOnly "curse.maven:applied-mekanistics-574300:5978711" compileOnly "dev.latvian.mods:kubejs-neoforge:2101.7.1-build.188" compileOnly "dev.latvian.mods:rhino:2101.2.5-build.54" @@ -178,7 +178,7 @@ dependencies { runtimeOnly "de.mari_023:ae2wtlib:19.2.1" runtimeOnly "curse.maven:jade-324717:5427817" runtimeOnly "curse.maven:mega-cells-622112:6005043" - runtimeOnly "mekanism:Mekanism:1.21.1-10.7.0.55" + // runtimeOnly "mekanism:Mekanism:1.21.1-10.7.0.55" runtimeOnly "curse.maven:ex-pattern-provider-892005:6863556" // setup Xei (EMI/REI/JEI) using project property 'use_Xei' diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java index a3662ac..abdfd28 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java @@ -14,12 +14,9 @@ public interface MEStorageMenuAccessor { @Nullable MEStorage getStorage(); - @Accessor("powerSource") + @Accessor("energySource") @Nullable - IEnergySource getPowerSource(); - - @Accessor("hasPower") - boolean getHasPower(); + IEnergySource getEnergySource(); // Access client-side config manager mirror used for syncing settings @Accessor("clientCM") diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/menu/PatternEncodingTermMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/menu/PatternEncodingTermMenuMixin.java index d36c85c..87b6bd0 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/menu/PatternEncodingTermMenuMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/menu/PatternEncodingTermMenuMixin.java @@ -35,7 +35,6 @@ public abstract class PatternEncodingTermMenuMixin { private void eap$tryFill(IPatternTerminalMenuHost host, Inventory ip) { try { var self = (PatternEncodingTermMenu) (Object) this; - var player = ip.player; // 仅在服务器端执行 if (ip.player.level().isClientSide()) { return; @@ -43,9 +42,8 @@ public abstract class PatternEncodingTermMenuMixin { // 必须可与网络交互 var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self); MEStorage storage = acc.getStorage(); - IEnergySource power = acc.getPowerSource(); - boolean hasPower = acc.getHasPower(); - boolean canInteract = storage != null && power != null && hasPower; // 等价于 canInteractWithGrid() + IEnergySource power = acc.getEnergySource(); + boolean canInteract = storage != null && power != null && ((MEStorageMenu) self).getLinkStatus().connected(); if (!canInteract) { return; } @@ -108,15 +106,14 @@ public abstract class PatternEncodingTermMenuMixin { } // 仅在服务器端执行 var self = (PatternEncodingTermMenu) (Object) this; - var player = self.getPlayerInventory().player; var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self); MEStorage storage = acc.getStorage(); - IEnergySource power = acc.getPowerSource(); - boolean hasPower = acc.getHasPower(); + IEnergySource power = acc.getEnergySource(); + var player = self.getPlayerInventory().player; if (player.level().isClientSide()) { return; } - boolean canInteract = storage != null && power != null && hasPower; + boolean canInteract = storage != null && power != null && ((MEStorageMenu) self).getLinkStatus().connected(); if (!canInteract) { return; } diff --git a/src/main/resources/extendedaeplus.mixins.json b/src/main/resources/extendedaeplus.mixins.json index d1d6275..5dbecfa 100644 --- a/src/main/resources/extendedaeplus.mixins.json +++ b/src/main/resources/extendedaeplus.mixins.json @@ -12,17 +12,21 @@ "ae2.helpers.PatternProviderLogicAdvancedMixin", "ae2.helpers.PatternProviderLogicDoublingMixin", "ae2.AEProcessingPatternMixin", - "ae2.autopattern.CraftingTreeNodeAccessor", "ae2.autopattern.CraftingTreeProcessMixin", "extendedae.common.PartExPatternProviderMixin", "extendedae.common.TileExPatternProviderMixin", "extendedae.container.ContainerExPatternProviderMixin", "extendedae.container.ContainerExPatternTerminalMixin", - "extendedae.container.ContainerWirelessExPatternTerminalMixin" + "extendedae.container.ContainerWirelessExPatternTerminalMixin", + "ae2.menu.PatternEncodingTermMenuMixin", + "ae2.accessor.MEStorageMenuAccessor" ], "client": [ - + "ae2.client.gui.PatternEncodingTermScreenMixin", + "ae2.accessor.AEBaseScreenAccessor", + "accessor.AbstractContainerScreenAccessor", + "accessor.ScreenAccessor", "extendedae.accessor.GuiExPatternTerminalAccessor" ], "injectors": {