AngelicaMod(angelica 主入口)

基本信息

属性 值
modid angelica
显示名 Angelica
版本 Tags.VERSION(构建期注入,源码树内无 Tags.java)
主类 com.gtnewhorizons.angelica.AngelicaMod
@Mod 注解位置 src/main/java/com/gtnewhorizons/angelica/AngelicaMod.java:15
MOD_ID 常量定义 src/main/java/com/gtnewhorizons/angelica/AngelicaMod.java:31
接受的 Minecraft 版本 [1.7.10](:26)
acceptableRemoteVersions *(:27)
guiFactory com.gtnewhorizons.angelica.config.AngelicaGuiConfigFactory(:28)
适用范围 Minecraft 1.7.10 / Forge 10.13.4.1614

依赖声明(AngelicaMod.java:19-25)

dependencies 使用 Java 文本块(text block),逐条为:

关系 目标 版本约束
required-after gtnhlib @[0.11.19,)
before lwjgl3ify @[1.5.3,)
after hodgepodge @[2.4.4,)
after CodeChickenCore @[1.2.0,)
after archaicfix @[0.7.0,)

注意 lwjgl3ify 用的是 before 而非 after:Angelica 要求自己必须先于 lwjgl3ify 加载。

静态常量

常量 值 位置
MOD_ID "angelica" :31
LOGGER LogManager.getLogger("Angelica") :32
lwjglDebug SystemProperties.LWJGL_DEBUG :33
KEY_CATEGORY "key.categories.angelica" :34

SystemProperties 不在本模块内 —— 它由 glsm 子项目提供,包名同为 com.gtnewhorizons.angelica.config。

生命周期

主类本身只做三件事,全部转发给 proxy:

事件 行 行为
preInit :41-44 proxy.preInit(event)
init :46-49 proxy.init(event)
postInit :51-54 proxy.postInit(event)

主类不注册任何 Block / Item / Entity / TileEntity / Enchantment / Dimension / Biome / Potion / Achievement / Structure。

唯一注册物:test_block

全 mod 唯一的方块注册发生在 Proxy 中,而非主类:

// CommonProxy.java:12-16
public void preInit(FMLPreInitializationEvent event) {
    if (AngelicaConfig.enableTestBlocks) {
        GameRegistry.registerBlock(new BlockTest(), "test_block");
    }
}

该开关声明为 @Config.DefaultBoolean(false) 且标注 @Config.Ignore()(AngelicaConfig.java:42-44),运行时值来自 SystemProperties.ENABLE_TEST_BLOCKS,即系统属性 -Dangelica.debug.testBlocks(AngelicaClientTweaker.java:83)。因此默认发布版不注册任何方块;只有开发环境(build.gradle.kts:16 为 runClient 注入了 -Dangelica.debug.testBlocks=true)才会注册。

相关条目