跳转到内容

注册表参考

ModularShoot 通过 6 张动态注册表(DataPackRegistry)存储所有定义。全部支持 /reload 热重载和客户端同步。

注册表概览

注册表 ID用途值类型
modularshoot:guns枪械定义GunDefinition
modularshoot:plugins插件定义PluginDefinition
modularshoot:plugin_types插件种类定义PluginTypeDefinition
modularshoot:traits布尔特性定义Trait
modularshoot:attribute_meta属性元数据AttributeMeta
modularshoot:states持久状态定义StateDefinition

属性本体Attribute 实例)不在上述动态注册表中——须用原版 DeferredRegister 注册到 BuiltInRegistries.ATTRIBUTE。元数据表仅存储默认值、显示信息和绑定关系。

枪械定义(GunDefinition)

注册表:modularshoot:guns

字段类型必需默认值说明
name可选字符串无(回退到枪械 ID 路径部分)显示名称,支持 § 颜色代码和 lang: 翻译键前缀
texture资源路径枪械基础纹理路径,原版物品渲染管线立体化处理
shootTexture可选资源路径无(始终使用基础纹理)射击时切换的纹理路径
shootTextureMode枚举PER_SHOT射击纹理切换模式。仅在指定了 shootTexture 时生效
stats属性ID→浮点数映射空映射属性基础值。键必须带完整命名空间(如 modularshoot:hit_damage)。未声明的属性使用元数据表的默认值
traits特性ID→布尔值映射空映射枪械固有特性覆盖。枪械声明的特性始终覆盖所有插件
slots种类ID→整数映射空映射插件插槽配置,键为插件种类 ID,值为插槽数量
sounds字符串→资源路径映射空映射音效绑定。预置槽位 shoot(射击声),可自定义槽位名称
bulletStyle可选子弹样式无(纯碰撞体,无渲染对象)子弹视觉外观配置

子弹样式(BulletStyle)

字段类型必需默认值说明
model字符串→资源路径映射渲染资源。惯例键:"3d"→原版静态 JSON 模型路径,"billboard"→纹理路径。建议两者都提供
renderMode枚举渲染模式:BILLBOARD(始终面向玩家的 2D 精灵)或 THREE_D(原版静态 3D 模型)

射击纹理模式(ShootTextureMode)

枚举值说明
PER_SHOT每次射击瞬间切换到射击纹理,之后立即切回基础纹理。高速射击时纹理高频闪烁
WHILE_FIRING按住左键射击期间持续显示射击纹理,松开后切回。适合连发枪械,避免闪烁

插件定义(PluginDefinition)

注册表:modularshoot:plugins

字段类型必需默认值说明
tags资源路径列表空列表匹配用标签。与种类 tags 存在交集即可安装。空列表时无法安装(输出 WARN)
priority整数0特性冲突优先级,越大越优先。不继承种类优先级
itemIcon资源路径插件在背包/快捷栏中的图标纹理路径
modifiers修饰符列表空列表属性修饰符数组,安装后叠加到枪械属性
traits特性ID→布尔值映射空映射安装后提供的特性覆盖
exclusiveGroup可选字符串互斥组 ID。同一枪上不能安装两个互斥组 ID 相同的插件
bulletStyle可选子弹样式子弹样式覆盖。安装后替换枪械定义的子弹样式。整体覆盖,非字段级合并
textureOverlay可选纹理叠加纹理叠加信息。安装后在枪械纹理上叠加图层
name可选字符串插件显示名称,支持 § 颜色代码
brief可选字符串一行简介,tooltip 默认层级显示
description可选字符串多行详细描述,tooltip Shift 层级显示
color可选字符串插件名称颜色(如 #FF4444

修饰符(PluginModifier)

字段类型必需默认值说明
attribute字符串目标属性名。若不带命名空间,自动使用 modularshoot 命名空间
operation枚举运算类型。ADD(加算)、MULTIPLY(普通乘算)、MULTIPLY_TOTAL(最终乘算)
value浮点数修饰数值

纹理叠加(TextureOverlay)

字段类型必需默认值说明
texture资源路径叠加到枪械纹理上的图层纹理路径
layer整数层级,越大越靠上。同层级按安装顺序(后装覆盖先装)

插件种类定义(PluginTypeDefinition)

注册表:modularshoot:plugin_types

字段类型必需默认值说明
tags资源路径列表空列表匹配用标签。与插件 tags 存在交集即可安装。空列表时无法匹配任何插件(输出 WARN)
priority整数0显示优先级(tooltip 中种类排序)+ 安装自动选择的二级排序键。不影响插件特性冲突优先级
name可选字符串种类显示名称
color可选字符串种类名称颜色(如 #FFAA00

特性定义(Trait)

注册表:modularshoot:traits

字段类型必需默认值说明
defaultValue布尔值特性默认值,枪械未声明该特性时使用
description字符串""(空字符串)说明文本
name可选字符串无(回退到特性 ID 路径部分)特性显示名称,支持 § 颜色代码和 lang: 翻译键前缀
color可选字符串特性名称颜色(如 #FF8800
brief可选字符串一行简介,tooltip Alt 层级显示
forceShow布尔值false是否强制展示。true 时无论特性值为何都在 tooltip 显示
priority整数0显示优先级,越大越靠前

运行时行为(钩子回调)不存储在 Trait 定义中,需通过 registerTraitHook API 单独注册。

属性元数据(AttributeMeta)

注册表:modularshoot:attribute_meta

字段类型必需默认值说明
binds资源路径指向已注册的原版 Attribute ID。框架通过此字段定位 Attribute holder 参与修饰符挂载。预置属性的逻辑 ID 与本体 ID 一致,binds 指向自身
defaultValue浮点数枪械未声明该属性时的基础值(参与 ADD_VALUE 计算)。可热重载。非原版 Attribute 的 base 值(后者恒为 0)
description字符串""(空字符串)说明文本
color字符串""(空字符串)属性名称颜色(如 #FF4444
priority整数0显示优先级,越大越靠前
forceShow布尔值false是否强制展示。true 时即使值与默认值相同也在 tooltip 显示

binds 指向的属性未注册时:元数据条目保留,但修饰符不挂载、tooltip 不显示、读取返回 0。

状态定义(StateDefinition)

注册表:modularshoot:states

字段类型必需默认值说明
domain枚举归属域。GUN(per-gun,跟枪走,持久化在枪械 NBT)、PLAYER(per-player,跟玩家走,通过 AttachmentType 持久化)、BULLET(per-bullet,仅子弹生命周期内有效,不持久化)
valueType枚举值类型。INT / LONG / DOUBLE / FLOAT / BOOLEAN / STRING / UUID
defaultValue对象对应类型的零值初始值,类型须与 valueType 匹配。per-gun / per-player 首次访问时按此初始化
display状态显示显示元数据对象

状态显示(StateDisplay)

字段类型必需默认值说明
name字符串状态在 tooltip 中的名称。支持 § 颜色代码和 lang: 翻译键前缀
color字符串名称颜色(如 #FFAA00
format字符串"{value}"显示模板,{value} 占位。如 "{value} 层" → tooltip 显示 击杀层数: 3 层
priority整数0tooltip 内排序,越大越靠前
hideDefault布尔值false值为默认值时不显示该行

基于 MIT 许可发布