Section
整合包作者
共 6 个一级导航项自定义作物
Croparia IF 支持为整合包额外定义两类作物:
果实作物:成熟后产出果实,对应Crop巨果作物:像南瓜和甜瓜那样生成果实方块,对应Melon
这两类自定义内容都会从配置的自定义目录中读取:
- 果实作物:
<filePath>/crops - 巨果作物:
<filePath>/melons
这里的 filePath 就是配置与指令里配置的自定义文件根目录。每个 JSON 文件都会被当作一个作物定义读取。
作物只会在游戏启动时完成注册,所以你对作物定义的修改需要重启游戏才能生效。
如果你只是想快速起步,最方便的方式是先用指令导出一个模板文件;如果你要长期维护整合包,还是建议直接手写 JSON。
用指令快速创建
指令创建适合快速生成一个可编辑的初始 JSON,它的本质上是把定义文件写到磁盘,不会自动把新作物立即热加载到当前实例中。
果实作物
命令格式:
/croparia|cropariaServer crop create <color> [type] [id] [force]id不写时,默认使用主手物品的路径,并强制放在非minecraft命名空间下type不写时,默认是crop- 如果同名定义已存在,默认不会覆盖,只有加上
force才会覆写
创建时会读取两个上下文:
- 主手物品:作为
material - 副手 Croparia:其阶级作为
tier
巨果作物
命令格式:
/croparia|cropariaServer melon create <color> [id] [force]它与果实作物的差别是:
- 不需要
type - 主手物品必须是方块物品,因为它会被解析成巨果作物的方块材料
手动编写文件
如果你需要更细致的调控,那么就需要手动编写作物定义文件。
果实作物文件
完整的示例:
{
"id": "kubejs:tin",
"material": {
"name": "#c:ingots/tin",
"count": 2
},
"color": "#E3E3E0",
"tier": 2,
"type": "crop",
"translations": {
"en_us": "Tin",
"zh_cn": "锡"
},
"dependencies": {
"techreborn": "item.techreborn.tin_ingot",
"modern_industrialization": "item.modern_industrialization.tin_ingot"
}
}完整字段
id:string- 作物的资源位置,例如
kubejs:tin - 会决定这株作物派生出来的种子、果实和作物方块 ID
- 作物的资源位置,例如
material:ItemMaterial- 这株作物对应的材料
- 可写物品 ID,也可写标签,标签写法带
# - 数量可选,默认为 2
color:Color- 作物主色
- 支持
#RRGGBB、0xRRGGBB和十进制整数
tier:number- Croparia 等阶
type:string- 可选,默认是
crop - 主要用于决定果实贴图模板类型
- 内置常用值包括
animal、crop、food、monster、nature
- 可选,默认是
translations:Map<String, string>- 可选,多语言名称
- 至少建议补
zh_cn
dependencies:string | Map<String, string>- 可选,依赖与翻译键映射
- 用来表达“只有某个模组存在时,这个作物才应该加载,并使用哪个翻译键”
material 的对象写法 ItemMaterial
material 除了直接写字符串,还可以写成对象:
{
"name": "#c:ingots/tin",
"count": 2
}如果你只需要普通物品或标签,直接写字符串就够了;只有需要自定义组件或数量时,才需要对象写法。
巨果作物文件
完整的示例:
{
"id": "kubejs:tin_block",
"material": {
"name": "#c:storage_blocks/tin",
"count": 2
},
"color": "#E3E3E0",
"tier": 2,
"translations": {
"en_us": "Tin Block",
"zh_cn": "锡块"
},
"dependencies": {
"modern_industrialization": "block.modern_industrialization.tin_block"
}
}完整字段
id:string- 巨果作物的资源位置
- 会派生出
melon、melon_item、stem、attach、seed等对象
material:BlockMaterial- 巨果作物对应的方块材料
- 可写方块 ID,也可写方块标签
- 数量可选,默认为 2
color:Color- 颜色写法与果实作物相同
tier:number- Croparia 等阶
translations:Map<String, string>- 可选,多语言名称
dependencies: string | Map<String, string>- 可选,依赖与翻译键映射
KubeJS 方式
如果你希望在脚本里动态注册果实作物,也可以使用 KubeJS 扩展入口。
源码签名大致如下:
CropUtil.create(
rawId,
material,
color,
tier,
type,
rawDependencies,
translations
)参数含义与手写 JSON 基本一一对应:
rawId对应idmaterial对应果实作物的materialcolor是整数颜色值tier对应阶级type对应作物类型,可为nullrawDependencies对应dependenciestranslations对应translations
使用建议
- 第一次做自定义作物时,先用指令导出一个模板,再改成正式 JSON。
- 需要兼容多个模组材料时,优先使用标签或
dependencies映射,不要把翻译键写死到单一模组上。 - 果实作物与巨果作物虽然结构接近,但
material类型和是否拥有type字段并不相同。
In This Page