动态注册表
下表列出 MxtDatapackRegistries 注册的 33 个数据包注册表。字段表中的“默认”是 Codec 默认值;“必填”表示缺失时加载失败。表格末尾的 alchemy_recipe 与 spirit_crafting 不是数据包注册表,而是使用原版配方系统的配方类型,一并列在此处便于查阅。
| 注册表 | 文件目录 | 用途 |
|---|---|---|
resource | mxt/resource | 修为、灵力、体力等实体资源及内联资源条。 |
aura | mxt/aura | 单个数值的灵气定义:它是什么(元素标记、灵力射线量)、境界链入口、恢复、换算与可用性。 |
realm_stage | mxt/realm_stage | 线性境界链和突破。 |
element | mxt/element | 元素关系(overcomes/adapted_to,每条关系自带伤害倍率)与显示色;灵气用自身的 aura_type 指向一个元素,统一伤害管线按双方灵根的元素关系结算克制与适应。 |
spirit_root | mxt/spirit_root | 与单一元素绑定的灵根。 |
physique | mxt/physique | 独立于元素的体质加成。 |
ability | mxt/ability | 主动、被动和触发技能。 |
curse | mxt/curse | 可引用的诅咒定义。 |
forging_method | mxt/forging_method | 单次锻打方式。 |
forging_blueprint | mxt/forging_blueprint | 锻造目标和品质结算。 |
tool_binding | mxt/tool_binding | 工具物品提供的锻打方式。 |
blueprint_binding | mxt/blueprint_binding | 蓝图物品提供的锻造蓝图。 |
technique | mxt/technique | 功法定义(可学习、按水平授予能力与修炼修正)。 |
skill_stage | mxt/skill_stage | 技能水平链的单级定义。 |
cultivate_action | mxt/cultivate_action | 一次"运功"法门:吸收哪些环境灵气、每刻做什么、收费与收获、冷却。已标记为将来可能移除。 |
item_archetype | mxt/item_archetype | 法器原型和能力。 |
spirit_herb | mxt/spirit_herb | 已有物品的灵植元数据。 |
alchemy_recipe | recipe(配方类型 mxt:alchemy) | 炼丹配方。 |
spirit_crafting | recipe(配方类型 mxt:spirit_shaped / mxt:spirit_shapeless) | 灵性合成配方。 |
formation | mxt/formation | 阵法生命周期和灵气覆写。 |
tribulation | mxt/tribulation | 天劫:启动门槛、时间线节拍与成败行为。 |
creature_profile | mxt/creature_profile | 生物档案和实体绑定条件。 |
contract_type | mxt/contract_type | 契约生命周期。 |
realm_instance | mxt/realm_instance | 秘境实例策略。 |
currency | mxt/currency | 物品货币面值和兑换。 |
item_binding | mxt/item_binding | 现有物品到行为数组的绑定。 |
weapon_binding | mxt/weapon_binding | 现有物品的武器属性和行为。 |
pill_binding | mxt/pill_binding | 现有物品的丹药和丹毒规则。 |
technique_binding | mxt/technique_binding | 现有物品到功法学习的绑定。 |
aura_zone | mxt/aura_zone | 环境灵气模板。 |
block_aura | mxt/block_aura | 方块提供的灵气。 |
item_aura | mxt/item_aura | 手持物品提供的修炼燃料。 |
item_quality | mxt/item_quality | 共享品质和品质条件。 |
trigger | mxt/trigger | 事件规则:信号、条件与行为。 |
talisman | mxt/talisman | 符箓定义:一张符箓铭刻的能力。 |
title(称号)与 badge(徽章)曾经作为预留注册表存在,现已彻底移除:两者都只有数据结构,没有任何玩法消费者,也不在后续规划内。目录里残留的 mxt/title、mxt/badge 文件不会再被读取,也不会产生报错——它们只是普通文件。若需要同类展示内容,请等对应的玩法模块真正落地时再引入注册表。
固有类型分派
下列字段使用 Java 固有注册表的 MapCodec。数据包只能传入 type 和该类型的参数,不能添加新的 type:
| 数据类型 | 分派字段 | 作用 |
|---|---|---|
Ability | ability.type | 顶层字段名为 ability,嵌套对象中的 type 选择技能生命周期和触发方式。 |
CurseType | type | 诅咒的持续和过期方式。 |
EntityAction | type | 实体行为。 |
BiEntityAction | type | 双实体行为。 |
BlockAction | type | 方块行为。 |
ItemAction | type | 物品行为。 |
EntityCondition | type | 实体条件。 |
BiEntityCondition | type | 双实体条件。 |
BlockCondition | type | 方块条件。 |
ItemCondition | type | 物品条件。 |
DamageCondition | type | 伤害条件。 |
ResourceValueProvider | type | 资源条和扩展读取的资源数值来源,包括环境与实际灵气浓度。 |
ResourceBarRenderer | type | 资源条绘制器。 |
ResourceBarVisibility | type | 资源条显示条件。 |
TimelineEntry | type | 天劫时间线的一个节拍:执行行为、空等一段时长,或等一个条件成立。 |
DataStorage | type | 内容声明的状态类型:冷却、充能、切换、持续等。存什么由类型自己决定,类型的类就是槽。 |
行为和条件数组是简写:
"entity_action": [
{"type": "mxt:heal", "amount": 2},
{"type": "mxt:apply_curse", "curse": "example:burning", "stacks": 1}
]所有行为的具体字段以固有类型 Codec 为准。内置类型由 MxtEntityActions、MxtBiEntityActions、MxtBlockActions、MxtItemActions、MxtEntityConditions、MxtTimelineEntries 等类分组注册;数据包不会向这些固有注册表添加条目。
KubeJS 扩展类型 mxt:js
下列分派都预注册了一个 mxt:js 类型:脚本在 kubejs/server_scripts/ 里注册回调后,数据包即可按 id 引用它。回调缺失或抛异常时,各自退化为安全默认值并记录一条警告,不会使加载失败。
| 分派 | mxt:js 字段 | 注册方法 |
|---|---|---|
EntityAction / BiEntityAction / BlockAction / ItemAction | id、params | MxtActions.entity / biEntity / block / item |
EntityCondition / BiEntityCondition / BlockCondition / ItemCondition / DamageCondition | id、params | MxtConditions.entity / biEntity / block / item / damage |
NumberProvider | id、params | MxtValues.number |
ResourceValueProvider | id、params | MxtValues.resourceValue |
Cost | id、params | MxtCosts.register |
Trigger | signal、id、params | MxtTriggers.matcher |
TargetSelector | id、params | MxtAbilities.selector |
| 原版战利品条件 / 战利品函数 | id、params | MxtLoot.condition / MxtLoot.function |
Trigger 的 mxt:js 必须额外声明 signal,因为运行时按「信号 → 所有者 → 订阅」分层索引派发。所有 mxt:js 回调都在服务端执行;除 Cost 之外,回调都能拿到本次派发的公式上下文——Cost 只用玩家求值,因此它的上下文仅由该玩家构建,不含事件载荷。战利品条件与函数写在原版战利品表里(condition / function 分派键),同样只在服务端生成战利品时执行。
数据包无法向固有注册表新增 type,只能选择已注册的类型;mxt:js 是其中唯一能把行为交给脚本的类型。
curse:可被多个模块引用的诅咒定义与持续类型;到期与被解毒各有一个行为,而「谁能解我」不由诅咒决定——解毒剂用mxt:remove_curses_by_tag声明它能解的mxt:curse标签,标签文件列出诅咒。物品可以携带诅咒(mxt:curse_container,装上即施加、脱下即移除),display_condition决定它在人物信息面板里露不露面。详见数据包格式。creature_profile/contract_type:生物档案和契约规则,框架不提供具体生物数值。realm_instance:运行时维度实例入口。spirit_herb:绑定现有物品的灵植数据。item_archetype:法器和飞行能力定义。talisman:符箓定义,目前只声明铭刻后授予的ability;“已经铭刻了哪些符箓”由物品mxt:talisman的组件保存,见数据包格式。
称号(
title)、徽章(badge)与宗门(sect)曾是预留注册表,现已彻底移除,详见数据包格式。