Lunch Bag
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | SpiceOfLife:lunchbag |
| 最大堆叠 | 1(显式 setMaxStackSize(1)) |
| 槽位数 | 3 |
| 耐久度 | 无(全类未调用 setMaxDamage) |
| 附魔适用 | 否(未重写 isEnchantable) |
| 创造模式标签 | CreativeTabs.tabMisc |
[!WARNING] 已订正(本轮源码审计) 本条目与 Lunch Box 共用同一个类
ItemFoodContainer,只有槽位数、注册名、贴图不同,因此以下问题与 Lunch Box 相同:
- 注册名大小写错:原文
spiceoflife:lunchbag→ 正确SpiceOfLife:lunchbag(modidModInfo.MODID = "SpiceOfLife",ModInfo.java:5;GameRegistry.registerItem,ModContent.java:25)。字符串实参ModConfig.ITEM_LUNCH_BAG_NAME = "lunchbag"(ModConfig.java:30)。- 右键语义漏写 Sneak 分支:实际是"潜行切换开/关 → 已开非空则进食 → 未开则开 GUI → 已开且空无动作"(
ItemFoodContainer.java:313-323)。- 左键语义错:不是"打开 GUI(客户端)",而是向服务端发包切换
Open标志;且配置默认false(ItemFoodContainer.java:326-334、PacketToggleFoodContainer.java:18-24、ModConfig.java:189)。- 选食判据写错:不是"饱食度/饱和度比最高",而是三级排序(递减收益系数 → 恰好补满 →
饱和度×饥饿值),见下。- 漏写右键方块的倒出/补入机制(
ItemFoodContainer.java:292-304)。- 「相关条目」里原来有一条指向自己的自引用链接,已替换为 Lunch Box。
功能
午餐袋是一个 3 槽食物容器(Lunch Box 的一半),可存放 3 种不同的食物。
实现 IEdible 接口,可以直接食用。食用时自动从容器中挑选一个食物吃掉(由 MealPrioritizationHelper 决定)。
使用方式
右键语义(ItemFoodContainer.java:313-323,三条互斥分支)
| 条件 | 行为 |
|---|---|
| 玩家潜行 | 切换开/关状态,不开 GUI |
已开 && 非空 && player.canEat(false) |
进入进食动作(32 tick)后吃掉一份 |
| 未开 | 打开容器 GUI 并置 Open=true |
| 已开 && 空 | 什么都不做 |
其他交互
| 使用方式 | 触发条件 | 使用效果 |
|---|---|---|
| 右键方块 | 容器已开,且目标方块有可被该玩家使用的容器 | 先倒出容器内食物,再从目标容器补入 |
| 左键空气 | left.click.opens.food.containers = true 且鼠标不在任何方块上 |
客户端发包,服务端切换开关状态 |
| 食用 | 容器已开且非空 | 按下方判据选出 1 份食物消耗 |
食用时的选食判据
MealPrioritizationHelper.FoodInfoComparator.compare(MealPrioritizationHelper.java:126-146)三级排序:未削弱者优先 → 恰好补满饥饿者优先 → saturationModifier × hunger 大者优先。
合成配方
第1行: p p
第2行: p
p = 纸 (minecraft:paper),共 3 张
(来源 ModContent.java:37)
数值
| 属性 | 值 |
|---|---|
| 槽位数 | 3(构造参数,ModContent.java:24) |
| 物品本身最大堆叠 | 1 |
| 每槽最大堆叠 | food.containers.max.stacksize,默认 2 |
| 进食动作时长 | 32 tick |
| 可存入的物品 | AppleCore 食物且可直接食用;蛋糕与食物容器被排除 |
状态与外观
- NBT 键:
Inventory/Open/UUID(ItemFoodContainer.java:50-52) - 开启时贴图切换为
lunchbag_open_empty/lunchbag_open_full(ItemFoodContainer.java:357-363) - GUI 标题
Lunch Bag(en_US.lang:49)
相关条目
- Lunch Box - 6 槽食物容器,同一个类
- Food Journal - 食物历史查看器
- Diminishing Returns - 递减收益机制