Key
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | betterstorage:key |
| 类 | net.mcft.betterstorage.item.locking.ItemKey(实现 IKey) |
| 可染色 | 是(canDye 返回 true,ItemKey.java:43) |
| 可附魔值 | 20(getItemEnchantability(),ItemKey.java:47-49) |
| 创造标签 | BetterStorage.creativeTab |
来源:src/main/java/net/mcft/betterstorage/content/BetterStorageItems.java:56;src/main/java/net/mcft/betterstorage/item/locking/ItemKey.java。
功能
钥匙是本 mod 锁系统的核心物品。每把钥匙与每把锁都携带一个内部 ID(ItemBetterStorage.setID / getID),只有 ID 匹配的钥匙才能开对应的锁。
- 钥匙可以染色,颜色仅作视觉区分(
ItemKey.java:84-92) - 合成时会把 NBT 中的
LockID 复制到成品锁上(LockRecipe.getCraftingResult,src/main/java/net/mcft/betterstorage/item/recipe/LockRecipe.java:19-25) - 匹配规则(
ItemKey.canUnlock,ItemKey.java:110-131):只对getLockType()为"normal"的锁有效(ItemKey.java:112),随后按 ID 的高位/低位分段比较,允许同一"家族"的钥匙互相开启 - 可附魔三种钥匙附魔(见 钥匙附魔)
- 主钥匙 继承本类,是能开所有普通锁的特例
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 可附魔值 | 20 | ItemKey.java:47-49 |
| 堆叠上限 | 1 | ItemBetterStorage 构造函数 setMaxStackSize(1),src/main/java/net/mcft/betterstorage/item/ItemBetterStorage.java:24 |
| 支持的锁类型 | 仅 "normal" |
ItemKey.java:112 |
交互
| 触发 | 行为 |
|---|---|
| 右键上锁的容器 | ID 匹配则开锁 |
| 铁砧染色 | 改变钥匙颜色 |
| 附魔台 | 可附 Unlocking / Lockpicking / Morphing |
| 与锁合成 | 生成携带相同 ID 的锁(KeyRecipe) |
合成配方
两条配方(src/main/java/net/mcft/betterstorage/misc/Recipes.java:184-188)。
初始钥匙(KeyRecipe.createKeyRecipe):
.o
.o
o
| 字符 | 物品 |
|---|---|
o |
金锭 |
. |
金粒 |
修改钥匙 ID(KeyRecipe.createKeyRecipe("k", 'k', ...)):单格无序配方,把已有钥匙的 ID 复制给新钥匙。
源码注释明确标记此配方的不足:
// TODO: Add support for ore dictionary gold ingots / nuggets.(Recipes.java:183)——当前配方使用原版Items.gold_ingot/Items.gold_nugget,不走物品字典。