市场贸易实现 bug修复

This commit is contained in:
wenhe committed 2026-09-03 14:09:44 +08:00
1 parent 1f329f8b4c
commit cae9bcb19e
25 files changed
+1300 -187

No files matched your search

+107
View File
@@ -0,0 +1,107 @@
========================================
【市场贸易】(xy_market) 转化关系
========================================
说明:
- 分为4个分组: 条箱 / 货桶 / 售卖盒 / 摊位设施
- 条箱/货桶/售卖盒 均为"手持对应物品右键放入 → 变为对应容器", 可空手右键取出取回
- 放入消耗: 除 南瓜/西瓜 消耗1个原版方块(南瓜方块/西瓜方块)外, 其余消耗32个对应物品
- 布料两个(售卖盒(黄绿/棕色))已按标注: 名字加"禁用" 调到 禁用(xy_jinyong)标签, 不参与本分类转换
- 摊位设施静态, 仅悬赏纸有循环转换
========================================
一、条箱 (手持对应物品右键放入, 消耗32)
========================================
对应方块: woodenbox_0(条箱_空)、woodenbox_1(条箱(苹果))、woodenbox_2(条箱(胡萝卜))、
woodenbox_3(条箱(土豆))、woodenbox_4(条箱(桃子))、woodenbox_5(条箱(橘子))、
woodenbox_6(条箱(鳕鱼))、woodenbox_7(条箱(鲑鱼))
机制: 手持对应物品右键 条箱(空 woodenbox_0), 消耗32个对应物品, 变为对应条箱
1. 条箱(空) + 苹果 -> 条箱(苹果)
转换条件:[手持 苹果 右键 进行转换, 消耗32个苹果]
2. 条箱(空) + 胡萝卜 -> 条箱(胡萝卜)
转换条件:[手持 胡萝卜 右键 进行转换, 消耗32个胡萝卜]
3. 条箱(空) + 土豆 -> 条箱(土豆)
转换条件:[手持 土豆 右键 进行转换, 消耗32个土豆]
4. 条箱(空) + 桃子 -> 条箱(桃子)
转换条件:[手持 桃子 右键 进行转换, 消耗32个桃子]
5. 条箱(空) + 橘子 -> 条箱(橘子)
转换条件:[手持 橘子 右键 进行转换, 消耗32个橘子]
6. 条箱(空) + 鳕鱼 -> 条箱(鳕鱼)
转换条件:[手持 鳕鱼 右键 进行转换, 消耗32个鳕鱼]
7. 条箱(空) + 鲑鱼 -> 条箱(鲑鱼)
转换条件:[手持 鲑鱼 右键 进行转换, 消耗32个鲑鱼]
【取出】条箱(苹果/胡萝卜/土豆/桃子/橘子/鳕鱼/鲑鱼) -> 条箱(空)
转换条件:[空手右键 进行转换, 取回对应物品]
机制: 空手右键装满的条箱, 变回空条箱, 以掉落物形式取回 32个对应物品
========================================
二、货桶 (手持对应物品右键放入, 消耗32)
========================================
对应方块: fishbucket_0(货桶_空)、fishbucket_1(货桶(鳕鱼))、fishbucket_2(货桶(鲑鱼))、
carrotbarrel(货桶(胡萝卜))、potatobarrel(货桶(土豆))、peachbarrel(货桶(桃子))、
orangebarrel(货桶(橘子))、applebox(货桶(苹果))
机制: 手持对应物品右键 货桶(空 fishbucket_0), 消耗32个对应物品, 变为对应货桶
1. 货桶(空) + 鳕鱼 -> 货桶(鳕鱼)
转换条件:[手持 鳕鱼 右键 进行转换, 消耗32个鳕鱼]
2. 货桶(空) + 鲑鱼 -> 货桶(鲑鱼)
转换条件:[手持 鲑鱼 右键 进行转换, 消耗32个鲑鱼]
3. 货桶(空) + 胡萝卜 -> 货桶(胡萝卜)
转换条件:[手持 胡萝卜 右键 进行转换, 消耗32个胡萝卜]
4. 货桶(空) + 土豆 -> 货桶(土豆)
转换条件:[手持 土豆 右键 进行转换, 消耗32个土豆]
5. 货桶(空) + 桃子 -> 货桶(桃子)
转换条件:[手持 桃子 右键 进行转换, 消耗32个桃子]
6. 货桶(空) + 橘子 -> 货桶(橘子)
转换条件:[手持 橘子 右键 进行转换, 消耗32个橘子]
7. 货桶(空) + 苹果 -> 货桶(苹果)
转换条件:[手持 苹果 右键 进行转换, 消耗32个苹果]
【取出】货桶(鳕鱼/鲑鱼/胡萝卜/土豆/桃子/橘子/苹果) -> 货桶(空)
转换条件:[空手右键 进行转换, 取回对应物品]
机制: 空手右键装满的货桶, 变回空货桶, 以掉落物形式取回 32个对应物品
========================================
三、售卖盒 (手持对应物品右键放入)
========================================
对应方块: sellingboxes(售卖盒_空)、orangebox(售卖盒(橘子))、peachbox(售卖盒(桃子))、
sales_box_cod(售卖盒(鳕鱼盒))、sales_box_carrot(售卖盒(胡萝卜))、sales_box_bread(售卖盒(面包))、
sales_box_apple(售卖盒(苹果))、sales_box_pumpkin(售卖盒(南瓜))、sales_box_watermelon(售卖盒(西瓜))、
sales_box_potato(售卖盒(土豆))
机制: 手持对应物品右键 售卖盒(空 sellingboxes), 除南瓜/西瓜消耗1个原版方块外, 其余消耗32个对应物品, 变为对应售卖盒
1. 售卖盒(空) + 橘子 -> 售卖盒(橘子)
转换条件:[手持 橘子 右键 进行转换, 消耗32个橘子]
2. 售卖盒(空) + 桃子 -> 售卖盒(桃子)
转换条件:[手持 桃子 右键 进行转换, 消耗32个桃子]
3. 售卖盒(空) + 鳕鱼 -> 售卖盒(鳕鱼盒)
转换条件:[手持 鳕鱼 右键 进行转换, 消耗32个鳕鱼]
4. 售卖盒(空) + 胡萝卜 -> 售卖盒(胡萝卜)
转换条件:[手持 胡萝卜 右键 进行转换, 消耗32个胡萝卜]
5. 售卖盒(空) + 面包 -> 售卖盒(面包)
转换条件:[手持 面包 右键 进行转换, 消耗32个面包]
6. 售卖盒(空) + 苹果 -> 售卖盒(苹果)
转换条件:[手持 苹果 右键 进行转换, 消耗32个苹果]
7. 售卖盒(空) + 南瓜(原版方块) -> 售卖盒(南瓜)
转换条件:[手持 原版南瓜方块 右键 进行转换, 消耗1个原版南瓜方块]
8. 售卖盒(空) + 西瓜(原版方块) -> 售卖盒(西瓜)
转换条件:[手持 原版西瓜方块 右键 进行转换, 消耗1个原版西瓜方块]
9. 售卖盒(空) + 土豆 -> 售卖盒(土豆)
转换条件:[手持 土豆 右键 进行转换, 消耗32个土豆]
【取出】售卖盒(橘子/桃子/鳕鱼/胡萝卜/面包/苹果/土豆) -> 售卖盒(空)
转换条件:[空手右键 进行转换, 取回对应物品]
机制: 空手右键装满的售卖盒, 变回空售卖盒, 以掉落物形式取回 32个对应物品
- 南瓜/西瓜盒: 空手右键 → 空售卖盒 + 取回 1个原版方块(南瓜方块/西瓜方块)
【已禁用】售卖盒(黄绿布料 clothbox_1)、售卖盒(棕色布料 clothbox_2)
- 按标注: 名字后面加"禁用", 调到 禁用(xy_jinyong) 标签, 不参与市场贸易转换
========================================
四、摊位设施 (静态 + 悬赏纸循环)
========================================
1. 静态摊位设施(无转换)
- b_4(摊位台)、menus(餐牌(菜单))、vending_desk(售货台) 为静态, 无转换
2. 悬赏纸循环转换 (空手右键逐级切换)
- bountypaper(农贸清单/悬赏纸) -> bountypaper_1(悬赏纸_1) -> bountypaper_2(悬赏纸_2) -> bountypaper(农贸清单/悬赏纸)
转换条件:[右键 进行转换, 循环切换]
机制: 空手右键悬赏纸, 逐级切换到下一张, 末尾回到农贸清单
File renamed without changes.
+39
View File
@@ -88,6 +88,8 @@
- 事件由 FeatureDispatcher 统一监听路由 (blockOwner/itemUseOnOwner/timerOwner) [已实现]
- 右键服务通过 FeatureDispatcher.startTimerFor 把计时启动转发给计时服务 [已实现]
- 计时用绝对时间戳写入方块实体数据, 支持退出/重启后继续计时 [已实现]
- 原版放置(手持原版生鸡肉/鲑鱼/鳕鱼右键方块表面放置对应方块)已拆到独立目录
xiangyemod/yuanbanfangzhi (YuanbanData/YuanbanService), 从烧烤/死亡生物中剔除 [已重构]
########################################
@@ -127,6 +129,21 @@
- 死鳕鱼: 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标注暂时不搞
@@ -146,3 +163,25 @@
三、静态手办 (无转换)
- 赞助者手办_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) 标签, 移出市场分组, 旧切换规则已移除
-4
View File
@@ -59,10 +59,6 @@
(死牛 dead_cow / 死猪 dead_pig / 死羊 dead_sheep / 死鱿鱼 deadsquida / 村民尸体 dead_villager)
- 未做原因: 转化文档 todo 已标注"暂时不搞" (死亡生物转化关系.txt 末尾 todo)
二、死鲑鱼/死鳕鱼切块掉落物数量【已实现, 仅记录原设计】
- 死鲑鱼: 4刀共得4份生鱼片; 死鳕鱼: 3刀共得3份生鱼片; 死鱿鱼: 切须得5~6个鱿鱼须
- 说明: 均已按批注实现, 此处仅为对照记录, 无未做项
########################################
【方块工具】(xy_blocktools)
-59
View File
@@ -1,59 +0,0 @@
========================================
【市场贸易】(xy_market) 转化关系
========================================
说明:
- 分为4个分组: 条箱 / 货桶 / 售卖盒 / 摊位设施
- 只有售卖盒与鲑鱼箱之间存在明确交互转换
- 条箱/货桶多为静态容器方块
- 【待确认】表示该步骤所需的具体操作尚未最终确定
========================================
一、售卖盒 ↔ 鲑鱼箱
========================================
1. 售卖盒(黄绿布料) -> 鲑鱼箱
转换条件:[手持 鲑鱼 右键 进行转换,消耗1条]
机制: 手持鲑鱼右键,消耗1条,放入鲑鱼变为鲑鱼箱
2. 售卖盒(棕色布料) -> 鲑鱼箱
转换条件:[手持 鲑鱼 右键 进行转换,消耗1条]
机制: 手持鲑鱼右键,消耗1条,放入鲑鱼变为鲑鱼箱
3. 鲑鱼箱 -> 售卖盒(棕色布料)
转换条件:[右键 进行转换,同时获得鲑鱼]
机制: 空手右键,取回鲑鱼,变回售卖盒(棕色布料)
========================================
二、条箱(静态容器)
========================================
4. 条箱(空) -> 条箱(苹果) / 条箱(胡萝卜) / 条箱(土豆) / 条箱(桃子) / 条箱(橘子) / 条箱(鳕鱼) / 条箱(鲑鱼)
转换条件:【待确认】手持对应物品右键放入?或为静态装饰方块
机制: 手持对应物品右键,放入后变为对应条箱(机制待确认)
woodenbox_0(条箱)、woodenbox_1(条箱(苹果))、woodenbox_2(条箱(胡萝卜))、woodenbox_3(条箱(土豆))、
woodenbox_4(条箱(桃子))、woodenbox_5(条箱(橘子))、woodenbox_6(条箱(鳕鱼))、woodenbox_7(条箱(鲑鱼))
========================================
三、货桶(静态容器)
========================================
5. 货桶(空) -> 货桶(鳕鱼) / 货桶(鲑鱼) / 货桶(胡萝卜) / 货桶(土豆) / 货桶(桃子) / 货桶(橘子) / 货桶(苹果)
转换条件:【待确认】手持对应物品右键放入?或为静态装饰方块
机制: 手持对应物品右键,放入后变为对应货桶(机制待确认)
fishbucket_0(货桶)、fishbucket_1(货桶(鳕鱼))、fishbucket_2(货桶(鲑鱼))、carrotbarrel(货桶(胡萝卜))、
potatobarrel(货桶(土豆))、peachbarrel(货桶(桃子))、orangebarrel(货桶(橘子))、applebox(货桶(苹果))
========================================
四、售卖盒(其他静态售卖盒)
========================================
sellingboxes(售卖盒)、orangebox(售卖盒(橘子))、peachbox(售卖盒(桃子))、
sales_box_cod(售卖盒(鳕鱼盒))、sales_box_carrot(售卖盒(胡萝卜))、sales_box_bread(售卖盒(面包))、
sales_box_apple(售卖盒(苹果))、sales_box_pumpkin(售卖盒(南瓜))、sales_box_watermelon(售卖盒(西瓜))、
sales_box_potato(售卖盒(土豆))
以上售卖盒方块无明确转换关系【待确认】
========================================
五、摊位设施(静态)
========================================
b_4(摊位台)、bountypaper(农贸清单(悬赏纸))、bountypaper_1(悬赏纸_1)、bountypaper_2(悬赏纸_2)、
menus(餐牌(菜单))、vending_desk(售货台)
以上为摊位静态设施,无转换关系