mixin修改装配矩阵中客户端样板槽同步字段为server.size,避免写死的32造成同步失败而崩溃

This commit is contained in:
GaLicn 2025-12-01 22:32:41 +08:00
parent 7372389e95
commit 55993ef0f0
3 changed files with 46 additions and 0 deletions

View File

@ -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<EntitySpeedTickerMenu>::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) {
}
}
/**

View File

@ -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 = "<init>", at = @At("TAIL"))
private void extendedae_plus$resizeClientInventory(TileAssemblerMatrixPattern host, CallbackInfo ci) {
this.client = new AppEngInternalInventory(this.server.size());
}
}

View File

@ -87,6 +87,7 @@
"appflux.AppfluxPatternProviderLogicMixin",
"extendedae.common.PartExPatternProviderMixin",
"extendedae.common.TileExPatternProviderMixin",
"extendedae.container.ContainerAssemblerMatrixPatternSlotTrackerMixin",
"extendedae.container.ContainerExPatternProviderMixin",
"extendedae.container.ContainerExPatternTerminalMixin",
"extendedae.container.ContainerWirelessExPatternTerminalMixin",