自然插件(Natura Plugin)
基本信息
| 属性 | 值 |
|---|---|
| 插件 uid | Natura(NaturaPlugin.java:22-25,注意首字母大写) |
| 依赖 modid | Natura(@WDMlaPlugin(dependencies = "Natura"),NaturaPlugin.java:24) |
| 配置分类 | plugins_autogen.natura |
| 注册调用 | 服务端 1 次 / 客户端 8 次 |
| 生效侧 | 两侧 |
| 显示名 | 英文 “Natura”,中文「自然」(en_US.lang:274、zh_CN.lang:274) |
功能
为 Natura 提供三类信息:作物与浆果丛的生长进度、树叶的物种/成熟度、下界苔石熔炉的内部状态。
作物侧同时注册了两个 provider 到同一个 CropBlock:NaturaCropHeaderProvider(标题行,如「作物 成熟」)与 NaturaGrowthRateProvider(进度条)。二者由 provider 优先级决定先后。
树叶侧把 NaturaLeavesProvider 注册到 4 个树叶类,覆盖 Natura 自己的两种树叶变体与两个跨模组兼容类。
注册内容
服务端(NaturaPlugin.register):
| 方法 | 目标类 | provider |
|---|---|---|
registerBlockDataProvider |
NetherrackFurnaceBlock |
FurnaceProvider.INSTANCE |
客户端(NaturaPlugin.registerClient):
| 方法 | 目标类 | provider |
|---|---|---|
registerBlockComponent |
CropBlock |
NaturaCropHeaderProvider.INSTANCE |
registerBlockComponent |
CropBlock |
NaturaGrowthRateProvider.INSTANCE |
registerBlockComponent |
NLeaves |
NaturaLeavesProvider.INSTANCE |
registerBlockComponent |
NLeavesNocolor |
NaturaLeavesProvider.INSTANCE |
registerBlockComponent |
NLeavesDark |
NaturaLeavesProvider.INSTANCE |
registerBlockComponent |
OverworldLeaves |
NaturaLeavesProvider.INSTANCE |
registerBlockComponent |
NetherrackFurnaceBlock |
FurnaceProvider.INSTANCE |
registerBlockComponent |
BerryBush |
BerryBushProvider.INSTANCE |
NetherrackFurnaceBlock 是唯一两侧都注册的类:服务端取熔炉数据,客户端绘制。浆果丛 BerryBush 只有客户端注册。
数值
本插件不新增任何配置字段。生长进度行复用 通用插件 的 ProgressProvider 体系;浆果丛与作物的成熟度提示受 harvestability 组的 condition 四个开关影响(见 采集能力插件)。
分类语言键由 registerClient 末段写入 provider.wdmla.natura.category。
交互
PluginScanner 用 Loader.isModLoaded("Natura") 门控。仓库坐标为 com.github.GTNewHorizons:Natura:2.8.18:dev(dependencies.gradle,compileOnly),与 modid 同为 Natura(首字母大写)。
uid 与依赖 modid 相同是本插件的特殊之处:@WDMlaPlugin(uid = "Natura", dependencies = "Natura") 两者都是 Natura。而多数插件的 uid 是小写(WDMla 内部命名空间风格),只有本插件与 Storage Drawers 沿用了 mod 的原始大小写。
相关条目
- 通用插件 - 生长进度条的共用实现
- Minecraft 插件 - 原版
BlockCrops/BlockCocaa的对应注册 - 自动生成配置 - 逐 provider 的启用与优先级