From 55993ef0f06bfaef90586b6014c064c6124ef602 Mon Sep 17 00:00:00 2001 From: GaLicn <133291877+GaLicn@users.noreply.github.com> Date: Mon, 1 Dec 2025 22:32:41 +0800 Subject: [PATCH] =?UTF-8?q?mixin=E4=BF=AE=E6=94=B9=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E7=9F=A9=E9=98=B5=E4=B8=AD=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=A0=B7?= =?UTF-8?q?=E6=9D=BF=E6=A7=BD=E5=90=8C=E6=AD=A5=E5=AD=97=E6=AE=B5=E4=B8=BA?= =?UTF-8?q?server.size,=E9=81=BF=E5=85=8D=E5=86=99=E6=AD=BB=E7=9A=8432?= =?UTF-8?q?=E9=80=A0=E6=88=90=E5=90=8C=E6=AD=A5=E5=A4=B1=E8=B4=A5=E8=80=8C?= =?UTF-8?q?=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/ClientRegistrar.java | 13 ++++++++ ...ssemblerMatrixPatternSlotTrackerMixin.java | 32 +++++++++++++++++++ .../resources/extendedae_plus.mixins.json | 1 + 3 files changed, 46 insertions(+) create mode 100644 src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerAssemblerMatrixPatternSlotTrackerMixin.java diff --git a/src/main/java/com/extendedae_plus/client/ClientRegistrar.java b/src/main/java/com/extendedae_plus/client/ClientRegistrar.java index 6f252c6..bf0d656 100644 --- a/src/main/java/com/extendedae_plus/client/ClientRegistrar.java +++ b/src/main/java/com/extendedae_plus/client/ClientRegistrar.java @@ -14,6 +14,7 @@ import com.extendedae_plus.init.ModMenuTypes; import com.extendedae_plus.items.materials.EntitySpeedCardItem; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.item.ItemProperties; +import net.minecraftforge.fml.ModList; /** * 客户端模型注册,将 formed 模型注册为内置模型。 @@ -68,6 +69,18 @@ public final class ClientRegistrar { InitScreens.register(ModMenuTypes.ENTITY_TICKER_MENU.get(), EntitySpeedTickerScreen::new, "/screens/entity_speed_ticker.json"); + registerExtendedAEScreens(); + } + + private static void registerExtendedAEScreens() { + try { + InitScreens.register( + com.glodblock.github.extendedae.container.ContainerExPatternProvider.TYPE, + com.glodblock.github.extendedae.client.gui.GuiExPatternProvider::new, + "/screens/ex_pattern_provider.json" + ); + } catch (Throwable ignored) { + } } /** diff --git a/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerAssemblerMatrixPatternSlotTrackerMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerAssemblerMatrixPatternSlotTrackerMixin.java new file mode 100644 index 0000000..f3127d4 --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/container/ContainerAssemblerMatrixPatternSlotTrackerMixin.java @@ -0,0 +1,32 @@ +package com.extendedae_plus.mixin.extendedae.container; + +import appeng.api.inventories.InternalInventory; +import appeng.util.inv.AppEngInternalInventory; +import com.glodblock.github.extendedae.common.tileentities.matrix.TileAssemblerMatrixPattern; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +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 com.glodblock.github.extendedae.container.ContainerAssemblerMatrix; + +@Mixin(targets = "com.glodblock.github.extendedae.container.ContainerAssemblerMatrix$PatternSlotTracker") +public abstract class ContainerAssemblerMatrixPatternSlotTrackerMixin { + + @Shadow + @Final + private InternalInventory server; + + @Shadow + @Final + @Mutable + private InternalInventory client; + + @Inject(method = "", at = @At("TAIL")) + private void extendedae_plus$resizeClientInventory(TileAssemblerMatrixPattern host, CallbackInfo ci) { + this.client = new AppEngInternalInventory(this.server.size()); + } +} + diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json index 7add0ae..4a9e4c0 100644 --- a/src/main/resources/extendedae_plus.mixins.json +++ b/src/main/resources/extendedae_plus.mixins.json @@ -87,6 +87,7 @@ "appflux.AppfluxPatternProviderLogicMixin", "extendedae.common.PartExPatternProviderMixin", "extendedae.common.TileExPatternProviderMixin", + "extendedae.container.ContainerAssemblerMatrixPatternSlotTrackerMixin", "extendedae.container.ContainerExPatternProviderMixin", "extendedae.container.ContainerExPatternTerminalMixin", "extendedae.container.ContainerWirelessExPatternTerminalMixin",