========================================
全部功能 - 已实现功能记录
（汇总所有功能分类的"做了什么"，按分类分节）
========================================
说明:
- 本文件汇总全部功能分类的已实现内容
- 每节对应一个功能分类（如 动物养殖 / 烧烤），后续新分类在此追加
- 各分类的详细转换流程见 tuilun 下对应的《XX转化关系.txt》


########################################
【动物养殖】(xy_animal)
########################################

一、鸡窝(产蛋) —— 低级机制
- 放蛋: 手持鸡蛋右键鸡窝逐级放置递增 (0蛋→1蛋→…→5蛋), 每次消耗1个鸡蛋,
  提示 "鸡蛋已放入鸡窝 (N/5)" [已实现]
- 取蛋: 空手右键取走对应数量鸡蛋, 以掉落物形式获得, 回到0蛋形态,
  提示 "取走了 N 个鸡蛋" (5/4/3/2/1蛋均可取) [已实现]

二、鸡饲料盆 (chickenmanger_0/1)
- 填充: 手持种子右键, 消耗16个种子 → 满, 提示 "鸡饲料已加满" [已实现]
- 计时变空: 满盆计时60秒 → 自动变空, 开始提示 "鸡饲料已加满，鸡正在进食…",
  完成提示 "鸡饲料已吃完" [已实现]

三、饲料槽-小麦 (manger_0/3/2/1)
- 填充: 手持小麦右键, 消耗32个小麦 → 满, 提示 "小麦饲料已加满" [已实现]
- 计时逐级变空: 满→半量→少量→空, 每级计时60秒, 吃完提示 "小麦饲料已吃完" [已实现]

四、饲料槽-水 (manger_0/mangerwater)
- 加水: 手持水桶右键 → 水槽, 消耗水桶返还空桶, 提示 "已给饲料槽加水" [已实现]

五、饲料槽-胡萝卜 (manger_0/pigmanger_1/2)
- 填充: 手持胡萝卜右键, 消耗32个胡萝卜 → 满, 提示 "胡萝卜饲料已加满" [已实现]
- 计时逐级变空: 满→半量→空, 每级计时60秒, 吃完提示 "胡萝卜饲料已吃完" [已实现]

六、粪便 (feces_3/2/1)
- 清理: 空手右键逐级清理 (一坨→半坨→仅痕迹→消失), 提示 "清理了粪便" [已实现]


########################################
【烧烤】(xy_barbecue)
########################################

一、烧烤架 (barbecuegrill_0/1)
- 点火: 无火烧烤架_1 + 打火石 → 点燃烧烤架_2 (打火石不消耗) [已实现]
- 点火: 无火烧烤架_1 + 烈焰弹 → 点燃烧烤架_2 (消耗1个烈焰弹) [已实现]
- 灭火: 点燃烧烤架_2 + 水桶 → 无火烧烤架_1 (消耗水桶,返还空桶) [已实现]

二、烤串 (放烧烤架上,右键2次转换,不计时,需下方点燃烧烤炉)
- 牛肉串: beefkebabs_1(生) → beefkebabs_0(半熟) → beefkebabs_3(熟) [已实现]
- 羊肉串: lambkebabs_1(生) → lambkebabs_0(半熟) → lambkebabs_3(熟) [已实现]
- 烤蔬菜串: roasted_vegetables_0(生) → _1(半熟) → _3(熟) [已实现]
- 烤香菇串: roastedmushrooms_0(生) → _1(半熟) → _3(熟) [已实现]
- 失败提示: 下方不是点燃的烧烤炉 → "§c下方不是点燃的烧烤炉，无法翻烤！" [已实现]

三、上杆 (手持生食材右键 支杆b_34)
- 生鸡肉(放置后) roastchickenplace_0 → 烤鸡(上烤架_生) roastchicken_0 [已实现]
- 死猪 dead_pig → 烤乳猪(生) roastpig_0 [已实现]
- 鳕鱼 minecraft:cod → 烤鳕鱼(生) grilledcod_0 [已实现]
- 鲑鱼 minecraft:salmon → 烤鲑鱼(生) grilled_fish [已实现]

四、计时烤制 (支杆下方篝火 campfire,约60秒,右键激活 autoStart=False)
- 烤鸡: roastchicken_0(生) → roastchicken_1(熟) [已实现]
- 烤乳猪: roastpig_0(生) → roastpig_1(熟) [已实现]
- 烤鳕鱼: grilledcod_0(生) → grilledcod_1(熟) [已实现]
- 烤鲑鱼: grilled_fish(生) → grilled_salmon(熟) [已实现]
- 开始提示 "§e开始烤制烤X，约60秒…" / 完成提示 "§e烤X烤熟了！" [已实现]
- 下方无篝火: 拒绝开始 "§c支杆下方需要放一个篝火(营火)才能烤制！" [已实现]
- 烤制中拿走篝火: 暂停,篝火放回继续 (保持原时间戳) [已实现]
- 退出/重启游戏: 继续计时 (绝对时间戳写入方块实体数据持久化) [已实现]

五、取下 (空手右键烤熟方块,以掉落物形式获得整只)
- 烤鸡(熟) roastchicken_1 → b_34 + 掉落 烤鸡整只 roast_chickenplace_1,
  提示 "§a取下了烤鸡（整只）" [已实现]
- 烤乳猪(熟) roastpig_1 → b_34 + 掉落 烤乳猪整只 roastpignew_1,
  提示 "§a取下了烤乳猪（整只）" [已实现]

六、手持物品右键方块表面 (ServerItemUseOnEvent)
- 手持原版生鸡肉 minecraft:chicken 右键任意方块表面 → 生成 生鸡肉(放置后)
  roastchickenplace_0, 消耗1个, 提示 "已放置生鸡肉，可右键支杆上杆烤制" [已实现]


########################################
【通用架构】
########################################
- 右键转换与计时转换已拆分为两个独立类 (XxxService / XxxTimerService), 解耦 [已实现]
- 事件由 FeatureDispatcher 统一监听路由 (blockOwner/itemUseOnOwner/timerOwner) [已实现]
- 右键服务通过 FeatureDispatcher.startTimerFor 把计时启动转发给计时服务 [已实现]
- 计时用绝对时间戳写入方块实体数据, 支持退出/重启后继续计时 [已实现]
- 计时源方块"空手右键开始计时"(2026-09-15): 所有下方必须是点燃炉灶(stove_2)的
  计时源方块(汤锅汤羹/生米锅、油锅炸物生/半熟、丸子机加料后/半熟、蒸笼蒸X_生),
  单独放置或转换后未触发计时时, 空手右键该方块即可开始/继续计时;
  下方是点燃炉灶才真正开始(否则提示"需要放在点燃的炉灶上"), 已在计时中再空手右键
  提示"已经在计时中"; 实现于 汤锅/油锅/丸子机(ChujuService)/面食蒸笼(MianshiService)
  的 handleBlockUse + 各自 _handleStartTimer, 经 FeatureDispatcher.startTimerFor 转发,
  计时服务 startTimer 内做下方判定(丸子机 ChujuTimerService 已补下方检查) [已实现]
- 原版放置(手持原版生鸡肉/鲑鱼/鳕鱼右键方块表面放置对应方块)已拆到独立目录
  xiangyemod/yuanbanfangzhi (YuanbanData/YuanbanService), 从烧烤/死亡生物中剔除 [已重构]
- 原版食物成品盘转换(乡野食物·原版食物): 手持原版食物右键 空盘子(rtdd:plate_0) →
  盘子本身变为对应成品盘, 消耗1个食物; 生鱼片(plate_17)可用 鳕鱼/鲑鱼/热带鱼
  (含网易端鳕鱼报 minecraft:fish 兼容) [已实现]
  南瓜派→plate_16 / 西瓜片→plate_18 / 面包→plate_20 / 曲奇→plate_21 / 熟鸡肉→plate_4
  (实现于 xiangyemod/yuanbanfangzhi/YuanbanData.py PLATE_RULES + YuanbanService, 替换模式)


########################################
【食材补齐】(2026-09-02 第二批)
########################################
- 大米(brownrice): 从Java版迁入, 归乡野食材/谷物·米面组, 用于生米锅/米饭/竹筒饭/蛋炒饭 [已迁移]
- 生面(noodles): 从Java版迁入, 归面食.甜食/面粉·面团组, 用于汤锅生面汤/炒锅意面 [已迁移]
- 牛肋(costillavacaes): 从Java版迁入, 归乡野食材/肉类·肉馅组, 用于胡萝卜牛排骨(菜名保留"牛排骨") [已迁移]
- 葱(scallions): 从Java版迁入, 归乡野食材/蔬菜·切配组, 用于炒锅加葱/葱花锅底 [已迁移]
- 香菜锅底 → 改名"葱花锅底"(食材用葱): Java版无香菜, 触发食材已从青菜改为葱 [已改]


########################################
【死亡生物】(xy_deadmob) 2026-09-02
########################################
一、挂肉钩-挂放 (手持尸体/原版鱼右键空钩 meathook, 消耗1)
- 死牛→整只牛(cow_0)、死猪→整只猪(pig_0)、死羊→整只羊(sheep) [已实现]
- 原版鲑鱼(salmon)→鲑鱼挂一条→两条(hang_meat_hooks_1/2) [已实现]
- 原版鳕鱼(cod)→鳕鱼挂一条→两条(meathookcod_1/2) [已实现]

二、挂肉钩-切肉 (手持 菜刀cleaver, 不可逆, 掉落物随机数量)
- 牛: 去头掉牛头骨1+原版牛肉4~5 → 去四肢掉牛腿肉4 → 去肉掉牛肋2~3+牛里脊2~3+牛肉4~5 → 空钩掉碎肉2~3+牛肉4~5 [已实现]
- 猪: 去皮掉五花肉2~3+生猪排4~5 → 去四肢掉猪蹄4 → 去肉掉猪肋排2~3+生猪排4~5 → 空钩掉碎肉2~3+生猪排4~5 [已实现]
- 羊: 去皮掉羊小排2~3+生羊肉4~5 → 去四肢掉羊腿4 → 去肉掉羊里脊2~3+生羊肉4~5 → 空钩掉碎肉2~3+生羊肉4~5 [已实现]

三、挂肉钩-取下退回 (切前空手右键, 掉落回尸体)
- 整只牛/猪/羊 → 空钩 + 掉落回 死牛/死猪/死羊 [已实现]

四、鱼晾干 (计时300秒, 挂上自动开始 autoStart=True)
- 鲑鱼挂一条→干一条、两条→干两条; 鳕鱼挂两条→干两条 [已实现]

五、取鱼干 (空手右键干钩, 掉落物)
- 干鲑鱼/干鳕鱼钩 → 掉落 鱼干(thedriedfish) [已实现]

六、死鱼/死鱿鱼切块 (手持菜刀)
- 死鲑鱼: 4刀每刀掉1份生鱼片, 共4份 → 消失 [已实现]
- 死鳕鱼: 3刀每刀掉1份生鱼片, 共3份 → 消失 [已实现]
- 死鱿鱼: 切须掉5~6个鱿鱼须 → 变死鱿鱼(切掉鱿鱼须) [已实现]

七、手持原版鱼右键方块表面放置死鱼 (ServerItemUseOnEvent)
- 原版生鲑鱼(salmon) 右键方块表面 → 在其表面放置 死鲑鱼(killfish_0), 消耗1条 [已实现]
- 原版鳕鱼(cod) 右键方块表面 → 在其表面放置 死鳕鱼(killcod_0), 消耗1条 [已实现]
- 注意: 网易端 ItemUseOn 事件对生鳕鱼报的 itemName 是 minecraft:fish, 已额外注册, 否则放置不了 [已实现]
- 被点方块是挂肉钩/挂鱼钩/尸体等死亡生物方块时跳过, 交还挂鱼逻辑 [已实现]

七之补、拆方块掉回原版生食材 (ServerPlayerTryDestroyBlockEvent)
- 破坏 死鲑鱼(killfish_0) → 掉落 原版生鲑鱼 1条 [已实现]
- 破坏 死鳕鱼(killcod_0) → 掉落 原版生鳕鱼 1条 [已实现]
- 破坏 生鸡肉(放置后 roastchickenplace_0) → 掉落 原版生鸡肉 1个 [已实现]
- 取消默认掉落, 不把方块本身掉出来

八、去皮额外掉落原版皮革
- 牛/猪/羊 去皮步骤额外掉落 原版皮革(minecraft:leather) 4~6个 [已实现]

【未做】尸体生成机制(玩家杀死生物生成尸体) 按txt标注暂时不搞


########################################
【手办】(xy_shouban) 2026-09-02
########################################
一、盲盒开盒 (空手右键 盲盒_未开 jewelrybox_0)
- 换为 盲盒_开过 jewelrybox_1, 随机开出 1 个手办(掉落物形式), 提示 "盲盒开出了XX！" [已实现]
- 开出范围: 猫手办_0(cat_0)、狐狸手办_0(fox_0)、赞助者手办_1~6(figurines~5) 共8种均等概率 [已实现]
- 注意: 只开猫/狐狸转换链【第一个】, cat_1~3、fox_1~3 无法从盲盒开出 [已实现]

二、猫/狐狸手办循环切换 (空手右键逐级切换)
- 猫: cat_0 → cat_1 → cat_2 → cat_3 → cat_0 (循环) [已实现]
- 狐狸: fox_0 → fox_1 → fox_2 → fox_3 → fox_0 (循环) [已实现]
- 说明: cat_1~3、fox_1~3 只能通过循环转换获得

三、静态手办 (无转换)
- 赞助者手办_1~6(figurines~5) 仅由盲盒开出, 无右键转换 [已实现]


########################################
【市场贸易】(xy_market) 2026-09-03
########################################
一、条箱 放入/取出 (woodenbox_0~7)
- 放入: 手持对应物品右键 空条箱 → 消耗32个 → 变为对应条箱(苹果/胡萝卜/土豆/桃子/橘子/鳕鱼/鲑鱼) [已实现]
- 取出: 空手右键装满条箱 → 空条箱 + 掉落32个对应物品 [已实现]

二、货桶 放入/取出 (fishbucket_0 等)
- 放入: 手持对应物品右键 空货桶 → 消耗32个 → 变为对应货桶(鳕鱼/鲑鱼/胡萝卜/土豆/桃子/橘子/苹果) [已实现]
- 取出: 空手右键装满货桶 → 空货桶 + 掉落32个对应物品 [已实现]

三、售卖盒 放入/取出 (sellingboxes 等)
- 放入: 手持对应物品右键 空售卖盒 → 除南瓜/西瓜消耗1个原版方块外, 其余消耗32个 → 变为对应售卖盒(含 售卖盒(鲑鱼) b_30) [已实现]
- 取出: 空手右键装满售卖盒 → 空售卖盒 + 取回(南瓜/西瓜1个原版方块, 其余32个) [已实现]

四、悬赏纸循环 (空手右键逐级切换)
- bountypaper → bountypaper_1 → bountypaper_2 → bountypaper [已实现]

五、布料已按标注禁用 [已处理]
- 售卖盒(黄绿布料 clothbox_1)、售卖盒(棕色布料 clothbox_2): 名字带"禁用", 已调去 禁用(xy_jinyong) 标签, 移出市场分组, 旧切换规则已移除


########################################
【家具家私】(xy_furniture) 2026-09-03
########################################
（旧 BlockSwitchService 已废弃, 全部 7 个功能统一由 xiangyemod/jiaju 的
FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher）

一、箭桶 (arrowbarrel_0 无箭 / arrowbarrel_1 有箭)
- 存箭: 手持箭(普通箭/药水箭)右键, 批量存入手中所有箭, 至多32只, count记录
  (类型/药水效果aux不符不能混存, 记录写方块实体数据 rtdd_swt=count, 退出重进不丢) [已实现]
- 取箭: 空手右键, 一次性取回方块记录的全部箭(数量+类型+药水效果aux) [已实现]

二、水槽 (flume_0~5)
- 加水: 空手右键空槽 → 满水 [已实现]
- 取水: 手持空水桶右键满水 → 空槽 + 返还装满水的水桶 [已实现]
- 放水: 空手右键满水 → 直接把水放掉回到空槽(不放水桶取水) [已实现]
- 放脏盘子: 满水起手持脏盘子(rtdd:plate_0a)逐个放入(最多4个), 消耗1个 [已实现]
- 取盘子: 空手右键逐个取回, 取回的是洗好的 盘子(rtdd:plate_0); 取完最后一个 → 空槽 [已实现]

三、盘子架 (trayracks_1 空 ~ trayracks_6 五个)
- 放盘子: 手持盘子逐个放入(最多5个), 消耗1个 [已实现]
- 取盘子: 空手右键逐个取回 [已实现]

三b、碗柜 (cupboard_0 空 ~ cupboard_3 三个碗)
- 放碗: 手持木碗(rtdd:bowlasoup)右键逐个放入(最多3个), 消耗1个 [已实现]
- 取碗: 空手右键逐个取回(掉落物形式) [已实现]
- 满柜: 手持木碗右键三个碗的碗柜 → 提示"碗柜已满", 拦截默认行为 [已实现]

四、书柜 (bookcase 系列, 后放先取, 至多13本)
- 放书: 手持书/附魔书右键逐个放入, 消耗1本; 堆栈"替换方块前从旧方块读出→替换后写回新方块",
  多本连续放入不会丢 [已实现]
- 取书: 空手右键后放先取(LIFO), 取回的书以掉落物形式掉在书柜前(不进背包) [已实现]
- 附魔书: 附魔以扁平ench字段([[附魔ID,等级],...])存方块实体(rtdd_swt=stack/rtdd_sws),
  取回时重建userData; 不存含__type__/__value__的userData(引擎写不进方块实体),
  退出重进词条不丢(掉落保护仍是掉落保护) [已实现]
- 健壮性: 方块实体里损坏/为None的旧堆栈数据按空堆栈处理, 不再报错(TypeError) [已实现]

四b、药水架 (lotion 系列, 后放先取, 至多3瓶)
- 从药物系统(xy_medicine)移至家具分类(xy_furniture) [已实现]
- 放药水: 手持任意药水(普通/喷溅/滞留)右键逐个放入, 消耗1瓶, 记录药水名+aux(aux决定效果) [已实现]
- 取药水: 空手右键后放先取(LIFO), 取回的药水以掉落物形式掉在架前(原样返还, 含aux效果) [已实现]
- 满架: 手持药水右键三瓶满的药水架 → 提示"已满", 拦截默认行为(防止误喝药水) [已实现]
- 方块链: 药水架_1(空)=lotion_0, 药水架_2(一瓶)=lotion_1, 药水架_3(两瓶)=lotion_2,
  药水架_4(三瓶)=lotion_3 [已实现]

五、厨具架 (kitchenwarerack 系列, 组合顺序无关, 后放先取, 至多2件)
- 放入: 手持 锅铲/锅勺/菜刀/炒锅 右键空架/未满架 → 消耗1个 → 按组合成型 [已实现]
  (组合与顺序无关: 先放锅再放刀 == 先放刀再放锅, 都是 炒锅+菜刀;
   空+锅铲→单锅铲, 空+锅勺→单锅勺, 空+菜刀→单菜刀, 空+炒锅→单炒锅;
   双锅铲/锅铲+锅勺/双锅勺/炒锅+菜刀/菜刀+锅铲/双菜刀/菜刀+锅勺)
- 取回: 空手右键 → 后放先取(LIFO), 取回最后放入的厨具, 形态退回剩余单件/空 [已实现]

六、古式唱片机 (b_108 无碟 / b_109 有碟)
- 放入: 手持任意原版唱片(minecraft:music_disc_*)右键无碟 → 有碟, 消耗1个, 记录唱片 [已实现]
- 取回: 空手右键 → 无碟 + 掉落该唱片(原样返还, 记录在方块实体数据, 退出重进不丢) [已实现]
- 注: 放入后播放对应唱片曲目 待后续实现 【未做】

七、垃圾桶 (storage_buckets 关闭 / rubbish_bin_2 打开 / b_160 有垃圾)
- 打开: 右键垃圾桶(空手/手持均可) → 打开桶盖(不消耗物品) [已实现]
- 扔垃圾: 打开时手持任意物品右键 → 变为 有垃圾 状态 + 清空主手物品 [已实现]
- 关闭: 右键(空手/手持均可) 打开/有垃圾 → 关闭桶盖 [已实现]

七b、壁炉 (b_88 壁炉 / b_89 壁炉(加柴火) / b_90 壁炉(点燃))
- 加柴: 手持木条(rtdd:b_15)右键空壁炉 → 加柴火, 消耗4个木条 [已实现]
- 点燃: 手持打火石(不消耗)/烈焰弹(消耗1)右键加柴火 → 点燃 [已实现]

八、左键破坏存物方块掉落 (书柜/药水架/厨具架)
- 存了东西的家具方块被左键打碎时: 取消默认掉落 → 掉 空方块本体(保留朝向) + 全部存储物品 [已实现]
  (书柜掉空书柜bookcase+里面的书; 药水架掉空药水架lotion_0+里面的药水; 厨具架掉空架+厨具)
- 附魔书/药水效果在掉落物中保留(取回时重建, 词条/效果不丢) [已实现]
- 与售卖盒区分: 售卖盒破坏重放仍可右键取物; 书柜这类破坏后记录随方块消失, 重放取不到 [已实现]


########################################
【乡野饮料】(xy_drink) 2026-09-04
########################################
实现于 xiangyemod/yinliao (YinliaoData + YinliaoService + YinliaoTimerService, 注册到 FeatureDispatcher)

一、榨汁机 (果汁·榨汁饮品, juicer 系列, 全流程右键)
- 空(juicer) + 水果(消耗1) → 放入水果(juicer_0), 并把水果类型写入方块实体数据(rtdd_jf) [已实现]
- 放入水果 → 榨汁中1 → 榨汁中2 → 榨汁中3 → 完成: 右键逐级推进(每级0.5s冷却) [已实现]
- 完成(juicer_4) 手持玻璃杯(fruitjuice_0)右键(消耗1玻璃杯) → 掉落对应果汁 + 还原空(juicer) [已实现]
- 果汁由第一步放入的水果决定: 西瓜片→西瓜汁(fruitjuice_1)/橙子→橙汁(_2)/苹果→苹果汁(_3)/
  桃子→桃子汁(_4)/葡萄→葡萄汁(_6)/黄豆→豆浆(_7) [已实现]
- 持久化: 每次换态 SetBlockNew 会清空方块实体, 都"先读旧→替换→写回新", 玩家在 榨汁2→榨汁3
  过程中退出游戏, 重进后取出的果汁仍是第一步放入的水果类型 [已实现]
- 黄豆(rtdd:soybean) 物品已从Java版迁入(物品/纹理/名称齐全) [已实现]

二、冰棍盒 (冰棍, icelollybox 系列)
- 未定型(icelollybox_1) + 冰块(消耗1, 原版冰/冰砖/蓝冰/霜冰) → 启动30秒定型计时
  (autoStart=False, 右键激活; 已在定型中不重复消耗) → 定型(icelollybox_2) [已实现]
- 定型 + 对应水果(消耗2) → 各口味冰棍盒(icelollyboxb 橙子/c 苹果/d 桃子/e 葡萄/f 西瓜) [已实现]
- 各口味冰棍盒 空手右键 → 掉落2根对应冰棍 + 还原未定型 [已实现]
- 定型计时用绝对时间戳写方块实体数据, 退出重进继续计时 [已实现]

三、冰棍堆 (组合, 顺序无关, 空手取回按方块状态固定, 不存数据)
- 单根 橙子冰棍/西瓜冰棍 放地上 + 手持另一根右键(消耗1) → 冰棍堆(橙子+西瓜 popsiclepile_2)
  (先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆) [已实现]
- 冰棍堆 + 苹果冰棍(消耗1) → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) [已实现]
- 空手右键: 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆; 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍 [已实现]

四、炒冰盒 (冰棍盒·炒冰盒, frytheicebox 系列)
- 空(frytheicebox) + 冰块(消耗1) → 放冰(frytheicebox_1) [已实现]
- 放冰 + 对应水果(消耗1) → 各口味炒冰盒(苹果/葡萄/西瓜/橘子/桃子) [已实现]
- 各口味炒冰盒 空手右键 → 掉落1个对应冰沙 + 还原空 [已实现]
- 五种口味冰沙齐全: 西瓜冰沙(melonicecreamplace) 已从禁用移回乡野饮料, 正常取出 [已实现]

五、分类/分组调整
- 西瓜冰沙(melonicecreamplace): 分类 禁用(xy_jinyong) → 乡野饮料(xy_drink),
  名称 西瓜冰棍_2(西瓜冰棍)禁用 → 西瓜冰沙, 放入 冰棍(drink_03_popsicle) 分组 [已调整]
- 黄豆(rtdd:soybean): 归乡野食材(xy_ingredients), 放入 谷物·米面(ingr_08_grain) 分组 [已调整]
- 玻璃罐(rtdd:medicinetank): 分类 药物系统(xy_medicine) → 厨具(xy_kitchenware) [已调整]
  (药罐_1~4 medicinetank_1~4 仍留在药物系统分类)
- 天妇罗炸虾(半份)(plate_49a): 分类 炒锅(xy_chaoguo) → 油锅(xy_youguo) [已调整]
- 天妇罗炸虾(半份)(plate_49a): 从 盖饭分组(food_11_rice_meal) 移除, 不再挂"盖饭"分组
  (盖饭分组只剩炒锅盖饭成品: 辣子鸡丁/鳕鱼/香菇滑鸡/麻婆豆腐盖饭) [已调整]


########################################
【文档重写】(2026-09-04 关联整理)
########################################
- 厨具转化关系.txt: 重写, 把已写好的 todo 转正为正式规则:
  搅拌器(肉馅取出/牛奶蛋互通到鸡蛋牛奶/盘子取蛋液半成品)、蒸笼(反向开盖)、
  带油锅铲(上油后变回锅铲)、锅勺(汤锅翻煮)、新增 石磨(磨黄豆->玻璃罐->油罐)、
  擀面杖(加工中消耗, 最后一步掉落返还) [已整理]
- 乡野食材转化关系.txt: 重写, 分组调整为8组, 各类"XX堆"集中到新组【食材堆】;
  新增【原版放置】说明(原版胡萝卜/土豆/青菜右键放置成切配方块);
  标注缺失 青菜原版态(plantvegetables/vegetable) 需从Java版迁入 [已整理]
- 寿司转化关系.txt: 重写, "干海带+大米"改为"干海带+米饭"(米饭=汤锅煮米木碗盛出),
  逻辑严谨区分 竹筒饭用生大米 [已整理]
- 面食.甜食转化关系.txt: 重写, 补 擀面杖消耗/蛋液半成品来源(搅拌器)/米饭vs大米区分 [已整理]
- 乡野自然转化关系.txt: 重写, 柴火堆放/取用转正, 关联水果/大米到食材分类 [已整理]
- 汤锅/炒锅/油锅: 补关联, 米饭来源(汤锅盛出供寿司/蛋炒饭)、油罐来源(石磨制) [已整理]
- 汤锅/炒锅/油锅 转化txt 二次重写(2026-09-11): 全面具体化, 每个步骤标注操作类型
  (【右键转换】/【计时】/【吃】), 补充跨分类关联与食材来源(油罐/裹粉/生饺子/米饭/煎蛋/
  豆腐/豆浆/生面/馍等); 正文全用中文方块名, 英文id统一移入文末【方块清单】对照 [已整理]
- 汤锅/炒锅 转化txt 三次重写(2026-09-11): 食材全部用实际物品名(土豆块/青菜碎/胡萝卜碎/
  葱花碎/蒜末), 不再笼统写"土豆/青菜"; 菜谱每个菜名单独一条, 可多食材的拆开逐条
  (如蔬菜乱炖 20/20a/20b, 蔬菜锅底 5/5a, 煎饼四兄弟 42/42a/42b/42c) [已整理]
- 油锅转化txt 按用户todo转正(2026-09-11): 油罐倒油直接变玻璃罐+玻璃罐取油回罐;
  各炸物消耗数量(鸡块1/猪肉1/薯条3/鱼1/天妇罗4/生饺子3); 计时分级(生60秒->半熟30秒->熟,
  天妇罗/炸饺子单级60秒); 出锅盘装成品掉落物形式; 炸饺子=油锅合体(计时/取出均在油锅_1上);
  天妇罗炸虾递减(整份->半份 plate_49a) [已整理]

【缺失食材·已创建】(对比Java版, 已迁入基岩版行为包)
- 物品类(8个, 均归乡野食材/成品分类, 贴图/JSON/item_texture/lang 齐全):
  胡萝卜碎(crushed_carrots)、葱花碎(crushed_scallions)、土豆块(potato_wedges)、
  奶油(cream_0)、稻谷(rice_seeds)、青菜(qingcai)、青菜碎(vegetable)、
  饭团(rice_balls,乡野食物)、水煮蛋(boiled_egg,乡野食物)
- 青菜物品(qingcai): 整颗未切青菜, 贴图 meiqiedeqingcai.png, 与原版放置衔接
  (手持青菜物品右键放置→切青菜摆放地上); 原 vegetable 物品改名"青菜碎" [已调整]
- 青菜方块(plantvegetables): 已删除(不再使用原版态放置方块) [已删除]

【已放弃·不创建】(用户确认不迁入)
- 鸡腿(raw_chicken_thighs)、鸡翅(raw_chicken_wings)、大饼(bannock) —— 已删除已建文件
- 调料瓶(spicebottle)、香菇串(shiitake_mushroom_skewers)、烤白菜串(cabbage_skewers)、
  蒜苗(a_14/a_16/a_17/a_21)、黑胡椒(blackpepper) —— 未创建, 不再迁入

【食材分组·已落地】(ingredients_groups.json / xy_Ingredients.json / lang 三处同步)
- 新建"食材堆"分组(ingr_09_pile): 土豆堆/胡萝卜堆/桃子堆/橙子堆/苹果堆/鸡蛋堆/鲑鱼堆/鳕鱼堆/面包堆 集中
- 原"蔬果·堆类"(ingr_04_crop) 改名"蔬果·水果": 只留 葡萄/桃子/橙子(单个水果)
- 新食材归组: 胡萝卜碎/葱花碎/土豆块/青菜/青菜碎→蔬菜·切配; 稻谷→谷物·米面; 奶油→调味·佐料 [已调整]
- 乡野食材转化关系.txt 重写纳入新食材(8分组+新食材+稻谷/奶油/切配半成品) [已整理]
- 关联补充: 稻谷→水稻种植(乡野自然)、土豆块→裹粉薯条(油锅) [已整理]

【全局重写·基于行为包实际方块清单】(2026-09-04 第二轮)
- 8个转化关系txt 全部按行为包 netease_blocks/netease_items_beh 实际方块名重写,
  不再沿用旧文档的"翻译名", 并串联分类间关联:
  - 厨具: stove/beater/meatballmaker/steamer/stonemill/oilcan/medicinetank 等工具层
  - 炒锅: wok/coverthepan/oilpan + carrotpotbase/vegetablespotbase/cooking_pepper 锅底 + 各菜谱方块
  - 汤锅: stewedsoup/stewedsoupwater/coverthepot + 各汤底/汤羹 + rawricepot/ricepot 米饭流程
  - 油锅: oilpot_0/1 + 各炸物方块 + plate_* 成品
  - 面食: farineblcok/rawdough/dough 面团链 + dumplings/baozipi/bamboo/bread/cake 各系列
  - 寿司: sushi_0/1 + codsushi/salmonsushi/fishsushi/nigirisushi/sushipile/plate 系列
  - 乡野食材: 8分组(含食材堆/蔬果·水果) + 新食材 + 切配半成品
  - 乡野自然: apple_leaves/tangerine/grapebushes/firewood/riceseedlings + 稻谷种植 [已重写]


########################################
【厨具】(xy_kitchenware) 2026-09-07
########################################
实现于 xiangyemod/chuju (ChujuData + ChujuService + ChujuTimerService, 注册到 FeatureDispatcher)

一、炉灶 (stove -> stove_1 -> stove_2)
- 加柴: 手持木条(b_15)右键空炉灶 → 加木条(stove_1), 消耗4个木条 [已实现]
- 点燃: 手持打火石(不消耗)/烈焰弹(消耗1)右键加木条 → 点燃(stove_2) [已实现]

二、丸子机 (meatballmaker_0~5, 章鱼小丸子)
- 放面团: 手持面团(dough_0)右键空丸子机 → 加入面团(meatballmaker_1), 消耗1个 [已实现]
- 放鱿鱼须: 手持鱿鱼须(rawsquidwhiskersr)右键 → 加入鱿鱼(meatballmaker_2), 消耗4个 [已实现]
- 放配料: 手持任意物品右键 → 加入配料(meatballmaker_3), 消耗1个;
  需下方是点燃的炉灶(stove_2), 否则提示拒绝 [已实现]
- 计时熟化: 加料完成(_3) 计时30秒 → 半熟(_4) 计时30秒 → 熟(_5)
  (autoStart 自动启动, 绝对时间戳写方块实体数据, 退出重进继续计时;
   全程需下方持续存在 stove_2, 中途拿走则暂停, 放回继续) [已实现]
- 取成品: 手持盘子(plate_0)右键熟 → 掉落 章鱼小丸子_完整(plate_40) + 还原空 [已实现]

三、搅拌器 (beater 系列)
- 搅肉: 空+肉(一次性消耗2个) → 肉_1, 空手右键搅打 → 肉_2; 空手取 生猪肉馅(rawmeatball_0)/
  生牛肉馅(rawmeatball_1), 按放入肉的种类决定 [已实现]
- 搅奶: 空+牛奶桶(消耗1个, 返还空桶) → 牛奶_1, 空手右键搅打 → 牛奶_2 → 牛奶_3 [已实现]
- 搅蛋: 空+鸡蛋(一次性消耗3个) → 蛋_1, 空手右键搅打 → 蛋_2 → 蛋_3 [已实现]
- 取奶油: 蛋完成态(beater_custard_2) + 木碗(消耗1) → 掉落 奶油(cream_0) + 还原空 [已实现]
- 鸡蛋牛奶: 牛奶_3+蛋 或 蛋_3+牛奶桶(返空桶) → 鸡蛋牛奶_1; 空手搅打 → 鸡蛋牛奶_3 [已实现]
- 取蛋液: 鸡蛋牛奶_3 + 盘子(消耗1) → 掉落 蛋液半成品(plate_34) + 还原空 [已实现]

四、石磨 (stonemill)
- 加黄豆: 手持黄豆(soybean)右键石磨 → 加入黄豆, 消耗16个 [已实现]
- 研磨: 空手右键旋转(每次90度), 4次回归完成; 进度存方块实体数据 rtdd_mill(退出重进不丢) [已实现]
- 取油罐: 研磨完成 + 玻璃罐(medicinetank, 消耗1) → 掉落 油罐(oilcan) + 石磨回空 [已实现]

五、蒸笼 (steamer <-> steamercover)
- 盖盖/掀盖: 空手右键双向切换 [已实现]

【留后】见 全部功能没做什么.txt 厨具节 (盘子→脏盘子、油罐⇄油锅/锅铲上油、蒸笼蒸熟、锅铲/锅勺/菜刀/擀面杖具体用法)


########################################
【乡野自然·稻谷移动】(2026-09-07)
########################################
- 稻谷(rice_seeds): 分类 xy_ingredients → xy_natural, 从 乡野食材/谷物·米面(ingr_08_grain)
  移入 乡野自然/水稻·作物(nat_03_crop) [已调整]
- 乡野自然转化关系.txt: 把新加的 todo 全部转正为正式规则并标【待实现】:
  果树"树苗成长"机制、葡萄藤取葡萄(4a)、柴火分解9木条(5b)、水稻成熟取16大米(7a) [已整理]
- 乡野食材转化关系.txt: 移除 稻谷 条目(谷物·米面 只留 大米/生面) [已整理]
- 上述待实现功能已记录到 全部功能没做什么.txt 乡野自然 节


########################################
【乡野自然】(xy_natural) 2026-09-07
########################################
实现于 xiangyemod/ziran (NaturalData + NaturalService + NaturalTimerService, 注册到 FeatureDispatcher)

一、果树结果 (计时, 苹果/桃/橘三条链, autoStart 自动结果)
- 苹果: apple_leaves 计时60秒 -> apple_fruit_1 计时60秒 -> apple_fruit_3 [已实现]
- 桃子: peach_leaves -> b_173(一个) -> b_176(两个) [已实现]
- 橘子: orange_leaves -> tangerine_0 -> tangerine_1 -> tangerine_2 [已实现]

二、葡萄藤 (计时生长 + 取葡萄)
- 生长: grapebushes_1 计时180秒 -> grapebushes_2 [已实现]
- 取葡萄: grapebushes_2 空手右键 -> 掉落3个葡萄(grape) + 变回 grapebushes_1 [已实现]

三、柴火 (堆叠/取用 + 工作台分解)
- 堆叠: firewood_2(柴火_2) + 手持柴火右键 -> firewood(柴火_1 堆放, 消耗1) [已实现]
- 取用: firewood(堆放) 空手右键 -> firewood_2 + 返还1柴火 [已实现]
- 分解: firewood 工作台 -> 9个木条(b_15) (配方 xy_firewood_plank) [已实现]

四、水稻 (种植 + 生长 + 收获)
- 种植: 手持稻谷(rice_seeds) 右键原版耕地(farmland) -> 耕地上方放置 水稻刚种下(riceseedlingsb) [已实现]
- 生长: riceseedlingsb 计时120秒 -> riceseedlingsc 计时120秒 -> riceseedlingsd [已实现]
- 收获(左键破坏): 破坏 刚种下/生长中 -> 掉1稻谷(rice_seeds); 破坏成熟(riceseedlingsd) -> 掉1稻谷 + 16大米(brownrice) [已实现]

【留后】果树"树苗成长"机制 见 全部功能没做什么.txt 乡野自然节


########################################
【乡野食材·切配与裹粉】(xy_ingredients) 2026-09-08
########################################
实现于 xiangyemod/shicai (ShicaiData + ShicaiService, 注册到 FeatureDispatcher)
+ 原版放置扩展 (yuanbanfangzhi/YuanbanData)

一、原版放置(手持原版食材右键方块表面, 放置成"摆放地上"切配方块)
- 胡萝卜(minecraft:carrot) -> 切胡萝卜(摆放地上 cutcarrot_0) [已实现]
- 土豆(minecraft:potato)   -> 切土豆(摆放地上 cutpotato_0) [已实现]
- 青菜(rtdd:qingcai)      -> 切青菜(摆放地上 cutvegetable_0) [已实现]
- 葱(rtdd:scallions)      -> 葱花_1(cutscallions_1) [已实现]

二、菜刀切分(手持 菜刀cleaver 右键, 逐级切, 最后一级再切掉碎)
- 切胡萝卜: cutcarrot_0 -> _1 -> _2 -> _3 -> _4, 再切 -> 掉3胡萝卜碎 + 变空气 [已实现]
- 切土豆: cutpotato_0 -> _1 -> _2 -> _3 -> _4, 再切 -> 掉3土豆块 + 变空气 [已实现]
- 切青菜: cutvegetable_0 -> _1 -> _2 -> _3, 再切 -> 掉3青菜碎(vegetable) + 变空气 [已实现]
- 葱花: cutscallions_1 -> _2 -> _3 -> _4, 再切 -> 掉3葱花碎 + 变空气 [已实现]

三、左键打碎切配方块 -> 掉原版食材(ShicaiService.handleDestroy)
- cutcarrot_0~4 -> 原版胡萝卜; cutpotato_0~4 -> 原版土豆 [已实现]
- cutvegetable_0~3 -> 青菜(qingcai); cutscallions_1~4 -> 葱(scallions) [已实现]

四、蒜末(手持 菜刀 右键 大蒜cutgarlic, 3次)
- 大蒜 -> 掉16蒜末(crushedgarlic) + 变空气 [已实现]

五、裹粉半成品(手持生食材右键 面粉块farineblock_3 表面, 消耗面粉块变空气 + 掉落产物)
- 只认"面粉块"farineblock_3 这一个方块(用户指定) [已实现]
- 事件路径: 裹粉是"手持物品右键方块表面"场景, 走 OnItemUseOn(ServerItemUseOnEvent);
  因此 ShicaiService 注册裹粉食材到 itemUseOnOwner, FeatureDispatcher 改造成
  多服务 fallback(itemUseOnAll), 与原版放置(YuanbanService) 共享 土豆/鸡肉/猪肉
  的注册: 右键面粉块→裹粉先命中; 右键地面→裹粉返回False后交给原版放置 [已实现]
- 生鱼片(sashimi) x6 -> 裹粉的鱼(oilfish_0) x1 [已实现]
- 龙虾(lobster) x2 -> 裹粉的天妇罗(oiltempura) x1 [已实现]
- 原版猪肉 x1 -> 裹粉的猪肉(oilpork) x1 [已实现]
- 原版生鸡肉 x1 -> 裹粉的鸡块(oil_chickennuggets) x6 [已实现]
- 原版土豆 x1 -> 裹粉的薯条(oilfrenchfries) x10 [已实现]

七、肉馅按压(空手右键, ShicaiService._handleMeatPress) [已实现]
- 生猪肉馅(rawmeatball_0) 空手右键 -> 生猪肉馅(按压 rawmeatball_2) [已实现]
- 生牛肉馅(rawmeatball_1) 空手右键 -> 生牛肉馅(按压 rawmeatball_3) [已实现]

八、工作台配方(netease_recipes)
- 大蒜串: 大蒜x7 + 支杆(b_34)x2 -> garlicskewers (xy_garlicskewers) [已实现]
- 辣椒串: 辣椒(pepper)x7 + 支杆x2 -> chiliskewer (xy_chiliskewer) [已实现]
- 食材堆合成(9满格): 苹果/面包/胡萝卜/鳕鱼/土豆/鲑鱼堆 由原 8合1(中间空) 统一改 9满格 [已实现]
- 桃子堆/橙子堆: 9满格 (xy_peachpile_0 / xy_orangepile_0) [已实现]
- 食材堆分解(堆放工作台): 9个堆均新增分解配方 xy_*_pile_unpack -> 对应食材x9 [已实现]


########################################
【寿司】(xy_sushi) 2026-09-09
########################################
实现于 xiangyemod/shousi (ShousiData + ShousiService, 注册到 FeatureDispatcher)
+ 盘装寿司 工作台配方 (netease_recipes/xy_plate_27/28/29/42)
(对应 寿司转化关系.txt 一~七组; 方块中文名/英文id 见该 txt 文末【方块清单】)

一、寿司·基础组
- 干海带 -> 干海带(加饭团)  [手持 饭团 右键, 消耗4个饭团] [已实现]
  机制: 海苔上铺饭团

二、鳕鱼寿司组
- 干海带(加饭团) + 鳕鱼 -> 鳕鱼寿司(加鳕鱼)  [手持 鳕鱼 右键, 消耗1个] [已实现]
- 鳕鱼寿司(加鳕鱼) -> 鳕鱼寿司(卷_1) -> 鳕鱼寿司(卷_2) -> 鳕鱼寿司(卷_3) -> 鳕鱼寿司(卷_4)
  [空手右键, 逐级卷制, 每卷一级共四级] [已实现]
- 鳕鱼寿司(卷_4) -> 鳕鱼寿司块(三个)  [手持 菜刀 右键, 两次] [已实现]
  机制: 第一刀"切寿司中…", 第二刀切好, 得 鳕鱼寿司块(三个)

三、鲑鱼寿司组
- 干海带(加饭团) + 鲑鱼 -> 鲑鱼寿司(加鲑鱼)  [手持 鲑鱼 右键, 消耗1个] [已实现]
- 鲑鱼寿司(加鲑鱼) -> 鲑鱼寿司(卷_1) -> 鲑鱼寿司(卷_2) -> 鲑鱼寿司(卷_4) -> 鲑鱼寿司(成品卷)
  [空手右键, 逐级卷制, 每卷一级共四级] [已实现]
  (注: 鲑鱼卷的游戏内卷序命名不整齐, 无"卷_3"标注; 链顺序以转化关系 txt 为准)
- 鲑鱼寿司(成品卷) -> 鲑鱼寿司块(三个)  [手持 菜刀 右键, 两次] [已实现]

四、热带鱼寿司组
- 干海带(加饭团) + 热带鱼 -> 热带鱼寿司(加热带鱼)  [手持 热带鱼 右键, 消耗1个] [已实现]
- 热带鱼寿司(加热带鱼) -> 热带鱼寿司(卷_1) -> 热带鱼寿司(卷_2) -> 热带鱼寿司(卷_3) -> 热带鱼寿司(卷_4)
  [空手右键, 逐级卷制, 每卷一级共四级] [已实现]
- 热带鱼寿司(卷_4) -> 热带鱼寿司块(三个)  [手持 菜刀 右键, 两次] [已实现]

五、手握寿司组
- 手握普通寿司来源: 饭团 右键 任意非寿司方块表面 -> 表面上方放置 手握普通寿司, 消耗1个饭团
  (txt 第18条 todo, 一并实现, 否则手握组无起点) [已实现]
- 手握普通寿司 + 鳕鱼 -> 手握鳕鱼寿司(一个)  [手持 鳕鱼 右键, 消耗1个] [已实现]
- 手握鳕鱼寿司(一个) -> 手握鳕鱼寿司(两个) -> 手握鳕鱼寿司(三个)
  [手持 手握鳕鱼寿司(一个) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 手握普通寿司 + 鲑鱼 -> 手握鲑鱼寿司(一个)  [手持 鲑鱼 右键, 消耗1个] [已实现]
- 手握鲑鱼寿司(一个) -> 手握鲑鱼寿司(两个) -> 手握鲑鱼寿司(三个)
  [手持 手握鲑鱼寿司(一个) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 手握普通寿司 + 热带鱼 -> 手握热带鱼寿司(一个)  [手持 热带鱼 右键, 消耗1个] [已实现]
- 手握热带鱼寿司(一个) -> 手握热带鱼寿司(两个) -> 手握热带鱼寿司(三个)
  [手持 手握热带鱼寿司(一个) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 手握普通寿司 + 鱿鱼须 -> 手握鱿鱼寿司(一个)  [手持 鱿鱼须 右键, 消耗1个] [已实现]
- 手握鱿鱼寿司(一个) -> 手握鱿鱼寿司(两个) -> 手握鱿鱼寿司(三个)
  [手持 手握鱿鱼寿司(一个) 右键, 逐级堆叠, 每级消耗1个] [已实现]

六、寿司堆组
- 鳕鱼寿司(卷_4) -> 寿司堆(鳕鱼_两个) -> 寿司堆(鳕鱼_三个)
  [手持 鳕鱼寿司(卷_4) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 鲑鱼寿司(成品卷) -> 寿司堆(鲑鱼_两个) -> 寿司堆(鲑鱼_三个)
  [手持 鲑鱼寿司(成品卷) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 热带鱼寿司(卷_4) -> 寿司堆(热带鱼_两个) -> 寿司堆(热带鱼_三个)
  [手持 热带鱼寿司(卷_4) 右键, 逐级堆叠, 每级消耗1个] [已实现]
- 递减: 寿司堆(X_三个) -> 寿司堆(X_两个) -> 卷寿司  [空手右键, 逐级取走]
  机制: 每级取走一个并以掉落物形式返还1个卷寿司; 鳕鱼/鲑鱼/热带鱼 同规则 [已实现]

七、盘装寿司组 (工作台合成)
- 盘子 + 手握热带鱼寿司(三个) + 热带鱼寿司(卷_4) -> 盘装寿司(手握热带鱼三份+热带鱼寿司) (plate_27) [已实现]
- 盘子 + 手握鳕鱼寿司(三个) + 鳕鱼寿司(卷_4) -> 盘装寿司(手握鳕鱼三份+鳕鱼寿司) (plate_28) [已实现]
- 盘子 + 手握鲑鱼寿司(三个) + 鲑鱼寿司(成品卷) -> 盘装寿司(手握鲑鱼三份+鲑鱼寿司) (plate_29) [已实现]
- 盘子 + 手握鱿鱼寿司(三个) + 热带鱼寿司(卷_4) -> 盘装寿司(手握鱿鱼三份+热带鱼寿司) (plate_42) [已实现]
(盘子 = 盘子方块 plate_0, 厨具分类可工作台合成)

【留后】吃(寿司块/手握 递减 空手右键吃)、饭团来源(汤锅熟米饭捏饭团, 属汤锅分类)
见 全部功能没做什么.txt 寿司节


########################################
【面食·整理】(xy_mianshi) 2026-09-10
########################################
- 工具·擀面杖组(rollingpin_1/2/3) 整个移入禁用分类(xy_jinyong):
  三个方块 category 由 xy_mianshi 改为 xy_jinyong, 并从 面食 分组(mianshi_01_tool)移除 [已调整]
- 面食.甜食转化关系.txt 重写: 10组改9组(去掉 工具·擀面杖组),
  擀面/和面统一用 厨具擀面杖(rollingpin, 加工中消耗最后一步掉落返还),
  已归入禁用清单补 rollingpin_1/2/3 [已整理]
- 面食.甜食转化关系.txt 中文名规范: 正文全部改用中文方块名, 英文id集中文末【方块清单】,
  与 寿司转化关系.txt 一致 [已整理]
- 厨具转化关系.txt: 擀面杖条目同步去掉"面食分类还有 rollingpin_1/2/3"提及, 注明已禁用 [已整理]
- 吐司面胚(面包面团_4)(breaddough_4) 移入禁用分类(xy_jinyong):
  category 由 xy_mianshi 改为 xy_jinyong, 从 面团·胚料(food_04_dough) 分组移除,
  面食txt 已归入禁用清单补记 (吐司面胚现仅 breaddough_2) [已调整]


########################################
【面食.甜食】(xy_mianshi) 2026-09-10 实现
########################################
实现于 xiangyemod/mianshi (MianshiData + MianshiService + MianshiTimerService, 注册到 FeatureDispatcher)
+ FeatureDispatcher 升级: 方块路由 blockOwner 改为多服务 fallback(blockOwnerAll),
  与物品路由 itemUseOnAll 一致 (面粉块: 食材裹粉去重 + 面食和面 共管) [已实现]
+ 16个计时源方块 netease:block_entity tick 改为 true (发酵/蒸/烤炉)

一、面粉·面团组
- 面粉+鸡蛋x3 -> 面粉(加鸡蛋); +水桶(水桶变空桶) -> 面粉(加水) [已实现]
- 揉面(空手x2) -> 面粉块; 和面(空手x3) -> 生面团; 空手和面四级(和面_1~4) [已实现]
- 和面_4 计时60秒 -> 发酵后; 和面_4 + 菜刀 -> 掉落8个小面团 [已实现]
- 擀面链: 发酵后 手持擀面杖(消耗1根) -> 擀面_1, 空手逐级 -> 擀面_6 -> 生面饼(返还擀面杖) [已实现]
- 生面饼+菜刀 -> 面饼切开; 面饼切开 空手 -> 可颂胚 / +菜刀 -> 掉落生面 [已实现]
- 小面团链: 手持擀面杖(消耗1根) -> 擀面_1, 空手 -> 擀面_3 -> 面团消失, 掉落1个饺子皮(物品) + 返还擀面杖 [已实现]

二、饺子组
- 饺子皮 + 猪肉馅/青菜碎 双向组合 -> 饺子皮(猪肉馅加蔬菜); 捏合 -> 面团消失, 掉落1个生饺子(物品) [已实现]
- 生饺子 手持右键蒸笼(消耗4个) -> 蒸笼(蒸饺子_生), 60秒 -> 熟 [已实现]
- 手持盘子(plate_0)右键熟 -> 掉落盘装水饺(plate_30) + 蒸笼归位 [已实现]

三、包子组
- 饺子皮 空手 -> 包子皮; +猪/牛肉馅 -> 包子皮(加肉); 捏合/塑形 -> 面团消失, 掉落1个生肉包子(物品) [已实现]
- 生肉包子 手持右键蒸笼(消耗3个) -> 蒸笼(包子_生), 60秒 -> 熟;
  空手取出 掉落3个熟肉包子 + 蒸笼归位 [已实现]
- 熟肉包子+菜刀 -> 半个 -> 1/4个; 手持熟肉包子堆叠(两个/三个); 空手递减取走(掉落1个) [已实现]

四、馍·肉夹馍组
- 生面饼 右键 烤炉(表面) -> 烤炉上方放置 馍 [已实现]
- 馍+菜刀 -> 馍(切开); +熟牛肉/熟猪肉(消耗2个) -> 肉夹馍 [已实现]

五、煎饼卷组
- 煎饼+青菜碎(消耗1个) -> 煎饼(加蔬菜); +熟牛肉(消耗1个)/熟土豆(消耗1个) -> 煎饼卷牛肉(卷制3级);
  +熟鳕鱼/熟土豆(消耗1个) -> 煎饼卷鳕鱼 [已实现]

六、竹筒饭组
- 竹筒+菜刀 -> 竹筒(切开); +大米x32 -> 竹筒(加入米); +肉类 -> 竹筒(加入肉) [已实现]
- 竹筒(加入肉) 手持右键蒸笼 -> 蒸笼(竹筒饭_生), 60秒 -> 熟; 空手取出 熟竹筒饭 + 蒸笼归位 [已实现]

七、面包·烘焙组
- 法棍/吐司/可颂/甜甜圈: 手持整份右键堆叠(2份/3份); 空手递减取走(掉落1个) [已实现]
- 甜甜圈胚(烤熟)+奶油 -> 甜甜圈(成品1个) [已实现]

八、面团·胚料组
- 发酵后/法棍面胚_1/吐司面胚/甜甜圈胚(生) 空手右键循环转换 [已实现]
- 法棍面胚_1 60秒发酵 -> 发面; 发面/吐司面胚/甜甜圈胚(生)/可颂面胚 放烤炉上 60秒烘焙 -> 成品 [已实现]
- 胚/面糊等放到烤炉上后固定(右键不再循环转换), 自动开始计时烤制, 右键提示"开始烤制(60秒)"
  (含 蛋糕面糊/可颂胚/舒芙蕾半成品/发面 等不在右键规则里的烤炉源) [已实现]

九、甜点·蛋糕组
- 面粉(加鸡蛋) 右键 木碗 -> 蛋糕面糊(生); 放烤炉 60秒 -> 烤熟; 脱模 -> 蛋糕胚 + 掉落木碗 [已实现]
- 蛋糕胚+奶油 -> 奶油蛋糕; 蛋糕胚+蜂蜜 -> 蜂蜜蛋糕; 奶油蛋糕+浆果 -> 浆果蛋糕;
  菜刀切分(整块->3/4块->半块, 每次掉落小块) [已实现]
- 半块 菜刀拆分: 半块消失 + 掉落 2个 对应小块蛋糕 (蜂蜜cake_1b->2个cake_1d, 浆果cake_2b->2个cake_2d) [已实现]
- 蛋液半成品: 放烤炉 60秒 -> 布丁半成品; +糖x16 -> 焦糖布丁; +奶油 -> 舒芙蕾半成品;
  舒芙蕾半成品 放烤炉 60秒 -> 舒芙蕾 [已实现]
- 蛋液半成品 手持右键蒸笼 -> 蒸笼(蒸牛奶鸡蛋_生), 60秒 -> 熟 [已实现]

【烤炉机制】下方判定为烤炉才对该方块计时(烤炉只做判断); 计时中烤炉被打碎 ->
终止计时 + 烤炉上方方块变掉落物 + 提示; 烤制完成成品 空手右键(下方是烤炉) ->
成品掉落取走(烤炉不动) [已实现]
【蒸笼机制】手持生食右键蒸笼 -> 蒸笼变蒸X_生(蒸笼原位); 蒸X_生下方是
点燃的炉灶(stove_2)才计时60秒 -> 熟; 取出时蒸笼归位 [已实现]
【信息提示】所有转换有成功提示(含消耗数量); 计时开始提示(和面完成开始发酵/
转法棍胚开始发酵/烤制60秒/蒸制)并说清"等计时(X秒)结束变成什么"; 计时结束提示
【已取消】(只保留开始计时提示); 烤炉被打碎/蒸笼下炉灶移走有中断/暂停提示 [已实现]
【操作方向提示】每个转换完成后自动追加可读的下一步指引: 加料类说"你可以加入 猪肉馅、
青菜碎", 计时类说"你可以等计时(60秒)结束变成 法棍"/"放在烤炉上等计时(60秒)结束变成
可颂", 工具类说"手持菜刀右键/手持盘子右键取出"等, 玩家始终知道下一步干什么 [已实现]
【右键体验】右键转换/放入/取出均有0.4秒冷却(长按不会疯狂弹提示); 手持方块物品
右键"功能方块"时若无非处理服务, 直接取消默认放置, 不会"先放一个方块再消失" [已实现]

【留后】吃(熟肉包子/馍/煎饼卷/熟竹筒饭/蛋糕小块 右键吃)、巧克力蛋糕系列
见 全部功能没做什么.txt 面食节

########################################
【油锅】(xy_youguo) 2026-09-11
########################################
实现于 xiangyemod/youguo (YouguoData + YouguoService + YouguoTimerService, 注册到 FeatureDispatcher)
(10个计时炸物方块 netease:block_entity tick 已改 true)

一、油锅基础
- 倒油: 手持油罐右键空油锅 -> 满油锅 + 油罐变回玻璃罐 [已实现]
- 取油: 手持玻璃罐右键满油锅 -> 空油锅 + 获得油罐 [已实现]
- 放料: 手持裹粉半成品/生饺子右键满油锅(油锅下须点燃炉灶 stove_2, 否则提示不放料) -> 炸物(生) [已实现]
  消耗: 裹粉鸡块1 / 裹粉猪肉1 / 裹粉薯条3 / 裹粉鱼1 / 裹粉天妇罗4 / 生饺子3 [已实现]

二、炸制计时(炸物方块正下方是点燃炉灶才计时, 计时数据在炸物方块本身; 炉灶移走暂停+提示)
- 炸鸡块/炸猪排/炸薯条/炸鱼块: 生 -> 60秒 -> 半熟 -> 30秒 -> 熟 [已实现]
- 炸天妇罗/炸饺子: 生 -> 60秒 -> 熟(单级); 炸饺子=油锅+饺子合体, 计时/取出均在炸饺子上 [已实现]
- 计时结束提示【已取消】(只保留放料时的开始提示"等计时(X秒)结束变成什么") [已实现]

三、出锅(手持盘子右键熟炸物, 消耗1盘子, 熟炸物取出后【变回油锅(满油)】可直接再放料,
   盘装成品以掉落物形式出现)
- 炸鸡块熟 -> 盘装鸡块(plate_38); 炸猪排熟 -> plate_36; 炸薯条熟 -> plate_37;
  炸鱼块熟 -> plate_39; 炸天妇罗熟 -> 天妇罗炸虾(plate_49); 炸饺子熟 -> plate_51 [已实现]

【提示/体验】倒油/取油/放料/出锅均有提示(含消耗数量与计时时长); 数量不足/油锅下无点燃炉灶
有提示并拦截; 右键冷却0.4秒; 手持方块物品右键油锅类功能方块取消默认放置(全局) [已实现]
【留后】各盘装成品 右键吃(总食用功能后续实现)、天妇罗炸虾递减吃(整份->半份 plate_49a)、
盘子用后变脏


########################################
【汤锅】(xy_tangguo) 2026-09-14
########################################
实现于 xiangyemod/tangguo (TangguoData + TangguoService + TangguoTimerService, 注册到 FeatureDispatcher)
(59个计时汤羹方块 netease:block_entity tick 已改 true)

一、汤锅基础
- 加水: 手持水桶右键空汤锅 -> 汤锅(加水) + 水桶变回空桶 [已实现]
- 倒水: 手持空桶右键汤锅(加水) -> 汤锅(空) + 掉落1个水桶 [已实现]
- 盖/掀锅盖: 空手右键双向切换 汤锅(加水)<->汤锅(盖锅) [已实现]

二、汤底(汤锅(加水)+食材右键 -> 汤底, 消耗数量按txt)
- 胡萝卜碎x4->胡萝卜汤 / 青菜碎x4->蔬菜汤 / 鸡蛋x3->蛋花汤 / 土豆块x4->土豆汤 /
  红蘑菇x5->红蘑菇汤 / 棕蘑菇x5->棕蘑菇汤 / 鳕鱼x1->鳕鱼汤 / 鲑鱼x1->鲑鱼汤 /
  豆腐x4->豆腐汤 [已实现]
- 组合汤: 土豆汤+胡萝卜碎x4 或 胡萝卜汤+土豆块x4 -> 胡萝卜土豆汤;
  红蘑菇汤+棕蘑菇x5 或 棕蘑菇汤+红蘑菇x5 -> 蘑菇汤;
  土豆汤+鸡蛋x3 或 蛋花汤+土豆块x4 -> 土豆蛋花汤 [已实现]

三、加肉/鱼/豆腐 -> 汤羹(生), 开始计时(下方须点燃炉灶 stove_2 才计时;
   无炉灶时提示"熬制需要下方是点燃的炉灶", 放上后自动开始)
- 胡萝卜汤+牛肉x2->胡萝卜牛肉汤 / +羊肉x2->胡萝卜羊肉汤 / +猪肋排x2->胡萝卜排骨汤 /
  +鳕鱼->胡萝卜鳕鱼汤 / +鲑鱼->胡萝卜鲑鱼汤 [已实现]
- 蔬菜汤+羊肉x2->清汤羊肉 / +牛肉x2->蔬菜牛肉汤 / +碎肉x5->蔬菜瘦肉汤 /
  +胡萝卜土豆汤x1->蔬菜乱炖 / +生鱼片x10->蔬菜鱼片汤 [已实现]
- 胡萝卜土豆汤+青菜碎x3->蔬菜乱炖 / +牛肋x2->胡萝卜土豆牛骨汤 / +羊肉x2->土豆胡萝卜炖羊肉 /
  +羊小排x2->胡萝卜土豆羊排汤 [已实现]
- 鳕鱼汤+鸡蛋x3 或 蛋花汤+鳕鱼->蛋花鳕鱼汤; 蛋花汤+碎肉x5 或 蔬菜瘦肉汤+鸡蛋x3->瘦肉蛋花汤;
  豆腐汤+鲑鱼 或 鲑鱼汤+豆腐x4->豆腐鲑鱼汤; 蘑菇汤+生鸡肉->蘑菇炖鸡 [已实现]
- 猪蹄汤: 汤锅(加水)+猪蹄x2->生; 生+土豆块x3->加土豆, 开始计时 [已实现]
- 羊肉泡馍汤: 汤锅(加水)+馍->生, 开始计时 [已实现]
- 生面汤: 汤锅(加水)+生面->生, 开始计时 [已实现]
- 饺子汤: 汤锅(加水)+生饺子->生, 开始计时 [已实现]
- 生米锅: 汤锅(加水)+大米x64->生米锅, 开始计时 [已实现]
- 煮鸡蛋: 汤锅(加水)+鸡蛋堆->生, 开始计时 [已实现]
- 煮豆腐: 汤锅(加水)+豆浆->生, 开始计时 [已实现]

四、计时熬制(汤羹方块正下方是点燃炉灶才计时, 计时数据在汤羹本身; 炉灶移走暂停+提示;
   计时结束提示【已取消】, 只保留加料时的开始提示)
- 30秒/级: 胡萝卜牛肉汤(生->四分熟->八分熟->熟)3级; 瘦肉蛋花汤4级;
  猪蹄汤(加土豆->三分熟->七分熟->全熟)3级; 羊肉泡馍汤1级 [已实现]
- 60秒/级: 胡萝卜羊肉汤/胡萝卜排骨汤/清汤羊肉/蔬菜牛肉汤/蔬菜瘦肉汤/蔬菜乱炖/
  胡萝卜土豆牛骨汤/土豆胡萝卜炖羊肉/胡萝卜土豆羊排汤/胡萝卜鳕鱼汤/胡萝卜鲑鱼汤/
  蛋花鳕鱼汤/豆腐鲑鱼汤/生面汤/饺子汤(2级)/煮鸡蛋/煮豆腐 [已实现]
- 90秒/级: 蘑菇炖鸡3级; 生米锅1级到点后 熟米饭形态1/2/3 随机出一个 [已实现]

五、出锅(熟汤羹+木碗右键, 消耗1木碗, 获得碗装成品(掉落物), 锅变回 汤锅(空))
- 胡萝卜牛肉汤/胡萝卜羊肉汤/胡萝卜排骨汤/清汤羊肉/蔬菜牛肉汤/蔬菜瘦肉汤/蔬菜乱炖/
  胡萝卜土豆牛骨汤/土豆胡萝卜炖羊肉/胡萝卜土豆羊排汤/胡萝卜鳕鱼汤/胡萝卜鲑鱼汤/
  蛋花鳕鱼汤/瘦肉蛋花汤/豆腐鲑鱼汤/蘑菇炖鸡/猪蹄汤/羊肉泡馍汤/熟面条/饺子_碗装/
  蔬菜鱼片汤/碗装米饭(米饭_1/2/3)/美味饺子(全份)盘装(plate_30a) [已实现]
  (饺子汤_熟 除木碗盛 饺子_碗装 外, 手持盘子右键可捞出 美味饺子(全份)盘装) [已实现]
- 全部成品 归 tangguo_finished, 均【吃】, 右键吃 后续由总食用功能实现

六、取出(锅变回 汤锅(空), 掉落物形式)
- 熟米饭 空手右键 -> 饭团x16 (供寿司) [已实现]
- 煮鸡蛋(熟) 空手右键 -> 水煮蛋x9 [已实现]
- 煮豆腐(熟) + 菜刀右键(不消耗) -> 豆腐x16 [已实现]

七、汤面分组(food_02_rice_noodle)
- 手持汤锅成品菜 右键 熟面条(方块) -> 汤面, 消耗1成品菜, 掉落1个木碗
  (含 手持锅态汤(蛋花汤/蔬菜汤/蘑菇汤) 浇面, 同样掉落1个木碗) [已实现]
- 锅态汤面(香菇面/蔬菜面/蛋花面)走 itemUseOn 路径: 手持锅态汤方块右键熟面条表面,
  转换与取消放置在同一事件完成, 避免手持方块物品时引擎把"锅"放出来/掉出来 [已实现]
- 猪排蔬菜面=胡萝卜排骨汤+熟面条 / 羊排蔬菜面=胡萝卜土豆羊排汤+熟面条 /
  牛骨面=胡萝卜土豆牛骨汤+熟面条 / 小鸡炖蘑菇面=蘑菇炖鸡+熟面条 /
  胡萝卜蔬菜面=蔬菜乱炖+熟面条 / 胡萝卜蔬菜牛肉面=蔬菜牛肉汤+熟面条 /
  香菇面=蘑菇汤+熟面条 / 蔬菜鱼片面=蔬菜鱼片汤+熟面条 / 蔬菜面=蔬菜汤+熟面条 /
  蛋花面=蛋花汤+熟面条 / 鸡蛋面=水煮蛋+熟面条 [已实现]
- 蛋花面(加葱花): 蛋花面+葱花碎x1 -> 蛋花面(加葱花) [已实现]
- 猪排蔬菜面加水煮蛋(tonkotsu_ramen): 猪排蔬菜面+水煮蛋x1 -> 猪排蔬菜面加水煮蛋
  (原"猪排拉面"改名, 配方由 胡萝卜排骨汤+熟面条 改为 猪排蔬菜面+水煮蛋) [已实现]
- 所有汤面 均 空手右键直接吃, 归【吃】, 后续由总食用功能实现

【提示/体验】所有转换有提示(含消耗数量与下一步指引: "可继续加料 或 等计时结束变成X,
手持木碗出锅"); 数量不足/下方无点燃炉灶有提示并拦截; 右键冷却0.4秒; 手持方块物品右键
汤锅类功能方块取消默认放置(全局) [已实现]
【留后】各碗装成品/汤面 右键吃(总食用功能后续实现)

