Cooper’s Mallet
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | etfuturum:coopers_mallet |
| 最大堆叠 | 1 |
| 附魔适用 | 是 |
| 耐久度 | 无 |
功能
Cooper’s Mallet(库珀之锤)是一个在容器 GUI 之间搬运物品的工具,而不是「升级容器等级」的工具。
⚠️ 已订正 —— 原文的「升级路径」整段是编造的,工具的真实功能写反了。 原文声称锤子能把「箱子 → 铜箱 → 铁箱 → 金箱 → 钻石箱 → 下界合金箱」、 「木桶 → 暗色钢木桶 → 下界合金木桶」。源码中不存在这条升级链; 那些名字其实来自
TileEntityBarrel.BarrelType枚举(见 …/block/barrel), 与锤子的逻辑无关。真实行为见
items/ItemCoopersMallet.java:63-91的onItemUseFirst(...):
- 玩家手持锤子右键点击一个容器方块(箱子或 EFR 木桶)
- 工具读取该方块的
Existing槽位状态(read(world,x,y,z))- 遍历玩家物品栏中由
swapSlots(player)选出的若干槽位(主手槽 + 副手/快捷栏相邻槽, 副手常量为OFFHAND = -1)- 若该槽位持有容量等于或大于原容器的另一个容器,就执行
swap(...): 把原容器的物品搬进新容器,同时把新容器搬到方块位置, 旧容器作为物品返还到玩家手上(pay(player, slot, held, from.drop()))- 容器的自定义名字会一并搬运(
setName,对TileEntityBarrel调setCustomName, 对TileEntityChest调func_145976_a)也就是说它只在「搬运/更换容器」层面工作,不改变方块类型,也不提升容量上限; 类注释写明「Replacement must be equal in capacity or larger」(替换品容量必须相等或更大)。
跨模依赖
- Iron Chests:仅在
ModsList.IRON_CHEST.isLoaded() && ConfigModCompat.barrelIronChest时启用对 Iron Chests 箱子的命名处理 (items/ItemCoopersMallet.java:275ironChestEnabled())。 未安装该模组时相关分支不生效。 - Backhand:
ModsList.BACKHAND.isLoaded()为真时显示不同提示文本 (ItemCoopersMallet.java:49-53)。 hasAdjacentChest(...)会在方块四邻检查原版箱子,用于判定相邻容器关系 (ItemCoopersMallet.java:279-282)。
使用方式
| 使用方式 | 触发条件 | 使用效果 |
|---|---|---|
| 右键点击容器 | 持有锤子且物品栏有等容或更大容量的容器 | 把物品搬进新容器并把新容器放到该方块位置 |
| 提示信息 | 悬停显示 | 显示工具描述(有 Backhand 时为另一条文本) |
相关条目
- Barrel - 木桶方块
配置门控
ConfigBlocksItems.enableCoopersMallet,配置键enableCoopersMallet,默认开启(ON)(configuration/configs/ConfigBlocksItems.java)。