feat: 调整
This commit is contained in:
parent
9d98324078
commit
ac58fc66bd
|
|
@ -1,10 +1,7 @@
|
|||
package com.extendedae_plus;
|
||||
|
||||
import appeng.init.client.InitScreens;
|
||||
import appeng.menu.locator.MenuLocators;
|
||||
import com.extendedae_plus.ae.menu.EntitySpeedTickerMenu;
|
||||
import com.extendedae_plus.ae.screen.EntitySpeedTickerScreen;
|
||||
import com.extendedae_plus.client.ClientProxy;
|
||||
import com.extendedae_plus.client.ClientRegistrar;
|
||||
import com.extendedae_plus.config.ModConfigs;
|
||||
import com.extendedae_plus.init.*;
|
||||
import com.extendedae_plus.menu.locator.CuriosItemLocator;
|
||||
|
|
@ -37,7 +34,7 @@ public class ExtendedAEPlus {
|
|||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
|
||||
// 在客户端尽早注册内置模型,保证首次资源加载前映射已建立(仿照 AE2 的 AppEngClient 构造期注册)
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClientProxy::initBuiltInModels);
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClientRegistrar::initBuiltInModels);
|
||||
|
||||
// 注册mod初始化事件
|
||||
modEventBus.addListener(this::commonSetup);
|
||||
|
|
@ -57,9 +54,6 @@ public class ExtendedAEPlus {
|
|||
|
||||
// 注册通用配置
|
||||
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, ModConfigs.COMMON_SPEC);
|
||||
|
||||
// 客户端侧延迟注册:在 FMLClientSetupEvent 阶段执行(包含 MenuScreens 绑定等)
|
||||
// 由下面的 ClientModEvents 负责在客户端总线上接收事件并委派
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -97,20 +91,19 @@ public class ExtendedAEPlus {
|
|||
public static void onClientSetup(final FMLClientSetupEvent event) {
|
||||
// 直接在此处执行客户端一次性注册(UI/屏幕/渲染器绑定)
|
||||
// 注册客户端配置界面
|
||||
ClientProxy.registerConfigScreen();
|
||||
ClientRegistrar.registerConfigScreen();
|
||||
|
||||
InitScreens.register(ModMenuTypes.ENTITY_TICKER_MENU.get(),
|
||||
EntitySpeedTickerScreen<EntitySpeedTickerMenu>::new,
|
||||
"/screens/entity_speed_ticker.json");
|
||||
// 将 InitScreens 的注册委托给 ClientRegistrar,便于集中管理客户端注册逻辑
|
||||
ClientRegistrar.registerInitScreens();
|
||||
|
||||
// 菜单 -> 屏幕 绑定
|
||||
ClientProxy.registerMenuScreens();
|
||||
ClientRegistrar.registerMenuScreens();
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onRegisterGeometryLoaders(final ModelEvent.RegisterGeometryLoaders evt) {
|
||||
try {
|
||||
ClientProxy.initBuiltInModels();
|
||||
ClientRegistrar.initBuiltInModels();
|
||||
// 注册 AE2 部件模型(例如 entity_ticker_part_item),仿照 CrazyAddons 的做法
|
||||
ModItems.registerPartModels();
|
||||
} catch (Exception ignored) {}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,6 @@ public final class ClientModelEvents {
|
|||
event.register(ExtendedAEPlus.id("block/crafting/64x_accelerator_formed_v2"));
|
||||
event.register(ExtendedAEPlus.id("block/crafting/256x_accelerator_formed_v2"));
|
||||
event.register(ExtendedAEPlus.id("block/crafting/1024x_accelerator_formed_v2"));
|
||||
ClientProxy.initBuiltInModels();
|
||||
ClientRegistrar.initBuiltInModels();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.extendedae_plus.client;
|
||||
|
||||
import appeng.client.render.crafting.CraftingCubeModel;
|
||||
import appeng.init.client.InitScreens;
|
||||
import com.extendedae_plus.ExtendedAEPlus;
|
||||
import com.extendedae_plus.ae.menu.EntitySpeedTickerMenu;
|
||||
import com.extendedae_plus.ae.screen.EntitySpeedTickerScreen;
|
||||
import com.extendedae_plus.client.render.crafting.EPlusCraftingCubeModelProvider;
|
||||
import com.extendedae_plus.client.screen.GlobalProviderModesScreen;
|
||||
import com.extendedae_plus.content.crafting.EPlusCraftingUnitType;
|
||||
|
|
@ -14,8 +17,8 @@ import net.minecraftforge.fml.ModLoadingContext;
|
|||
/**
|
||||
* 客户端模型注册,将 formed 模型注册为内置模型。
|
||||
*/
|
||||
public final class ClientProxy {
|
||||
private ClientProxy() {}
|
||||
public final class ClientRegistrar {
|
||||
private ClientRegistrar() {}
|
||||
|
||||
private static boolean REGISTERED = false;
|
||||
|
||||
|
|
@ -54,6 +57,15 @@ public final class ClientProxy {
|
|||
MenuScreens.register(ModMenuTypes.NETWORK_PATTERN_CONTROLLER.get(), GlobalProviderModesScreen::new);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册由 AE2 InitScreens 所需的屏幕资源映射(用于内置 JSON 屏幕注册)
|
||||
*/
|
||||
public static void registerInitScreens() {
|
||||
InitScreens.register(ModMenuTypes.ENTITY_TICKER_MENU.get(),
|
||||
EntitySpeedTickerScreen<EntitySpeedTickerMenu>::new,
|
||||
"/screens/entity_speed_ticker.json");
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅客户端:在 Mods 菜单注册配置界面入口。
|
||||
* 将对 Screen 的引用限制在客户端侧,避免服务端类加载。
|
||||
Loading…
Reference in New Issue
Block a user