Files
rtdd/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shaokao/BarbecueData.py
T
2026-09-29 16:25:50 +08:00

320 lines
11 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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(自动);烧烤设为True=下方
出现营火即自动开始烤制,无需右键启动
================================================================================
"""
BARBECUE_SWITCHES = [
# ============================================================
# 一、烧烤架(点火/灭火)
# ============================================================
# 【点火-打火石】烧烤架_1(无火) → 烧烤架_2(点燃),打火石不消耗
{
"source": "rtdd:barbecuegrill_0",
"item": "minecraft:flint_and_steel",
"target": "rtdd:barbecuegrill_1",
"consume": 0,
"type": "switch",
"tip": None,
"giveItem": None,
},
# 【点火-烈焰弹】烧烤架_1(无火) → 烧烤架_2(点燃),烈焰弹消耗1个
{
"source": "rtdd:barbecuegrill_0",
"item": "minecraft:fire_charge",
"target": "rtdd:barbecuegrill_1",
"consume": 1,
"type": "switch",
"tip": None,
"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": None,
},
# ============================================================
# 二、烤串(放烧烤架上,右键 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": None,
"giveItem": None,
},
{
"source": "rtdd:beefkebabs_0",
"item": None,
"target": "rtdd:beefkebabs_3",
"consume": 0,
"type": "switch",
"switchCd": 0.5,
"below": ["rtdd:barbecuegrill_1"],
"tip": None,
"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": None,
"giveItem": None,
},
{
"source": "rtdd:lambkebabs_0",
"item": None,
"target": "rtdd:lambkebabs_3",
"consume": 0,
"type": "switch",
"switchCd": 0.5,
"below": ["rtdd:barbecuegrill_1"],
"tip": None,
"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": None,
"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": None,
"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": None,
"giveItem": None,
},
{
"source": "rtdd:roastedmushrooms_1",
"item": None,
"target": "rtdd:roastedmushrooms_3",
"consume": 0,
"type": "switch",
"switchCd": 0.5,
"below": ["rtdd:barbecuegrill_1"],
"tip": None,
"giveItem": None,
},
# ============================================================
# 三、上杆(手持生食材右键 支杆b_34)
# ============================================================
# 【上烤鸡】支杆 + 生鸡肉(放置后方块物品) → 烤鸡(上烤架_生)
# 提示不说"开始烤制"——下方是不是营火由运行时判断(aotoStartRoast)。
{
"source": "rtdd:b_34",
"item": "rtdd:roastchickenplace_0",
"target": "rtdd:roastchicken_0",
"consume": 1,
"type": "switch",
"tip": None,
"giveItem": None,
},
# 【上烤乳猪】支杆 + 死猪 → 烤乳猪(生)
{
"source": "rtdd:b_34",
"item": "rtdd:dead_pig",
"target": "rtdd:roastpig_0",
"consume": 1,
"type": "switch",
"tip": None,
"giveItem": None,
},
# 【上烤鳕鱼】支杆 + 鳕鱼 → 烤鳕鱼(生)
{
"source": "rtdd:b_34",
"item": "minecraft:cod",
"target": "rtdd:grilledcod_0",
"consume": 1,
"type": "switch",
"tip": None,
"giveItem": None,
},
# 【上烤鲑鱼】支杆 + 鲑鱼 → 烤鲑鱼(生)
{
"source": "rtdd:b_34",
"item": "minecraft:salmon",
"target": "rtdd:grilled_fish",
"consume": 1,
"type": "switch",
"tip": None,
"giveItem": None,
},
# ============================================================
# 四、计时烤制(上杆后,支杆下方篝火,计时自动转换)
# ============================================================
# 【烤熟】烤鸡(上烤架_生) → 烤鸡(上烤架_熟),下方需篝火
# autoStart=True:下方出现营火即自动开始烤制,无需右键
# startTip=下方已是营火时的提示(aotoStartRoast 动态判断下发)
{
"source": "rtdd:roastchicken_0",
"item": None,
"target": "rtdd:roastchicken_1",
"consume": 0,
"type": "timer",
"time": 60,
"below": ["minecraft:campfire"],
"autoStart": True,
"startTip": None,
"doneTip": None,
"giveItem": None,
},
# 【烤熟】烤乳猪(生) → 烤乳猪(熟),下方需篝火
{
"source": "rtdd:roastpig_0",
"item": None,
"target": "rtdd:roastpig_1",
"consume": 0,
"type": "timer",
"time": 60,
"below": ["minecraft:campfire"],
"autoStart": True,
"startTip": None,
"doneTip": None,
"giveItem": None,
},
# 【烤熟】烤鳕鱼(生) → 烤鳕鱼(熟),下方需篝火
{
"source": "rtdd:grilledcod_0",
"item": None,
"target": "rtdd:grilledcod_1",
"consume": 0,
"type": "timer",
"time": 60,
"below": ["minecraft:campfire"],
"autoStart": True,
"startTip": None,
"doneTip": None,
"giveItem": None,
},
# 【烤熟】烤鲑鱼(生) → 烤鲑鱼(熟),下方需篝火
{
"source": "rtdd:grilled_fish",
"item": None,
"target": "rtdd:grilled_salmon",
"consume": 0,
"type": "timer",
"time": 60,
"below": ["minecraft:campfire"],
"autoStart": True,
"startTip": None,
"doneTip": None,
"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": None,
"giveItem": None,
},
# 【取下烤乳猪】烤乳猪(熟) → 支杆 + 掉落 烤乳猪(整只)
{
"source": "rtdd:roastpig_1",
"item": None,
"target": "rtdd:b_34",
"consume": 0,
"type": "switch",
"dropItem": [{"name": "rtdd:roastpignew_1", "count": 1}],
"tip": None,
"giveItem": None,
},
]
# ============================================================
# 六、手持物品右键"方块表面"生成规则(ServerItemUseOnEvent)
# ============================================================
# 原版生鸡肉右键放置"生鸡肉(放置后)"的规则已拆到
# xiangyemod/yuanbanfangzhi/YuanbanData.py(原版放置统一管理)。
# 本分类不再定义 ItemUseOn 规则。