# -*- 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, }, ]