IC2 作物集成(IC2Crops)

PluginIC2Crops 把 IndustrialCraft 2 的作物(Crop)方块数据重新暴露给 WAILA:作物名称与等级、生长阶段与百分比、能否继续生长 / 能否收获,以及扫仪(Scan Level)解锁后的作物属性、营养存量与环境读数。

基本信息

属性 值
插件类 tterrag.wailaplugins.plugins.PluginIC2Crops
目标 mod IndustrialCraft 2(modid IC2)
@Plugin 注解 name = "IC2Crops", deps = "IC2",order 未设置(默认 0)
注册类型 Body + NBT provider,目标类 ic2.api.crops.ICropTile
挂钩的 API ic2.api.crops.ICropTile、ic2.api.crops.CropCard、ic2.core.crop.TileEntityCrop
默认启用 是([plugins] 段与 WAILA [modules] 段默认均为 true)
生效前提 进程中存在 modid IC2,否则 PluginRegistrar 直接跳过本插件

WAILA 元数据键(NBT)

getNBTData 在服务端把以下键写入 WAILA 传给客户端的数据包:

NBT 键 类型 来源 含义
canGrow boolean crop.canGrow(tCrop) 当前能否继续生长
canHarvest boolean crop.canBeHarvested(tCrop) 当前能否收获
optimalHarvest int crop.getOptimalHavestSize(tCrop) 最佳收获尺寸(-1 表示无作物)
scanLevel byte tCrop.getScanLevel() 扫仪分析等级,决定显示多少信息
growth byte tCrop.getGrowth() 作物生长属性
gain byte tCrop.getGain() 作物收益属性
resistance byte tCrop.getResistance() 作物抗性属性
fertilizer int tCrop.getNutrientStorage() 肥料存量
water int tCrop.getHydrationStorage() 水分存量
weedex int tCrop.getWeedExStorage() 除草剂存量
nutrients int tCrop.getNutrients() 当前环境养分
humidity int tCrop.getHumidity() 当前环境湿度
airQuality int tCrop.getAirQuality() 当前环境空气质量
growthPoints int TileEntityCrop.growthPoints 生长点数;非 TileEntityCrop 时为 -1

此外末尾无条件调用 tile.writeToNBT(tag),作物方块自身的 NBT 会一并进入 WAILA 数据包(原文注释即如此,非本 mod 加工)。

显示内容

配置开关 显示行 附加条件
cropName <作物名> (Tier N) Can grow: Yes/No scanLevel > 0;满尺寸时 Can grow 换成绿色 Max Size;cropTier > 0 时才追加 Can Harvest: Yes/No,达到最佳尺寸则显示绿色 Optimal Harvest
cropName Stage -- Size: <当前>/<最大> scanLevel > 0
cropName 同上行的 Growth: N% 仅在 当前尺寸 < 最大尺寸 时追加;百分比 = growthPoints / crop.growthDuration(tCrop) * 100(取整)
cropName 红色 WEED - [420 blaze it] scanLevel == 0 且 cropTier == 0,即杂草作物
cropStats Stats -- Growth: N Gain: N Resistance: N 需 scanLevel >= 4;growth >= 24 时数值以红色显示(源码按 >= 24 着色)
plantInfo Plant -- Fertilizer: N Water: N Weed-Ex: N 需 scanLevel >= 4
envInfo Environ -- Nutrients: N Humidity: N Air-Quality: N 需 scanLevel >= 4

颜色使用 WAILA 的 SpecialChars 常量 GREEN / RED / RESET;Yes / No 取自 WAILA 自带语言键。

分级可见性

本插件的显示量由作物方块的 scanLevel 门控,而非玩家手持物品:

  • scanLevel == 0:杂草显示红色警告,正常作物不显示任何行。
  • scanLevel 1~3:显示作物名、等级、生长状态、尺寸与百分比。
  • scanLevel >= 4:追加作物属性、肥料/水分/除草剂存量与环境读数。

因此玩家需先用 IC2 扫仪扫描作物方块,WAILA 才会逐步放出数据。

配置开关

4 个功能开关全部通过 PluginBase.addConfig(key) 注册(重载版本,默认值均为 true),在 WAILA 侧以 IC2Crops:<key> 为键、分组在 WAILA 配置的 IC2Crops 模块下:

开关 语言键 含义
cropName wp.config.IC2Crops.cropName 显示作物名称
cropStats wp.config.IC2Crops.cropStats 显示作物属性
plantInfo wp.config.IC2Crops.plantInfo 显示作物信息(肥料/水/除草剂)
envInfo wp.config.IC2Crops.envInfo 显示环境信息(养分/湿度/空气质量)

本插件另有 1 个插件级总开关 IC2Crops(enabled() 读取),关闭后上述 4 行与所有 NBT 采集一并停用。

相关条目