319 lines
11 KiB
Python
319 lines
11 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
================================================================================
|
||
动物养殖方块转换规则数据
|
||
================================================================================
|
||
所有"动物养殖"分类下"右键方块→消耗物品→替换方块"的转换规则都在这里。
|
||
只被 AnimalService 读取,FeatureDispatcher 通过方块名集合路由到 AnimalService,
|
||
不会去查其他功能(烧烤/做菜/工具切换)的数据库。
|
||
|
||
与 BlockSwitchData.py 的关系:
|
||
BlockSwitchData.py = 通用工具方块切换(箭桶、挂肉钩、水槽、书柜等)
|
||
AnimalData.py = 动物养殖专属(鸡窝、饲料盆、饲料槽、粪便等)
|
||
|
||
字段说明(与 BlockSwitchData 基本一致,新增 giveCount/dropItem/tip):
|
||
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: 计时型转换需要多少秒(到时间自动替换方块)
|
||
tip: 转换成功时给玩家的提示(绿色§a开头)
|
||
startTip: 计时型规则启动计时时给玩家的提示(仅玩家主动触发时发)
|
||
doneTip: 计时链结束时给启动者的提示(只有整条链的最后一级会发)
|
||
================================================================================
|
||
"""
|
||
|
||
ANIMAL_SWITCHES = [
|
||
|
||
# ============================================================
|
||
# 一、鸡窝(产蛋) —— 低级机制:手持鸡蛋右键放置递增
|
||
# 对应方块:chickencoop_0(0蛋) ~ chickencoop_5(5蛋)
|
||
# ============================================================
|
||
# 【放蛋1】鸡窝_1(0蛋) → 鸡窝_2(1蛋)
|
||
{
|
||
"source": "rtdd:chickencoop_0",
|
||
"item": "minecraft:egg",
|
||
"target": "rtdd:chickencoop_1",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"switchCd": 0.5,
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【放蛋2】鸡窝_2(1蛋) → 鸡窝_3(2蛋)
|
||
{
|
||
"source": "rtdd:chickencoop_1",
|
||
"item": "minecraft:egg",
|
||
"target": "rtdd:chickencoop_2",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"switchCd": 0.5,
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【放蛋3】鸡窝_3(2蛋) → 鸡窝_4(3蛋)
|
||
{
|
||
"source": "rtdd:chickencoop_2",
|
||
"item": "minecraft:egg",
|
||
"target": "rtdd:chickencoop_3",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"switchCd": 0.5,
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【放蛋4】鸡窝_4(3蛋) → 鸡窝_5(4蛋)
|
||
{
|
||
"source": "rtdd:chickencoop_3",
|
||
"item": "minecraft:egg",
|
||
"target": "rtdd:chickencoop_4",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"switchCd": 0.5,
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【放蛋5】鸡窝_5(4蛋) → 鸡窝_6(5蛋)
|
||
{
|
||
"source": "rtdd:chickencoop_4",
|
||
"item": "minecraft:egg",
|
||
"target": "rtdd:chickencoop_5",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"switchCd": 0.5,
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 二、鸡窝(取蛋) —— 空手右键取走鸡蛋,以掉落物形式生成
|
||
# 数量转换遵循"递增→递减"双向规则:放蛋1→2→3→4→5,取蛋5→4→3→2→1
|
||
# 取蛋后一律回到0蛋形态(chickencoop_0)
|
||
# ============================================================
|
||
# 【取5蛋】鸡窝_6(5蛋) → 鸡窝_1(0蛋),掉落5个鸡蛋
|
||
{
|
||
"source": "rtdd:chickencoop_5",
|
||
"item": None,
|
||
"target": "rtdd:chickencoop_0",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"dropItem": [{"name": "minecraft:egg", "count": 5}],
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【取4蛋】鸡窝_5(4蛋) → 鸡窝_1(0蛋),掉落4个鸡蛋
|
||
{
|
||
"source": "rtdd:chickencoop_4",
|
||
"item": None,
|
||
"target": "rtdd:chickencoop_0",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"dropItem": [{"name": "minecraft:egg", "count": 4}],
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【取3蛋】鸡窝_4(3蛋) → 鸡窝_1(0蛋),掉落3个鸡蛋
|
||
{
|
||
"source": "rtdd:chickencoop_3",
|
||
"item": None,
|
||
"target": "rtdd:chickencoop_0",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"dropItem": [{"name": "minecraft:egg", "count": 3}],
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【取2蛋】鸡窝_3(2蛋) → 鸡窝_1(0蛋),掉落2个鸡蛋
|
||
{
|
||
"source": "rtdd:chickencoop_2",
|
||
"item": None,
|
||
"target": "rtdd:chickencoop_0",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"dropItem": [{"name": "minecraft:egg", "count": 2}],
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【取1蛋】鸡窝_2(1蛋) → 鸡窝_1(0蛋),掉落1个鸡蛋
|
||
{
|
||
"source": "rtdd:chickencoop_1",
|
||
"item": None,
|
||
"target": "rtdd:chickencoop_0",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"dropItem": [{"name": "minecraft:egg", "count": 1}],
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 三、鸡饲料盆 —— 手持种子右键填充,计时变空
|
||
# 对应方块:chickenmanger_0(空)、chickenmanger_1(满)
|
||
# ============================================================
|
||
# 【加饲料】鸡饲料盆_1(空) → 鸡饲料盆_2(满),消耗16个种子
|
||
{
|
||
"source": "rtdd:chickenmanger_0",
|
||
"item": "minecraft:wheat_seeds",
|
||
"target": "rtdd:chickenmanger_1",
|
||
"consume": 16,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时变空】鸡饲料盆_2(满) → 鸡饲料盆_1(空),计时60秒
|
||
# 这是一个自动转换:玩家填充后启动计时,到时间自动变空
|
||
{
|
||
"source": "rtdd:chickenmanger_1",
|
||
"item": None,
|
||
"target": "rtdd:chickenmanger_0",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"startTip": None,
|
||
"doneTip": None,
|
||
"giveItem": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 四、饲料槽-小麦 —— 手持小麦右键填充(消耗32个),计时逐级减少
|
||
# 对应方块:manger_0(空)、manger_3(满小麦)、manger_2(半量小麦)、manger_1(少量小麦)
|
||
# ============================================================
|
||
# 【加小麦】饲料槽_1(空) → 饲料槽_2(满小麦),消耗32个小麦
|
||
{
|
||
"source": "rtdd:manger_0",
|
||
"item": "minecraft:wheat",
|
||
"target": "rtdd:manger_3",
|
||
"consume": 32,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时减少1】饲料槽_2(满小麦) → 饲料槽_3(半量小麦),计时60秒
|
||
{
|
||
"source": "rtdd:manger_3",
|
||
"item": None,
|
||
"target": "rtdd:manger_2",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"startTip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时减少2】饲料槽_3(半量小麦) → 饲料槽_4(少量小麦),计时60秒
|
||
{
|
||
"source": "rtdd:manger_2",
|
||
"item": None,
|
||
"target": "rtdd:manger_1",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时减少3】饲料槽_4(少量小麦) → 饲料槽_1(空),计时60秒
|
||
{
|
||
"source": "rtdd:manger_1",
|
||
"item": None,
|
||
"target": "rtdd:manger_0",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"doneTip": None,
|
||
"giveItem": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 五、饲料槽-水 —— 手持水桶右键填充,水桶变空桶
|
||
# 对应方块:manger_0(空)、mangerwater(水槽)
|
||
# ============================================================
|
||
# 【加水】饲料槽_1(空) → 饲料槽_6(水槽),消耗水桶,获得空桶
|
||
{
|
||
"source": "rtdd:manger_0",
|
||
"item": "minecraft:water_bucket",
|
||
"target": "rtdd:mangerwater",
|
||
"consume": 1,
|
||
"type": "switch",
|
||
"giveItem": "minecraft:bucket",
|
||
"giveCount": 1,
|
||
"tip": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 六、饲料槽-胡萝卜 —— 手持胡萝卜右键填充(消耗32个),计时逐级减少
|
||
# 对应方块:manger_0(空)、pigmanger_1(满胡萝卜)、pigmanger_2(半量胡萝卜)
|
||
# ============================================================
|
||
# 【加胡萝卜】饲料槽_1(空) → 饲料槽_7(满胡萝卜),消耗32个胡萝卜
|
||
{
|
||
"source": "rtdd:manger_0",
|
||
"item": "minecraft:carrot",
|
||
"target": "rtdd:pigmanger_1",
|
||
"consume": 32,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时减少1】饲料槽_7(满胡萝卜) → 饲料槽_8(半量胡萝卜),计时60秒
|
||
{
|
||
"source": "rtdd:pigmanger_1",
|
||
"item": None,
|
||
"target": "rtdd:pigmanger_2",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"startTip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【计时减少2】饲料槽_8(半量胡萝卜) → 饲料槽_1(空),计时60秒
|
||
{
|
||
"source": "rtdd:pigmanger_2",
|
||
"item": None,
|
||
"target": "rtdd:manger_0",
|
||
"consume": 0,
|
||
"type": "timer",
|
||
"time": 60,
|
||
"doneTip": None,
|
||
"giveItem": None,
|
||
},
|
||
|
||
# ============================================================
|
||
# 七、粪便清理 —— 空手右键逐级清理,最后消失
|
||
# 对应方块:feces_3(一坨)、feces_2(半坨)、feces_1(仅痕迹)
|
||
# 【食用部分后续在总食用功能中实现,本次不实现】
|
||
# ============================================================
|
||
# 【清理1】粪便(一坨) → 粪便(半坨)
|
||
{
|
||
"source": "rtdd:feces_3",
|
||
"item": None,
|
||
"target": "rtdd:feces_2",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【清理2】粪便(半坨) → 粪便(仅痕迹)
|
||
{
|
||
"source": "rtdd:feces_2",
|
||
"item": None,
|
||
"target": "rtdd:feces_1",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
# 【清理3】粪便(仅痕迹) → 消失(空气)
|
||
{
|
||
"source": "rtdd:feces_1",
|
||
"item": None,
|
||
"target": "minecraft:air",
|
||
"consume": 0,
|
||
"type": "switch",
|
||
"tip": None,
|
||
"giveItem": None,
|
||
},
|
||
]
|