This commit is contained in:
GaLicn 2025-09-06 17:50:37 +08:00
parent 27f7ed0122
commit 0d5ce9261e
4 changed files with 16 additions and 18 deletions

View File

@ -163,7 +163,7 @@ dependencies {
compileOnly "curse.maven:mega-cells-622112:6005043" compileOnly "curse.maven:mega-cells-622112:6005043"
compileOnly "curse.maven:jade-324717:5427817" compileOnly "curse.maven:jade-324717:5427817"
compileOnly "me.shedaniel:RoughlyEnoughItems-neoforge:16.0.729" 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 "curse.maven:applied-mekanistics-574300:5978711"
compileOnly "dev.latvian.mods:kubejs-neoforge:2101.7.1-build.188" compileOnly "dev.latvian.mods:kubejs-neoforge:2101.7.1-build.188"
compileOnly "dev.latvian.mods:rhino:2101.2.5-build.54" compileOnly "dev.latvian.mods:rhino:2101.2.5-build.54"
@ -178,7 +178,7 @@ dependencies {
runtimeOnly "de.mari_023:ae2wtlib:19.2.1" runtimeOnly "de.mari_023:ae2wtlib:19.2.1"
runtimeOnly "curse.maven:jade-324717:5427817" runtimeOnly "curse.maven:jade-324717:5427817"
runtimeOnly "curse.maven:mega-cells-622112:6005043" 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" runtimeOnly "curse.maven:ex-pattern-provider-892005:6863556"
// setup Xei (EMI/REI/JEI) using project property 'use_Xei' // setup Xei (EMI/REI/JEI) using project property 'use_Xei'

View File

@ -14,12 +14,9 @@ public interface MEStorageMenuAccessor {
@Nullable @Nullable
MEStorage getStorage(); MEStorage getStorage();
@Accessor("powerSource") @Accessor("energySource")
@Nullable @Nullable
IEnergySource getPowerSource(); IEnergySource getEnergySource();
@Accessor("hasPower")
boolean getHasPower();
// Access client-side config manager mirror used for syncing settings // Access client-side config manager mirror used for syncing settings
@Accessor("clientCM") @Accessor("clientCM")

View File

@ -35,7 +35,6 @@ public abstract class PatternEncodingTermMenuMixin {
private void eap$tryFill(IPatternTerminalMenuHost host, Inventory ip) { private void eap$tryFill(IPatternTerminalMenuHost host, Inventory ip) {
try { try {
var self = (PatternEncodingTermMenu) (Object) this; var self = (PatternEncodingTermMenu) (Object) this;
var player = ip.player;
// 仅在服务器端执行 // 仅在服务器端执行
if (ip.player.level().isClientSide()) { if (ip.player.level().isClientSide()) {
return; return;
@ -43,9 +42,8 @@ public abstract class PatternEncodingTermMenuMixin {
// 必须可与网络交互 // 必须可与网络交互
var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self); var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self);
MEStorage storage = acc.getStorage(); MEStorage storage = acc.getStorage();
IEnergySource power = acc.getPowerSource(); IEnergySource power = acc.getEnergySource();
boolean hasPower = acc.getHasPower(); boolean canInteract = storage != null && power != null && ((MEStorageMenu) self).getLinkStatus().connected();
boolean canInteract = storage != null && power != null && hasPower; // 等价于 canInteractWithGrid()
if (!canInteract) { if (!canInteract) {
return; return;
} }
@ -108,15 +106,14 @@ public abstract class PatternEncodingTermMenuMixin {
} }
// 仅在服务器端执行 // 仅在服务器端执行
var self = (PatternEncodingTermMenu) (Object) this; var self = (PatternEncodingTermMenu) (Object) this;
var player = self.getPlayerInventory().player;
var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self); var acc = (MEStorageMenuAccessor) (Object) ((MEStorageMenu) self);
MEStorage storage = acc.getStorage(); MEStorage storage = acc.getStorage();
IEnergySource power = acc.getPowerSource(); IEnergySource power = acc.getEnergySource();
boolean hasPower = acc.getHasPower(); var player = self.getPlayerInventory().player;
if (player.level().isClientSide()) { if (player.level().isClientSide()) {
return; return;
} }
boolean canInteract = storage != null && power != null && hasPower; boolean canInteract = storage != null && power != null && ((MEStorageMenu) self).getLinkStatus().connected();
if (!canInteract) { if (!canInteract) {
return; return;
} }

View File

@ -12,17 +12,21 @@
"ae2.helpers.PatternProviderLogicAdvancedMixin", "ae2.helpers.PatternProviderLogicAdvancedMixin",
"ae2.helpers.PatternProviderLogicDoublingMixin", "ae2.helpers.PatternProviderLogicDoublingMixin",
"ae2.AEProcessingPatternMixin", "ae2.AEProcessingPatternMixin",
"ae2.autopattern.CraftingTreeNodeAccessor", "ae2.autopattern.CraftingTreeNodeAccessor",
"ae2.autopattern.CraftingTreeProcessMixin", "ae2.autopattern.CraftingTreeProcessMixin",
"extendedae.common.PartExPatternProviderMixin", "extendedae.common.PartExPatternProviderMixin",
"extendedae.common.TileExPatternProviderMixin", "extendedae.common.TileExPatternProviderMixin",
"extendedae.container.ContainerExPatternProviderMixin", "extendedae.container.ContainerExPatternProviderMixin",
"extendedae.container.ContainerExPatternTerminalMixin", "extendedae.container.ContainerExPatternTerminalMixin",
"extendedae.container.ContainerWirelessExPatternTerminalMixin" "extendedae.container.ContainerWirelessExPatternTerminalMixin",
"ae2.menu.PatternEncodingTermMenuMixin",
"ae2.accessor.MEStorageMenuAccessor"
], ],
"client": [ "client": [
"ae2.client.gui.PatternEncodingTermScreenMixin",
"ae2.accessor.AEBaseScreenAccessor",
"accessor.AbstractContainerScreenAccessor",
"accessor.ScreenAccessor",
"extendedae.accessor.GuiExPatternTerminalAccessor" "extendedae.accessor.GuiExPatternTerminalAccessor"
], ],
"injectors": { "injectors": {