BaubleExpandedSlots
基本信息
| 属性 | 值 |
|---|---|
| 路径 | baubles.api.expanded.BaubleExpandedSlots |
| 类型 | class |
| 包名 | baubles.api.expanded |
核心常量
| 常量 | 值 | 含义 |
|---|---|---|
slotLimit |
20 | 可用槽位的最大数量上限 |
maxSlotIdBytes |
由 slotLimit 计算的 VarInt 字节数 |
用于网络包编码槽位 id |
invalidType |
"" |
用于替代 null 的"无效"类型字符串 |
unknownType |
"unknown" |
槽位未指定类型时的占位类型 |
预注册类型(final String)
| 常量 | 字符串 | 用途 |
|---|---|---|
ringType |
ring |
戒指 |
amuletType |
amulet |
护身符 |
beltType |
belt |
腰带 |
universalType |
universal |
通用槽 |
headType |
head |
头部 |
bodyType |
body |
躯干 |
charmType |
charm |
符咒 |
capeType |
cape |
披肩 |
shieldType |
shield |
盾牌 |
quiverType |
quiver |
箭筒 |
gauntletType |
gauntlet |
护手 |
earringType |
earring |
耳环 |
wingsType |
wings |
翅膀 |
默认槽位分配
assignedSlots 静态初始化时按顺序填充:
[amuletType, ringType, ringType, beltType]
即默认玩家身上拥有 1 个 amulet、2 个 ring、1 个 belt 共 4 个槽位。其他 mod 可在 preinit 阶段调用 tryAssignSlotOfType / tryAssignSlotsUpToMinimum 追加槽位。
方法清单
| 方法 | 用途 |
|---|---|
tryRegisterType(String) |
preinit 期间注册自定义类型;返回是否注册成功 |
tryAssignSlotOfType(String) |
preinit 期间追加一个指定类型的槽位;返回是否成功 |
tryAssignSlotsUpToMinimum(String, int) |
preinit 期间确保指定类型至少有 N 个槽位 |
tryUnassignSlotOfType(String) |
preinit 期间移除指定类型的最后一个槽位 |
tryUnassignSlotsDownToMaximum(String, int) |
preinit 期间确保指定类型至多 N 个槽位 |
totalCurrentlyAssignedSlotsOfType(String) |
当前已分配指定类型槽位的总数 |
getIndexesOfAssignedSlotsOfType(String) |
已分配指定类型槽位的索引数组 |
isTypeRegistered(String) |
类型是否已注册 |
slotsCurrentlyUsed() |
当前已分配槽位数量 |
slotsCurrentlyUnused() |
已废弃;永远返回 0(槽位现为无限扩展) |
getSlotType(int) |
给定槽位索引,返回其类型;越界返回 unknownType |
getIndexOfTypeInRegisteredTypes(String) |
注册类型的索引;找不到返回 -1 |
getCurrentlyRegisteredTypes() |
已注册类型列表(preinit 后实际不变) |
getCurrentSlotAssignments() |
当前槽位分配数组(init 前可变) |
getTypeFromBaubleType(BaubleType) |
把 enum 转换为对应注册类型字符串 |
overrideSlots(String[]) |
仅当 manualSlotSelection 启用时调用;用给定数组覆写当前槽位分配 |
限制
- 类型注册和槽位分配只能在
LoaderState.PREINITIALIZATION期间进行 slotLimit = 20是扩展槽位的硬上限(若需要更多槽位,需要修改源码并重新编译)tryRegisterType不能注册unknownType或与已有类型重复的字符串
相关条目
- IBaubleExpanded - 使用本类类型字符串的扩展接口
- BaubleType - 原始 enum
- BaublesConfig -
slotTypeOverrides、slotUniversalOverrides等配置基于本类 - ContainerPlayerExpanded - 容器构建时调用
getCurrentSlotAssignments()