Files
rtdd/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/AnimalData.py
T

319 lines
12 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 -*-
"""
================================================================================
动物养殖方块转换规则数据
================================================================================
所有"动物养殖"分类下"右键方块→消耗物品→替换方块"的转换规则都在这里。
只被 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": "§a鸡蛋已放入鸡窝 (1/5)",
"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": "§a鸡蛋已放入鸡窝 (2/5)",
"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": "§a鸡蛋已放入鸡窝 (3/5)",
"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": "§a鸡蛋已放入鸡窝 (4/5)",
"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": "§a鸡蛋已放入鸡窝 (5/5)",
"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": "§a取走了 5 个鸡蛋",
"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": "§a取走了 4 个鸡蛋",
"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": "§a取走了 3 个鸡蛋",
"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": "§a取走了 2 个鸡蛋",
"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": "§a取走了 1 个鸡蛋",
"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": "§a鸡饲料已加满",
"giveItem": None,
},
# 【计时变空】鸡饲料盆_2(满) → 鸡饲料盆_1(空),计时60秒
# 这是一个自动转换:玩家填充后启动计时,到时间自动变空
{
"source": "rtdd:chickenmanger_1",
"item": None,
"target": "rtdd:chickenmanger_0",
"consume": 0,
"type": "timer",
"time": 60,
"startTip": "§e鸡饲料已加满,鸡正在进食…",
"doneTip": "§e鸡饲料已吃完",
"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": "§a小麦饲料已加满",
"giveItem": None,
},
# 【计时减少1】饲料槽_2(满小麦) → 饲料槽_3(半量小麦),计时60秒
{
"source": "rtdd:manger_3",
"item": None,
"target": "rtdd:manger_2",
"consume": 0,
"type": "timer",
"time": 60,
"startTip": "§e小麦饲料已加满,动物正在进食…",
"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": "§e小麦饲料已吃完",
"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": "§a已给饲料槽加水",
},
# ============================================================
# 六、饲料槽-胡萝卜 —— 手持胡萝卜右键填充(消耗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": "§a胡萝卜饲料已加满",
"giveItem": None,
},
# 【计时减少1】饲料槽_7(满胡萝卜) → 饲料槽_8(半量胡萝卜),计时60秒
{
"source": "rtdd:pigmanger_1",
"item": None,
"target": "rtdd:pigmanger_2",
"consume": 0,
"type": "timer",
"time": 60,
"startTip": "§e胡萝卜饲料已加满,动物正在进食…",
"giveItem": None,
},
# 【计时减少2】饲料槽_8(半量胡萝卜) → 饲料槽_1(空),计时60秒
{
"source": "rtdd:pigmanger_2",
"item": None,
"target": "rtdd:manger_0",
"consume": 0,
"type": "timer",
"time": 60,
"doneTip": "§e胡萝卜饲料已吃完",
"giveItem": None,
},
# ============================================================
# 七、粪便清理 —— 空手右键逐级清理,最后消失
# 对应方块:feces_3(一坨)、feces_2(半坨)、feces_1(仅痕迹)
# 【食用部分后续在总食用功能中实现,本次不实现】
# ============================================================
# 【清理1】粪便(一坨) → 粪便(半坨)
{
"source": "rtdd:feces_3",
"item": None,
"target": "rtdd:feces_2",
"consume": 0,
"type": "switch",
"tip": "§a清理了粪便",
"giveItem": None,
},
# 【清理2】粪便(半坨) → 粪便(仅痕迹)
{
"source": "rtdd:feces_2",
"item": None,
"target": "rtdd:feces_1",
"consume": 0,
"type": "switch",
"tip": "§a清理了粪便",
"giveItem": None,
},
# 【清理3】粪便(仅痕迹) → 消失(空气)
{
"source": "rtdd:feces_1",
"item": None,
"target": "minecraft:air",
"consume": 0,
"type": "switch",
"tip": "§a清理了粪便",
"giveItem": None,
},
]