通用插件(Universal Plugin)
基本信息
| 属性 | 值 |
|---|---|
| 插件 uid | universal(UniversalPlugin.java:18,常量 Identifiers.NAMESPACE_UNIVERSAL,Identifiers.java:61) |
| 依赖 mod | 无 |
| 配置分类 | plugins_autogen.universal(UniversalPlugin.registerClient 末段 setLanguageKey) |
| 注册调用 | 服务端 6 次 / 客户端 8 次 |
| 生效侧 | 两侧 |
功能
universal 提供三类通用扩展视图,与具体方块/实体无关,靠接口探测自动生效:
- 物品存储(
ItemStorageProvider):面向IInventory与马匹背包,展示容器内容 - 流体存储(
FluidStorageProvider):面向IFluidHandler,读取getTankInfo(ForgeDirection.UNKNOWN) - 进度条(
ProgressProvider):统一的进度显示抽象
流体的服务端包装在 CommonProxy.wrapFluidStorage:仅当 accessor 是 BlockAccessor 且其 TileEntity 实现 IFluidHandler 时才返回数据(CommonProxy.java:144-153);CommonProxy.fromFluidStorage 负责把 FluidTankInfo[] 聚合成 ViewGroup,并把超出 normalAmount 的部分折叠成一个 +N 记号(CommonProxy.java:155-179)。物品容器的收集同样带分派:EntityHorse 走 horse.horseChest,其余 IInventory 走通用迭代器(CommonProxy.java:123-142)。
注册内容
服务端(UniversalPlugin.register):
| 方法 | 目标类 | provider |
|---|---|---|
registerBlockDataProvider |
Block |
ItemStorageProvider.getBlock() |
registerEntityDataProvider |
Entity |
ItemStorageProvider.getEntity() |
registerBlockDataProvider |
Block |
FluidStorageProvider.getBlock() |
registerEntityDataProvider |
Entity |
FluidStorageProvider.getEntity() |
registerBlockDataProvider |
Block |
ProgressProvider.getBlock() |
registerEntityDataProvider |
Entity |
ProgressProvider.getEntity() |
客户端(UniversalPlugin.registerClient):同样 6 条 component 注册,外加
| 方法 | provider |
|---|---|
registerItemStorageClient |
ItemStorageProvider.Extension.INSTANCE |
registerFluidStorageClient |
FluidStorageProvider.Extension.INSTANCE |
三个 provider 都用 getBlock() / getEntity() 工厂方法而非常量,因为同一 provider 类需按方块侧/实体侧返回不同实现。
数值
| 配置项 | 默认值 | 作用 |
|---|---|---|
universal.itemstorage.normalamount |
9 |
普通模式最多显示的物品数 |
universal.itemstorage.detailedamount |
54 |
按住「显示详细信息」键时最多显示的物品数 |
universal.itemstorage.itemsperline |
9 |
每行物品数 |
universal.itemstorage.shownameamount |
4 |
显示物品名而非图标的物品数 |
universal.fluidstorage.normalamount |
4 |
普通模式最多聚合的流体种数(CommonProxy.java:163 据此 break) |
universal.fluidstorage.detailed |
false |
详细模式开关 |
universal.fluidstorage.mode |
GAUGE |
GAUGE / ICON_TEXT / TEXT |
universal.energystorage.* |
— | 空分类,仅 // reserved(PluginsConfig.java:154-157) |
进度条颜色取自 general.progresscolor(ProgressStyle.java:24-25、FluidStorageProvider.java:126,130)。
相关条目
- 插件配置 -
plugins.universal组的全部字段 - 采集能力插件 - 与进度条共用
progresscolor配色 - Minecraft 插件 - 复用
ItemStorageProvider.Extension挂到原版容器