心得 Insight
心得是模块内的最小单元,是量变型的升级节点。心得以独立 JSON 文件定义,被 Module 通过 insights 列表引用,共同构成模块的心得树。
文件位置
data/<namespace>/epiphany/insight/<path>.json- 心得的注册 ID =
<namespace>:<path>data/mymod/epiphany/insight/fireball.json→mymod:fireballdata/mymod/epiphany/insight/spell/fireball.json→mymod:spell/fireball
复用心得
理论上,不同模块可以引用同一个心得 ID。但这并不是推荐的做法,强烈不建议不同模块之间复用同一个心得 ID。
完整样例
jsonc
{
"name": "领袖气质", // 可选,缺省走 lang 翻译键
"description": "足以治理一个国家的能力", // 可选
"icon": "minecraft:textures/item/golden_chestplate.png", // 可选
"item_icon": "minecraft:golden_chestplate", // 可选
"cost": 1, // 可选,默认 1
"reward": [ // 可选;对象或数组
{
"type": "epiphany:attribute",
"attribute": "minecraft:generic.max_health",
"amount": 6.0,
"operation": "add_value"
},
{
"type": "epiphany:insight_points",
"amount": 1
}
],
"reward_description": "+6 最大生命和 +1 心得点", // 可选
"weight": 100 // 可选,默认 100
}上例同时写出 icon 和 item_icon 以展示两种配置方式,实际使用时可以只配置其中一个。两者同时存在时,系统优先使用能够加载的 icon 纹理;纹理缺失时再尝试 item_icon。
字段说明
name(可选)
- 类型:
Component(字符串、样式对象或翻译键) - 默认:缺省时回退翻译键
insight.<ns>.<path>.name
文本组件与 i18n
所有 Component 字段支持字符串 / 样式对象 / 翻译键三种写法,缺省时自动回退到约定翻译键。详见 Module · 文本组件与 i18n。
description(可选)
- 类型:
Component - 默认:缺省时回退翻译键
insight.<ns>.<path>.description - 简明描述心得的效果(如
"+6 最大生命")
icon(可选)
- 类型:
ResourceLocation,指向资源包纹理
item_icon(可选)
- 类型:物品注册 ID,例如
"minecraft:golden_chestplate" - 优先级:有效
icon→ 有效item_icon→textures/gui/insight/<path>.png→ 默认diamond - 显式纹理缺失或物品 ID 无效时会继续降级
- 完整规则见 Module · icon
cost(可选)
- 类型:int
- 默认:
1 - 点亮该心得消耗的心得点数量
与 MODULE_SELECT_COST 区分
MODULE_SELECT_COST(配置项)是选择模块的统一消耗,与心得的 cost 独立。心得 cost 由每个心得自行配置。
reward(可选)
- 类型:奖励对象或奖励对象数组(
InsightRewardCodec) - 默认:无奖励
- 玩家点亮该心得时,奖励按数组顺序立即应用
- 继续兼容旧单对象写法;
[]表示无奖励 - 重置时,列表奖励按逆序移除
- 完整 reward 类型与字段见 Reward
reward_description(可选)
- 类型:
Component - 默认:缺省时回退翻译键
insight.<ns>.<path>.reward_description - 显示在心得节点的 tooltip(按住 Shift),直观告诉玩家奖励内容
- UI 中直接展示此文本,不会自动从 reward 类型推导
weight(可选)
- 类型:int
- 默认:
100 - 仅在平铺显示多个心得时影响排序,实际意义有限
- 可为负数