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",