469 lines
15 KiB
Python
469 lines
15 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
================================================================================
|
|
死亡生物方块转换规则数据
|
|
================================================================================
|
|
所有"死亡生物"(xy_deadmob) 分类下"右键方块→消耗物品→替换方块/掉落物品"的转换规则
|
|
都在这里。只被 DeadmobService / DeadmobTimerService 读取,FeatureDispatcher 通过
|
|
方块名集合路由到对应服务,不会去查其他功能的数据库。
|
|
|
|
【流程】
|
|
1) 挂肉钩挂放: 手持 死牛/死猪/死羊/原版鲑鱼/原版鳕鱼 右键 空钩(meathook)
|
|
→ 挂上对应尸体(消耗1个)。鱼可挂两条。
|
|
2) 取下退回: 切肉开始前, 空手右键 整只/整头 → 空钩 + 掉落回尸体(不可逆前可退)
|
|
3) 挂肉钩切肉: 手持 菜刀(cleaver) 右键 逐级切割(不可逆), 以掉落物形式获得对应部位肉
|
|
- 切肉每刀掉落数量: 常规肉 2~3 个; 四肢固定 4 个; 牛头骨固定 1 个; 去皮额外掉原版皮革4~6
|
|
- 牛: 去头去皮掉牛头骨1+原版牛肉4~5+皮革4~6 → 去四肢掉牛腿肉4 → 去肉掉牛肋2~3+牛里脊2~3+原版牛肉4~5 → 空钩掉碎肉2~3+原版牛肉4~5
|
|
- 猪: 去皮掉五花肉2~3+原版生猪排4~5+皮革4~6 → 去四肢掉猪蹄4 → 去肉掉猪肋排2~3+原版生猪排4~5 → 空钩掉碎肉2~3+原版生猪排4~5
|
|
- 羊: 去皮掉羊小排2~3+原版生羊肉4~5+皮革4~6 → 去四肢掉羊腿4 → 去肉掉羊里脊2~3+原版生羊肉4~5 → 空钩掉碎肉2~3+原版生羊肉4~5
|
|
4) 鱼晾干(计时): 鲑鱼/鳕鱼挂上后自动计时约300秒晾干(挂肉钩自动开始, autoStart=True)
|
|
- 鲑鱼: 挂一条→干一条; 挂两条→干两条
|
|
- 鳕鱼: 挂两条→干两条
|
|
5) 取鱼干: 空手右键 干鱼钩 → 以掉落物形式获得 鱼干(thedriedfish)
|
|
6) 死鱼/死鱿鱼切块(手持菜刀, 掉落物):
|
|
- 死鲑鱼: 共四刀, 每刀掉1份生鱼片(sashimi), 共4份 → 方块消失
|
|
- 死鳕鱼: 共三刀, 每刀掉1份生鱼片(sashimi), 共3份 → 方块消失
|
|
- 死鱿鱼: 一刀切须, 掉5~6个鱿鱼须(rawsquidwhiskersr) → 变为 死鱿鱼(切掉鱿鱼须)
|
|
|
|
【尸体生成机制】(玩家杀死对应生物生成尸体) 已在txt标注"暂时不搞", 本次不实现。
|
|
|
|
字段说明(与 AnimalData/BarbecueData 一致):
|
|
source: 被右键的方块ID(必填)
|
|
item: 玩家手里必须拿的物品, None=空手
|
|
target: 替换成什么方块, "minecraft:air"=消失
|
|
consume: 消耗物品数量, 0=不消耗(默认1)
|
|
dropItem: 转换时以掉落物形式生成的物品列表(优先于 giveItem)
|
|
格式: [{"name": "xxx", "count": N}, ...]
|
|
count 支持范围写法 (min,max), 服务端随机取整(如 (2,3)=2~3)
|
|
type: "switch"=右键切换, "timer"=计时自动转换
|
|
time: 计时型转换需要多少秒
|
|
tip: 转换成功时给玩家的提示(绿色§a开头)
|
|
doneTip: 计时到点完成时给启动者的提示
|
|
autoStart: 放置时是否自动开始计时, 默认True(鱼挂上自动晾干)
|
|
================================================================================
|
|
"""
|
|
|
|
DEADMOB_SWITCHES = [
|
|
|
|
# ============================================================
|
|
# 一、挂肉钩 - 挂放尸体(手持尸体右键空钩, 消耗1个)
|
|
# ============================================================
|
|
{
|
|
"source": "rtdd:meathook",
|
|
"item": "rtdd:dead_cow",
|
|
"target": "rtdd:cow_0",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:meathook",
|
|
"item": "rtdd:dead_pig",
|
|
"target": "rtdd:pig_0",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:meathook",
|
|
"item": "rtdd:dead_sheep",
|
|
"target": "rtdd:sheep",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# 挂鲑鱼(原版salmon): 空钩→一条→两条
|
|
{
|
|
"source": "rtdd:meathook",
|
|
"item": "minecraft:salmon",
|
|
"target": "rtdd:hang_meat_hooks_1",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:hang_meat_hooks_1",
|
|
"item": "minecraft:salmon",
|
|
"target": "rtdd:hang_meat_hooks_2",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# 挂鳕鱼(原版cod): 空钩→一条→两条
|
|
{
|
|
"source": "rtdd:meathook",
|
|
"item": "minecraft:cod",
|
|
"target": "rtdd:meathookcod_1",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:meathookcod_1",
|
|
"item": "minecraft:cod",
|
|
"target": "rtdd:meathookcod_2",
|
|
"consume": 1,
|
|
"type": "switch",
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
|
|
# ============================================================
|
|
# 二、取下退回(未切割前, 空手右键 整只/整头 → 空钩 + 掉落回尸体)
|
|
# ============================================================
|
|
{
|
|
"source": "rtdd:cow_0",
|
|
"item": None,
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:dead_cow", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:pig_0",
|
|
"item": None,
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:dead_pig", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:sheep",
|
|
"item": None,
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:dead_sheep", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
|
|
# ============================================================
|
|
# 三、挂肉钩切肉(手持 菜刀cleaver, 掉落物, 数量随机 2~3 / 四肢固定4)
|
|
# ============================================================
|
|
# ---- 牛(不可逆) ----
|
|
{
|
|
"source": "rtdd:cow_0",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:cow_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:cow_skull", "count": 1},
|
|
{"name": "minecraft:beef", "count": (4, 5)},
|
|
{"name": "minecraft:leather", "count": (4, 6)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:cow_1",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:cow_2",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:legcow", "count": 4}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:cow_2",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:cow_3",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:costillavacaes", "count": (2, 3)},
|
|
{"name": "rtdd:beef_tenderloin", "count": (2, 3)},
|
|
{"name": "minecraft:beef", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:cow_3",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:crushedmeat", "count": (2, 3)},
|
|
{"name": "minecraft:beef", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# ---- 猪(不可逆) ----
|
|
{
|
|
"source": "rtdd:pig_0",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:pig_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:porkloins", "count": (2, 3)},
|
|
{"name": "minecraft:porkchop", "count": (4, 5)},
|
|
{"name": "minecraft:leather", "count": (4, 6)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:pig_1",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:pig_2",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:ham", "count": 4}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:pig_2",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:pig_3",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:porkrib", "count": (2, 3)},
|
|
{"name": "minecraft:porkchop", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:pig_3",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:crushedmeat", "count": (2, 3)},
|
|
{"name": "minecraft:porkchop", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# ---- 羊(不可逆) ----
|
|
{
|
|
"source": "rtdd:sheep",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:sheep_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:sheepracks", "count": (2, 3)},
|
|
{"name": "minecraft:mutton", "count": (4, 5)},
|
|
{"name": "minecraft:leather", "count": (4, 6)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:sheep_1",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:sheep_2",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:legsleep", "count": 4}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:sheep_2",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:sheep_3",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:sheeploins", "count": (2, 3)},
|
|
{"name": "minecraft:mutton", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:sheep_3",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [
|
|
{"name": "rtdd:crushedmeat", "count": (2, 3)},
|
|
{"name": "minecraft:mutton", "count": (4, 5)},
|
|
],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
|
|
# ============================================================
|
|
# 四、取鱼干(空手右键 干鱼钩 → 掉落 鱼干)
|
|
# ============================================================
|
|
{
|
|
"source": "rtdd:hang_meat_hooks_3",
|
|
"item": None,
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:thedriedfish", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:hang_meat_hooks_4",
|
|
"item": None,
|
|
"target": "rtdd:hang_meat_hooks_3",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:thedriedfish", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:meathookcoddry",
|
|
"item": None,
|
|
"target": "rtdd:meathook",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:thedriedfish", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
|
|
# ============================================================
|
|
# 五、死鱼/死鱿鱼切块(手持 菜刀cleaver, 掉落物)
|
|
# ============================================================
|
|
# 死鲑鱼: 四刀, 每刀1份生鱼片
|
|
{
|
|
"source": "rtdd:killfish_0",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:killfish_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:killfish_1",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:killfish_2",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:killfish_2",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:killfish_3",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:killfish_3",
|
|
"item": "rtdd:cleaver",
|
|
"target": "minecraft:air",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# 死鳕鱼: 三刀, 每刀1份生鱼片
|
|
{
|
|
"source": "rtdd:killcod_0",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:killcod_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:killcod_1",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:killcod_2",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:killcod_2",
|
|
"item": "rtdd:cleaver",
|
|
"target": "minecraft:air",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:sashimi", "count": 1}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
# 死鱿鱼: 一刀切须
|
|
{
|
|
"source": "rtdd:deadsquida",
|
|
"item": "rtdd:cleaver",
|
|
"target": "rtdd:dead_squid_1",
|
|
"consume": 0,
|
|
"type": "switch",
|
|
"dropItem": [{"name": "rtdd:rawsquidwhiskersr", "count": (5, 6)}],
|
|
"tip": None,
|
|
"giveItem": None,
|
|
},
|
|
|
|
# ============================================================
|
|
# 六、鱼晾干(计时自动转换, 挂上即自动开始 autoStart=True)
|
|
# ============================================================
|
|
{
|
|
"source": "rtdd:hang_meat_hooks_1",
|
|
"item": None,
|
|
"target": "rtdd:hang_meat_hooks_3",
|
|
"consume": 0,
|
|
"type": "timer",
|
|
"time": 300,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:hang_meat_hooks_2",
|
|
"item": None,
|
|
"target": "rtdd:hang_meat_hooks_4",
|
|
"consume": 0,
|
|
"type": "timer",
|
|
"time": 300,
|
|
"giveItem": None,
|
|
},
|
|
{
|
|
"source": "rtdd:meathookcod_2",
|
|
"item": None,
|
|
"target": "rtdd:meathookcoddry",
|
|
"consume": 0,
|
|
"type": "timer",
|
|
"time": 300,
|
|
"giveItem": None,
|
|
},
|
|
]
|
|
|
|
# 晾晒计时源方块(挂上鱼后变成这些方块, tick 自动开始晾干):
|
|
# 用于挂鱼时记录玩家, 晾干完成时把 doneTip 发给该玩家。
|
|
DRY_SOURCE_BLOCKS = {
|
|
"rtdd:hang_meat_hooks_1",
|
|
"rtdd:hang_meat_hooks_2",
|
|
"rtdd:meathookcod_2",
|
|
}
|