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 中的 Lock ID 复制到成品锁上(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,不走物品字典。

相关条目