Files
rtdd/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/ceshi/ToolData.py
T
2026-07-23 16:20:34 +08:00

272 lines
9.9 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 -*-
"""
工具配置数据库(ToolData.py)
============================
独立于 RecipeData.py,专门管理烹饪工具的配置信息:
- 每个工具的激活方式(用什么物品右键激活)
- 底座要求(下面必须放什么方块才能工作)
- 哪些工具本身可以作为底座(发热源)
- 工具的状态切换链
与 RecipeData.py 的关系:
RecipeData.py = 食材配方(什么食材+什么锅 = 什么菜)
ToolData.py = 工具配置(锅怎么激活、需要什么底座)
CookingService 会同时加载这两个数据库,做菜时先检查工具配置,再查配方。
"""
# ============================================================
# 一、工具激活/底座配置
# ============================================================
# 格式:工具源方块 -> {激活物品, 底座列表, 激活后目标, 其他配置}
# 当玩家用指定物品右键工具时,工具从"源方块"变成"目标方块"
# 如果底座列表不为空,工具下面必须有一个底座方块才能激活
TOOL_CONFIG = {
# ==================== 炒锅 ====================
"rtdd:wok": {
"name": "炒锅",
"activate_item": "rtdd:spatula_oil", # 用带油锅铲激活
"check_oil": True, # 需要检查物品含油标签
"base_blocks": [ # 下面必须放这些方块之一
"minecraft:campfire", # 营火
"rtdd:barbecuegrill_1", # 点火的烧烤炉
"minecraft:soul_campfire", # 灵魂营火
],
"target": "rtdd:oilpan", # 激活后变成煎锅
"need_fire": True, # 需要火源
"is_heat_source": False, # 不是发热源
},
# ==================== 煎锅 ====================
"rtdd:oilpan": {
"name": "煎锅",
"activate_item": "rtdd:spatula_oil", # 用带油锅铲激活
"check_oil": True,
"base_blocks": [
"minecraft:campfire",
"rtdd:barbecuegrill_1",
"minecraft:soul_campfire",
],
"target": "rtdd:oilpan", # 激活后不变(只是上油标记)
"need_fire": True,
"is_heat_source": False,
},
# ==================== 油锅 ====================
"rtdd:oilpot_0": {
"name": "油锅",
"activate_item": "rtdd:oilcan", # 用油罐直接激活
"check_oil": False, # 不需要检查物品含油
"base_blocks": [
"minecraft:campfire",
"rtdd:barbecuegrill_1",
"minecraft:soul_campfire",
"minecraft:magma", # 岩浆块也可以
],
"target": "rtdd:oilpot_1", # 激活后变成倒了油的油锅
"need_fire": True,
"is_heat_source": False,
},
# ==================== 汤锅 ====================
"rtdd:potsimmering_0": {
"name": "汤锅",
"activate_item": "minecraft:water_bucket", # 用水桶加水
"check_oil": False,
"base_blocks": [
"minecraft:campfire",
"rtdd:barbecuegrill_1",
"minecraft:soul_campfire",
"minecraft:magma",
],
"target": "rtdd:potsimmeringwater", # 激活后变成加了水的汤锅
"need_fire": True,
"is_heat_source": False,
},
# ==================== 蒸笼 ====================
"rtdd:steamer": {
"name": "蒸笼",
"activate_item": "rtdd:steamercover", # 用蒸笼盖盖盖
"check_oil": False,
"base_blocks": [
"minecraft:campfire",
"rtdd:barbecuegrill_1",
],
"target": "rtdd:steamer", # 盖盖后不变(只是标记已盖盖)
"need_fire": True,
"is_heat_source": False,
},
# ==================== 烧烤炉 ====================
"rtdd:barbecuegrill_0": {
"name": "烧烤炉",
"activate_item": "minecraft:flint_and_steel", # 打火石点火
"check_oil": False,
"base_blocks": [], # 不需要底座(自己就是发热源)
"target": "rtdd:barbecuegrill_1", # 点火后变成烧烤炉_1
"need_fire": False,
"is_heat_source": False, # 0状态还没点火,不是发热源
},
# ==================== 搅拌器 ====================
"rtdd:beater": {
"name": "搅拌器",
"activate_item": None, # 不需要激活,直接放食材
"check_oil": False,
"base_blocks": [], # 手工工具,不需要底座
"target": None,
"need_fire": False,
"is_heat_source": False,
},
# ==================== 榨汁机 ====================
"rtdd:juicer_0": {
"name": "榨汁机",
"activate_item": None,
"check_oil": False,
"base_blocks": [],
"target": None,
"need_fire": False,
"is_heat_source": False,
},
# ==================== 丸子机 ====================
"rtdd:meatballmaker_0": {
"name": "丸子机",
"activate_item": None,
"check_oil": False,
"base_blocks": [],
"target": None,
"need_fire": False,
"is_heat_source": False,
},
# ==================== 酒桶 ====================
"rtdd:wine_barrel": {
"name": "酒桶",
"activate_item": None,
"check_oil": False,
"base_blocks": [],
"target": None,
"need_fire": False,
"is_heat_source": False,
},
# ==================== 面粉方块 ====================
"rtdd:farineblock": {
"name": "面粉方块",
"activate_item": None,
"check_oil": False,
"base_blocks": [],
"target": None,
"need_fire": False,
"is_heat_source": False,
},
}
# ============================================================
# 二、发热源配置(哪些方块可以作为底座)
# ============================================================
# 这些方块放在锅下面,锅就能工作
HEAT_SOURCES = {
# 原版方块
"minecraft:campfire": {
"name": "营火",
"heat_level": 1, # 热度等级(1=普通)
"supports": [ # 能支撑哪些厨具
"炒锅", "煎锅", "油锅", "汤锅", "蒸笼"
],
},
"minecraft:soul_campfire": {
"name": "灵魂营火",
"heat_level": 2, # 热度等级(2=较强)
"supports": [
"炒锅", "煎锅", "油锅", "汤锅", "蒸笼"
],
},
"minecraft:magma": {
"name": "岩浆块",
"heat_level": 1,
"supports": [
"油锅", "汤锅"
],
},
# 模组工具方块(激活后可以发热)
"rtdd:barbecuegrill_1": {
"name": "烧烤炉(点火)",
"heat_level": 2,
"supports": [
"炒锅", "煎锅", "油锅", "汤锅", "蒸笼"
],
},
"rtdd:oven": {
"name": "烤炉",
"heat_level": 3, # 最高热度
"supports": [
"炒锅", "煎锅", "油锅", "汤锅", "蒸笼", "烤制"
],
},
}
# ============================================================
# 三、工具状态切换链(完整的状态流转)
# ============================================================
# 格式:工具名 -> 状态列表(从初始到结束)
TOOL_STATE_CHAINS = {
"炒锅": {
"chain": ["rtdd:wok", "rtdd:oilpan", "rtdd:wok"],
"description": "空炒锅 -> 上油(煎锅) -> 做完菜 -> 空炒锅",
},
"油锅": {
"chain": ["rtdd:oilpot_0", "rtdd:oilpot_1", "rtdd:oilpot_0"],
"description": "空油锅 -> 倒油 -> 炸食材 -> 空油锅",
},
"汤锅": {
"chain": ["rtdd:potsimmering_0", "rtdd:potsimmeringwater", "rtdd:potsimmering_0"],
"description": "空汤锅 -> 加水 -> 炖食材 -> 空汤锅",
},
"蒸笼": {
"chain": ["rtdd:steamer", "rtdd:steamer", "rtdd:steamer"],
"description": "蒸笼 -> 盖盖 -> 蒸食材 -> 蒸笼(状态不变,通过标记控制)",
},
"烧烤炉": {
"chain": ["rtdd:barbecuegrill_0", "rtdd:barbecuegrill_1", "rtdd:barbecuegrill_0"],
"description": "烧烤炉 -> 点火 -> 烤食材 -> 烧烤炉",
},
"榨汁机": {
"chain": ["rtdd:juicer_0", "rtdd:juicer_1", "rtdd:juicer_2",
"rtdd:juicer_3", "rtdd:juicer_4", "rtdd:juicer_0"],
"description": "空榨汁机 -> 放水果 -> 摇1 -> 摇2 -> 摇3 -> 取果汁 -> 空榨汁机",
},
"丸子机": {
"chain": ["rtdd:meatballmaker_0", "rtdd:meatballmaker_1", "rtdd:meatballmaker_2",
"rtdd:meatballmaker_3", "rtdd:meatballmaker_4", "rtdd:meatballmaker_5",
"rtdd:meatballmaker_0"],
"description": "空丸子机 -> 放碎肉 -> 摇1 -> 摇2 -> 摇3 -> 摇4 -> 取肉丸 -> 空丸子机",
},
"酒桶": {
"chain": ["rtdd:wine_barrel", "b_81", "b_238", "rtdd:wine_barrel"],
"description": "酒桶 -> 放原料 -> 发酵 -> 取酒 -> 酒桶",
},
}
# ============================================================
# 四、工具分类(快速查询)
# ============================================================
# 需要火源的厨具(必须放在发热底座上)
NEED_FIRE_TOOLS = [k for k, v in TOOL_CONFIG.items() if v.get("need_fire")]
# 手工工具(不需要底座,放哪里都能用)
MANUAL_TOOLS = [k for k, v in TOOL_CONFIG.items() if not v.get("need_fire") and not v.get("is_heat_source")]
# 发热源工具(激活后可以作为底座)
HEAT_SOURCE_TOOLS = [k for k, v in TOOL_CONFIG.items() if v.get("is_heat_source")]
# 所有合法底座方块(原版+模组)
ALL_BASE_BLOCKS = list(HEAT_SOURCES.keys())