# -*- coding: utf-8 -*- """ ================================================================================ 烧烤方块转换规则数据 ================================================================================ 所有"烧烤"(xy_barbecue) 分类下"右键方块→消耗物品→替换方块"的转换规则都在这里。 只被 BarbecueService 读取,FeatureDispatcher 通过方块名集合路由到 BarbecueService, 不会去查其他功能(动物养殖/做菜/工具切换)的数据库。 【烤法区分】 1) 烤串(牛肉串/羊肉串/烤蔬菜串/烤香菇串) → 放在"烧烤架"上烤,右键 2 次转换,不计时 → 牛肉串/羊肉串: 生=_1, 半熟=_0, 熟=_3(注意顺序与蔬菜串不同!) → 烤蔬菜串/烤香菇串: 生=_0, 半熟=_1, 熟=_3 2) 烤鸡/烤乳猪/烤鱼 → "上支杆"烤法: 支杆=b_34, 手持生食材右键支杆上杆 → 支杆下方放"篝火(原版营火 campfire)", 计时自动转换 → 烤熟后空手右键"取下" → 以掉落物形式获得整只成品 【食用部分说明】 烤熟成品(整只/整头)的"吃东西逐级分食"转换(如 整只→5/6→…→1/6) 由后续统一的"总食用功能"实现,本次不实现、不收录。 字段说明(与 AnimalData 一致): source: 被右键的方块ID(必填) item: 玩家手里必须拿的物品,None=空手也行 target: 替换成什么方块,"minecraft:air"=消失 consume: 消耗物品数量,0=不消耗(默认1) giveItem: 额外给玩家什么物品,None=不给 giveCount: giveItem 的数量,默认1 dropItem: 转换时以掉落物形式生成的物品列表,优先于 giveItem 格式: [{"name": "xxx", "count": N}, ...] type: "switch"=右键切换, "timer"=计时自动转换 time: 计时型转换需要多少秒(到时间自动替换方块) below: 计时型/烤串转换要求下方方块(如 ["minecraft:campfire"]) tip: 转换成功时给玩家的提示(绿色§a开头) startTip: 计时型规则启动计时时给玩家的提示(仅玩家主动触发时发) doneTip: 计时到点完成时给启动者的提示(如"烤鸡烤熟了!") autoStart: 放置时是否自动开始计时,默认True(自动);烧烤烤制设为False=必须右键激活 ================================================================================ """ BARBECUE_SWITCHES = [ # ============================================================ # 一、烧烤架(点火/灭火) # ============================================================ # 【点火-打火石】烧烤架_1(无火) → 烧烤架_2(点燃),打火石不消耗 { "source": "rtdd:barbecuegrill_0", "item": "minecraft:flint_and_steel", "target": "rtdd:barbecuegrill_1", "consume": 0, "type": "switch", "tip": "§a烧烤炉已点燃!", "giveItem": None, }, # 【点火-烈焰弹】烧烤架_1(无火) → 烧烤架_2(点燃),烈焰弹消耗1个 { "source": "rtdd:barbecuegrill_0", "item": "minecraft:fire_charge", "target": "rtdd:barbecuegrill_1", "consume": 1, "type": "switch", "tip": "§a烧烤炉已点燃!", "giveItem": None, }, # 【灭火】烧烤架_2(点燃) → 烧烤架_1(无火),消耗水桶,获得空桶 { "source": "rtdd:barbecuegrill_1", "item": "minecraft:water_bucket", "target": "rtdd:barbecuegrill_0", "consume": 1, "type": "switch", "giveItem": "minecraft:bucket", "giveCount": 1, "tip": "§a已用水扑灭烧烤炉", }, # ============================================================ # 二、烤串(放烧烤架上,右键 2 次转换,不计时) # 【重要】牛肉串/羊肉串的 生=_1 半熟=_0;蔬菜串/香菇串的 生=_0 半熟=_1 # ============================================================ # 牛肉串: 生(_1) → 半熟(_0) → 熟(_3) # 放在"已点燃的烧烤架"上方才能右键烤制(下方必须是 barbecuegrill_1) { "source": "rtdd:beefkebabs_1", "item": None, "target": "rtdd:beefkebabs_0", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§a牛肉串正在翻烤…", "giveItem": None, }, { "source": "rtdd:beefkebabs_0", "item": None, "target": "rtdd:beefkebabs_3", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§e牛肉串烤熟了!", "giveItem": None, }, # 羊肉串: 生(_1) → 半熟(_0) → 熟(_3) { "source": "rtdd:lambkebabs_1", "item": None, "target": "rtdd:lambkebabs_0", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§a羊肉串正在翻烤…", "giveItem": None, }, { "source": "rtdd:lambkebabs_0", "item": None, "target": "rtdd:lambkebabs_3", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§e羊肉串烤熟了!", "giveItem": None, }, # 烤蔬菜串: 生(_0) → 半熟(_1) → 熟(_3) { "source": "rtdd:roasted_vegetables_0", "item": None, "target": "rtdd:roasted_vegetables_1", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§a烤蔬菜串正在翻烤…", "giveItem": None, }, { "source": "rtdd:roasted_vegetables_1", "item": None, "target": "rtdd:roasted_vegetables_3", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§e烤蔬菜串烤熟了!", "giveItem": None, }, # 烤香菇串: 生(_0) → 半熟(_1) → 熟(_3) { "source": "rtdd:roastedmushrooms_0", "item": None, "target": "rtdd:roastedmushrooms_1", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§a烤香菇串正在翻烤…", "giveItem": None, }, { "source": "rtdd:roastedmushrooms_1", "item": None, "target": "rtdd:roastedmushrooms_3", "consume": 0, "type": "switch", "switchCd": 0.5, "below": ["rtdd:barbecuegrill_1"], "tip": "§e烤香菇串烤熟了!", "giveItem": None, }, # ============================================================ # 三、上杆(手持生食材右键 支杆b_34) # ============================================================ # 【上烤鸡】支杆 + 生鸡肉(放置后方块物品) → 烤鸡(上烤架_生) { "source": "rtdd:b_34", "item": "rtdd:roastchickenplace_0", "target": "rtdd:roastchicken_0", "consume": 1, "type": "switch", "tip": "§a烤鸡已上杆,右键开始烤制", "giveItem": None, }, # 【上烤乳猪】支杆 + 死猪 → 烤乳猪(生) { "source": "rtdd:b_34", "item": "rtdd:dead_pig", "target": "rtdd:roastpig_0", "consume": 1, "type": "switch", "tip": "§a烤乳猪已上杆,右键开始烤制", "giveItem": None, }, # 【上烤鳕鱼】支杆 + 鳕鱼 → 烤鳕鱼(生) { "source": "rtdd:b_34", "item": "minecraft:cod", "target": "rtdd:grilledcod_0", "consume": 1, "type": "switch", "tip": "§a烤鳕鱼已上杆,右键开始烤制", "giveItem": None, }, # 【上烤鲑鱼】支杆 + 鲑鱼 → 烤鲑鱼(生) { "source": "rtdd:b_34", "item": "minecraft:salmon", "target": "rtdd:grilled_fish", "consume": 1, "type": "switch", "tip": "§a烤鲑鱼已上杆,右键开始烤制", "giveItem": None, }, # ============================================================ # 四、计时烤制(上杆后,支杆下方篝火,计时自动转换) # ============================================================ # 【烤熟】烤鸡(上烤架_生) → 烤鸡(上烤架_熟),下方需篝火,约60秒 # autoStart=False:放置/上杆后必须右键一下才开始烤制 { "source": "rtdd:roastchicken_0", "item": None, "target": "rtdd:roastchicken_1", "consume": 0, "type": "timer", "time": 60, "below": ["minecraft:campfire"], "autoStart": False, "startTip": "§e开始烤制烤鸡,约60秒…", "doneTip": "§e烤鸡烤熟了!", "giveItem": None, }, # 【烤熟】烤乳猪(生) → 烤乳猪(熟),下方需篝火,约60秒 { "source": "rtdd:roastpig_0", "item": None, "target": "rtdd:roastpig_1", "consume": 0, "type": "timer", "time": 60, "below": ["minecraft:campfire"], "autoStart": False, "startTip": "§e开始烤制烤乳猪,约60秒…", "doneTip": "§e烤乳猪烤熟了!", "giveItem": None, }, # 【烤熟】烤鳕鱼(生) → 烤鳕鱼(熟),下方需篝火,约60秒 { "source": "rtdd:grilledcod_0", "item": None, "target": "rtdd:grilledcod_1", "consume": 0, "type": "timer", "time": 60, "below": ["minecraft:campfire"], "autoStart": False, "startTip": "§e开始烤制烤鳕鱼,约60秒…", "doneTip": "§e烤鳕鱼烤熟了!", "giveItem": None, }, # 【烤熟】烤鲑鱼(生) → 烤鲑鱼(熟),下方需篝火,约60秒 { "source": "rtdd:grilled_fish", "item": None, "target": "rtdd:grilled_salmon", "consume": 0, "type": "timer", "time": 60, "below": ["minecraft:campfire"], "autoStart": False, "startTip": "§e开始烤制烤鲑鱼,约60秒…", "doneTip": "§e烤鲑鱼烤熟了!", "giveItem": None, }, # ============================================================ # 五、取下(空手右键烤熟方块,支杆恢复,成品以掉落物获得) # ============================================================ # 【取下烤鸡】烤鸡(上烤架_熟) → 支杆 + 掉落 烤鸡(整只) { "source": "rtdd:roastchicken_1", "item": None, "target": "rtdd:b_34", "consume": 0, "type": "switch", "dropItem": [{"name": "rtdd:roast_chickenplace_1", "count": 1}], "tip": "§a取下了烤鸡(整只)", "giveItem": None, }, # 【取下烤乳猪】烤乳猪(熟) → 支杆 + 掉落 烤乳猪(整只) { "source": "rtdd:roastpig_1", "item": None, "target": "rtdd:b_34", "consume": 0, "type": "switch", "dropItem": [{"name": "rtdd:roastpignew_1", "count": 1}], "tip": "§a取下了烤乳猪(整只)", "giveItem": None, }, ] # ============================================================ # 六、手持物品右键"方块表面"生成规则(ServerItemUseOnEvent) # ============================================================ # 原版生鸡肉右键放置"生鸡肉(放置后)"的规则已拆到 # xiangyemod/yuanbanfangzhi/YuanbanData.py(原版放置统一管理)。 # 本分类不再定义 ItemUseOn 规则。