CropLoadCore

[!INFO] Git Commit: d3dbd5f | Updated: 2026-10-01

CropLoadCore (modid croploadcore) 是 LOKKO12(bartimaeusnek)为其作物模组系列 (BerriesPP)编写的 1.7.10 核心库 mod,面向 Minecraft 1.7.10 / Forge 10.13.4.1614。 本 mod 不向游戏内添加任何内容——0 方块、0 物品、0 实体、0 指令、0 配置文件。

它到底做什么

名字里的 “Crop Load” 不是"作物加载"。这个 mod 不加载、不生成、不注册任何作物; 它做的是两件基础设施工作:

  1. 矿辞典桥接 — 把 BoP、Natura、Thaumcraft、TConstruct、Witchery、Thaumic Bases 和原版的 植物方块登记到 crop* 前缀的矿辞典名下(共 70 次注册、34 个名字),并把 5 种浆果 聚合进 listAllberry。下游作物 mod 随后可用 OreDict.BSget(name, cropCard) 把这些植物 注册为 IC2 作物的基础种子,从而让 IC2 的作物系统"认识"其它 mod 的植物。
  2. 改写 IC2 作物行为 — 通过 LateMixin 覆写 ic2.core.crop.BlockCrop(让作物可以种在 任何声明能支撑植物的土壤上,而不仅是 farmland)与 ic2.core.item.tool.ItemWeedingTrowel (让作物锄支持自定义杂草)。

名称澄清

CropLoadCore 容易被误读成"作物加载核心"。更准确的理解是**“作物 mod 的公共底座”**: 一个被其它 mod 依赖的 core library。证据:仓库中除本 mod 外只有 20 个源文件,全部是 工具类、注册类与 mixin;mcmod.info 描述为 Core Mod for LOKKO12's Mods.; ASM 容器的 parent 与 dependants 字段都指向 berriespp(Berries++)。

@Mod 声明了 14 条软依赖(全部 after:,无一条 required-after:), 因此本 mod 可以在只装原版 + IC2 的环境中加载,其功能会自动降级。

实际生效的功能链

init 阶段
  └─ OreDict.register()                    → 7 个 Register 类 + 浆果聚合 + 原版
       └─ 下游 mod 调 OreDict.BSget()      → IC2 Crops.registerBaseSeed()

preInit 阶段
  └─ ModsLoaded.check_init()               → 仅打印日志,不影响功能

LateMixin(IC2 存在时)
  ├─ MixinBlockCrop                        → 覆写 canPlaceBlockAt / onNeighborBlockChange
  └─ MixinItemWeedingTrowel                → 覆写 onItemUseFirst

三个易混淆的标识符

字符串 类型 出现位置
croploadcore 真正的 modid CropLoadCore.java:32、gradle.properties
CropLoadCore mod 名称;同时被误用作 @Instance("CropLoadCore") 的取值 CropLoadCore.java:33、:37
CropLoadCoreASM core mod 注入的 DummyModContainer 元信息 modid(驼峰大写) CropLoadCoreASM.java:22

设定列表

  • mod 元信息与打包数据 - @Mod 注解、modid 实读、14 条软依赖、@Instance 取值不一致、依赖表
  • core mod 与 ASM 容器 - IFMLLoadingPlugin 四个钩子全返回 null 的空壳 core mod 与 CropLoadCoreASM 虚拟容器
  • 矿辞典注册 - 7 个 Register 类的 70 次注册、34 个矿辞典名、OreDict 三个工具方法与 BSget 缺陷
  • IC2 作物 Mixin - LateMixin 装载机制、BlockCrop 覆写、ItemWeedingTrowel 覆写
  • 库工具类 - MyRandom、Operators.csig、BlockGetterTC、config、ModsLoaded 五个对外工具类