# -*- coding: utf-8 -*- """ 工具方块切换规则数据 ==================== 所有"右键方块→消耗物品→替换方块"的工具切换规则都在这里。 与 RecipeData.py 的关系: RecipeData.py = 做菜配方(食材+锅 → 菜) BlockSwitchData.py = 工具切换(箭桶、挂肉钩、水槽、盘子架、药水架、书柜等) CookingService 启动时会自动把两边的数据合并成一份字典,O(1) 查找。 字段说明: source: 被右键的方块ID(必填) item: 玩家手里必须拿的物品,None=空手也行 target: 替换成什么方块 consume: 消耗物品数量,0=不消耗(默认1) giveItem: 额外给玩家什么物品,None=取回记录的物品 type: "switch"=工具切换, "timer"=计时自动转换 record: True=需要记录放入的物品,取回时原样返还 recordType: "count"=记录一种物品+数量, "stack"=后放先取堆栈 maxCount: 记录型最多存多少(箭桶32只、盘子架5个等) time: 计时型转换需要多少秒 tool: 特定工具要求(如"剑") """ BLOCK_SWITCHES = [ # 一、箭桶 # ============================================================ # 【放箭】箭桶_0 → 箭桶_1 { "source": "rtdd:arrowbarrel_0", "item": "minecraft:arrow", "target": "rtdd:arrowbarrel_1", "consume": 1, "type": "switch", "record": True, "recordType": "count", "maxCount": 32, "giveItem": None, }, # 【取箭】箭桶_1 → 箭桶_0 { "source": "rtdd:arrowbarrel_1", "item": None, "target": "rtdd:arrowbarrel_0", "consume": 0, "type": "switch", "record": True, "recordType": "count", "giveItem": None, }, # 二、纺纱机 # ============================================================ { "source": "rtdd:b_110", "item": None, "target": "rtdd:spinner", "consume": 0, "type": "switch", "giveItem": None, }, # 三、售卖箱 ↔ 鲑鱼箱 # ============================================================ # 【放鲑鱼】售卖箱_1 → 鲑鱼箱 { "source": "rtdd:clothbox_1", "item": "minecraft:salmon", "target": "rtdd:b_30", "consume": 1, "type": "switch", "giveItem": None, }, # 【放鲑鱼】售卖箱_2 → 鲑鱼箱 { "source": "rtdd:clothbox_2", "item": "minecraft:salmon", "target": "rtdd:b_30", "consume": 1, "type": "switch", "giveItem": None, }, # 【取回鲑鱼】鲑鱼箱 → 售卖箱_2 { "source": "rtdd:b_30", "item": None, "target": "rtdd:clothbox_2", "consume": 0, "type": "switch", "giveItem": "minecraft:salmon", }, # 四、烧烤架 # ============================================================ # 【点火-打火石】烧烤架_0 → 烧烤架_1 { "source": "rtdd:barbecuegrill_0", "item": "minecraft:flint_and_steel", "target": "rtdd:barbecuegrill_1", "consume": 0, "type": "switch", "giveItem": None, }, # 【点火-烈焰弹】烧烤架_0 → 烧烤架_1 { "source": "rtdd:barbecuegrill_0", "item": "minecraft:fire_charge", "target": "rtdd:barbecuegrill_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【灭火】烧烤架_1 → 烧烤架_0(消耗水桶,获得空桶) { "source": "rtdd:barbecuegrill_1", "item": "minecraft:water_bucket", "target": "rtdd:barbecuegrill_0", "consume": 1, "type": "switch", "giveItem": "minecraft:bucket", }, # 五、炉灶 # ============================================================ # 【加柴-木条】炉灶_1 → 炉灶_2 { "source": "rtdd:stove", "item": "rtdd:barwood", "target": "rtdd:stove_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【加柴-木块】炉灶_1 → 炉灶_2 { "source": "rtdd:stove", "item": "rtdd:b_15", "target": "rtdd:stove_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【点火-打火石】炉灶_2 → 炉灶_3 { "source": "rtdd:stove_1", "item": "minecraft:flint_and_steel", "target": "rtdd:stove_2", "consume": 0, "type": "switch", "giveItem": None, }, # 【点火-烈焰弹】炉灶_2 → 炉灶_3 { "source": "rtdd:stove_1", "item": "minecraft:fire_charge", "target": "rtdd:stove_2", "consume": 1, "type": "switch", "giveItem": None, }, # 六、挂肉钩 - 牛 # ============================================================ # 正向:挂死牛 → 拿剑切肉 → 切完回空钩(掉落牛肉) # 逆向:空手右键退回死牛 # ============================================================ # 【挂牛】空钩 → 牛_0 { "source": "rtdd:meathook", "item": "rtdd:dead_cow", "target": "rtdd:cow_0", "consume": 1, "type": "switch", "giveItem": None, }, # 【切肉-第一刀】牛_0 → 牛_1 { "source": "rtdd:cow_0", "item": "minecraft:iron_sword", "target": "rtdd:cow_1", "consume": 0, "type": "switch", "giveItem": "minecraft:beef", "tool": "sword", }, # 【切肉-第二刀】牛_1 → 牛_2 { "source": "rtdd:cow_1", "item": "minecraft:iron_sword", "target": "rtdd:cow_2", "consume": 0, "type": "switch", "giveItem": "minecraft:beef", "tool": "sword", }, # 【切肉-第三刀】牛_2 → 牛_3 { "source": "rtdd:cow_2", "item": "minecraft:iron_sword", "target": "rtdd:cow_3", "consume": 0, "type": "switch", "giveItem": "minecraft:beef", "tool": "sword", }, # 【切肉-最后一刀】牛_3 → 空钩 { "source": "rtdd:cow_3", "item": "minecraft:iron_sword", "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:beef", "tool": "sword", }, # ---- 逆向退回 ---- # 【退回】牛_3 → 牛_2 { "source": "rtdd:cow_3", "item": None, "target": "rtdd:cow_2", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_cow", }, # 【退回】牛_2 → 牛_1 { "source": "rtdd:cow_2", "item": None, "target": "rtdd:cow_1", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_cow", }, # 【退回】牛_1 → 牛_0 { "source": "rtdd:cow_1", "item": None, "target": "rtdd:cow_0", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_cow", }, # 【退回】牛_0 → 空钩 { "source": "rtdd:cow_0", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_cow", }, # 七、晾干架 # ============================================================ { "source": "rtdd:dryingrack", "item": None, "target": "rtdd:dryingrack_1", "consume": 0, "type": "switch", "giveItem": None, }, { "source": "rtdd:dryingrack_1", "item": None, "target": "rtdd:dryingrack_2", "consume": 0, "type": "switch", "giveItem": None, }, { "source": "rtdd:dryingrack_2", "item": None, "target": "rtdd:dryingrack", "consume": 0, "type": "switch", "giveItem": None, }, # 八、挂肉钩 - 鱼(生鱼晾干) # ============================================================ # 正向:挂生鱼 → 计时晾干 → 熟鱼 # 逆向:空手退回生鱼 # ============================================================ # 【挂鱼】空钩 → 鱼_1 { "source": "rtdd:meathook", "item": "minecraft:fish", "target": "rtdd:fish_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【挂第二条】鱼_1 → 鱼_2 { "source": "rtdd:fish_1", "item": "minecraft:fish", "target": "rtdd:fish_2", "consume": 1, "type": "switch", "giveItem": None, }, # 【晾干】鱼_2 → 空钩(计时自动,右键获得熟鱼) { "source": "rtdd:fish_2", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "timer", "time": 300, "giveItem": "minecraft:cooked_fish", }, # ---- 逆向退回 ---- # 【退鱼】鱼_2 → 鱼_1 { "source": "rtdd:fish_2", "item": None, "target": "rtdd:fish_1", "consume": 0, "type": "switch", "giveItem": "minecraft:fish", }, # 【退鱼】鱼_1 → 空钩 { "source": "rtdd:fish_1", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:fish", }, # 九、挂肉钩 - 鳕鱼 # ============================================================ # 正向:挂鳕鱼 → 计时晾干 → 熟鳕鱼 # 逆向:空手退回鳕鱼 # ============================================================ # 【挂鳕鱼】空钩 → 鳕鱼_1 { "source": "rtdd:meathook", "item": "minecraft:cod", "target": "rtdd:meathookcod_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【挂第二条】鳕鱼_1 → 鳕鱼_2 { "source": "rtdd:meathookcod_1", "item": "minecraft:cod", "target": "rtdd:meathookcod_2", "consume": 1, "type": "switch", "giveItem": None, }, # 【晾干】鳕鱼_2 → 干鳕鱼钩(计时自动) { "source": "rtdd:meathookcod_2", "item": None, "target": "rtdd:meathookcoddry", "consume": 0, "type": "timer", "time": 300, "giveItem": None, }, # 【取熟鳕鱼】干鳕鱼钩 → 空钩 { "source": "rtdd:meathookcoddry", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:cooked_cod", }, # ---- 逆向退回 ---- # 【退鳕鱼】鳕鱼_2 → 鳕鱼_1 { "source": "rtdd:meathookcod_2", "item": None, "target": "rtdd:meathookcod_1", "consume": 0, "type": "switch", "giveItem": "minecraft:cod", }, # 【退鳕鱼】鳕鱼_1 → 空钩 { "source": "rtdd:meathookcod_1", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:cod", }, # 十、挂肉钩 - 猪 # ============================================================ # 正向:挂死猪 → 拿剑切肉 → 切完回空钩(掉落生猪排) # 逆向:空手退回死猪 # ============================================================ # 【挂猪】空钩 → 猪_0 { "source": "rtdd:meathook", "item": "rtdd:dead_pig", "target": "rtdd:pig_0", "consume": 1, "type": "switch", "giveItem": None, }, # 【切肉-第一刀】猪_0 → 猪_1 { "source": "rtdd:pig_0", "item": "minecraft:iron_sword", "target": "rtdd:pig_1", "consume": 0, "type": "switch", "giveItem": "minecraft:porkchop", "tool": "sword", }, # 【切肉-第二刀】猪_1 → 猪_2 { "source": "rtdd:pig_1", "item": "minecraft:iron_sword", "target": "rtdd:pig_2", "consume": 0, "type": "switch", "giveItem": "minecraft:porkchop", "tool": "sword", }, # 【切肉-第三刀】猪_2 → 猪_3 { "source": "rtdd:pig_2", "item": "minecraft:iron_sword", "target": "rtdd:pig_3", "consume": 0, "type": "switch", "giveItem": "minecraft:porkchop", "tool": "sword", }, # 【切肉-最后一刀】猪_3 → 空钩 { "source": "rtdd:pig_3", "item": "minecraft:iron_sword", "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:porkchop", "tool": "sword", }, # ---- 逆向退回 ---- # 【退回】猪_3 → 猪_2 { "source": "rtdd:pig_3", "item": None, "target": "rtdd:pig_2", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_pig", }, # 【退回】猪_2 → 猪_1 { "source": "rtdd:pig_2", "item": None, "target": "rtdd:pig_1", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_pig", }, # 【退回】猪_1 → 猪_0 { "source": "rtdd:pig_1", "item": None, "target": "rtdd:pig_0", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_pig", }, # 【退回】猪_0 → 空钩 { "source": "rtdd:pig_0", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_pig", }, # 十一、挂肉钩 - 羊 # ============================================================ # 正向:挂死羊 → 拿剑切肉 → 切完回空钩(掉落生羊肉) # 逆向:空手退回死羊 # ============================================================ # 【挂羊】空钩 → 羊_0 { "source": "rtdd:meathook", "item": "rtdd:dead_sheep", "target": "rtdd:sheep", "consume": 1, "type": "switch", "giveItem": None, }, # 【切肉-第一刀】羊_0 → 羊_1 { "source": "rtdd:sheep", "item": "minecraft:iron_sword", "target": "rtdd:sheep_1", "consume": 0, "type": "switch", "giveItem": "minecraft:mutton", "tool": "sword", }, # 【切肉-第二刀】羊_1 → 羊_2 { "source": "rtdd:sheep_1", "item": "minecraft:iron_sword", "target": "rtdd:sheep_2", "consume": 0, "type": "switch", "giveItem": "minecraft:mutton", "tool": "sword", }, # 【切肉-第三刀】羊_2 → 羊_3 { "source": "rtdd:sheep_2", "item": "minecraft:iron_sword", "target": "rtdd:sheep_3", "consume": 0, "type": "switch", "giveItem": "minecraft:mutton", "tool": "sword", }, # 【切肉-最后一刀】羊_3 → 空钩 { "source": "rtdd:sheep_3", "item": "minecraft:iron_sword", "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "minecraft:mutton", "tool": "sword", }, # ---- 逆向退回 ---- # 【退回】羊_3 → 羊_2 { "source": "rtdd:sheep_3", "item": None, "target": "rtdd:sheep_2", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_sheep", }, # 【退回】羊_2 → 羊_1 { "source": "rtdd:sheep_2", "item": None, "target": "rtdd:sheep_1", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_sheep", }, # 【退回】羊_1 → 羊_0 { "source": "rtdd:sheep_1", "item": None, "target": "rtdd:sheep", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_sheep", }, # 【退回】羊_0 → 空钩 { "source": "rtdd:sheep", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:dead_sheep", }, # 十二、挂肉钩 - 鲑鱼晾晒系统 # ============================================================ # 路线A(只挂1条): 空钩 → 鲜鲑鱼_1 → 干鲑鱼_1 → 空钩 # 路线B(挂2条): 空钩 → 鲜鲑鱼_1 → 鲜鲑鱼_2 → 干鲑鱼_2 → 干鲑鱼_1 → 空钩 # ============================================================ # 【挂鱼】空钩 → 鲜鲑鱼_1(手持死鲑鱼) { "source": "rtdd:meathook", "item": "rtdd:killfish_0", "target": "rtdd:hang_meat_hooks_1", "consume": 1, "type": "switch", "giveItem": None, }, # 【挂第二条】鲜鲑鱼_1 → 鲜鲑鱼_2 { "source": "rtdd:hang_meat_hooks_1", "item": "rtdd:killfish_0", "target": "rtdd:hang_meat_hooks_2", "consume": 1, "type": "switch", "giveItem": None, }, # 【单条晾干】鲜鲑鱼_1 → 干鲑鱼_1(计时自动) { "source": "rtdd:hang_meat_hooks_1", "item": None, "target": "rtdd:hang_meat_hooks_3", "consume": 0, "type": "timer", "time": 300, "giveItem": None, }, # 【两条晾干】鲜鲑鱼_2 → 干鲑鱼_2(计时自动) { "source": "rtdd:hang_meat_hooks_2", "item": None, "target": "rtdd:hang_meat_hooks_4", "consume": 0, "type": "timer", "time": 300, "giveItem": None, }, # 【取走单条干】干鲑鱼_1 → 空钩 { "source": "rtdd:hang_meat_hooks_3", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:dried_salmon", }, # 【取走第一条干】干鲑鱼_2 → 干鲑鱼_1 { "source": "rtdd:hang_meat_hooks_4", "item": None, "target": "rtdd:hang_meat_hooks_3", "consume": 0, "type": "switch", "giveItem": "rtdd:dried_salmon", }, # ---- 逆向退回 ---- # 【退单条鲜】鲜鲑鱼_1 → 空钩 { "source": "rtdd:hang_meat_hooks_1", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:killfish_0", }, # 【退一条鲜】鲜鲑鱼_2 → 鲜鲑鱼_1 { "source": "rtdd:hang_meat_hooks_2", "item": None, "target": "rtdd:hang_meat_hooks_1", "consume": 0, "type": "switch", "giveItem": "rtdd:killfish_0", }, # 【退单条干】干鲑鱼_1 → 空钩 { "source": "rtdd:hang_meat_hooks_3", "item": None, "target": "rtdd:meathook", "consume": 0, "type": "switch", "giveItem": "rtdd:killfish_0", }, # 【退一条干】干鲑鱼_2 → 干鲑鱼_1 { "source": "rtdd:hang_meat_hooks_4", "item": None, "target": "rtdd:hang_meat_hooks_3", "consume": 0, "type": "switch", "giveItem": "rtdd:killfish_0", }, # 十三、水槽系统 # ============================================================ # ---- 加水 / 取水 ---- # 【加水】水槽_0 → 水槽_1 { "source": "rtdd:flume_0", "item": None, "target": "rtdd:flume_1", "consume": 0, "type": "switch", "giveItem": None, }, # 【取水】水槽_1 → 水槽_0(手持空桶,消耗空桶获得装满水的水桶) { "source": "rtdd:flume_1", "item": "minecraft:bucket", "target": "rtdd:flume_0", "consume": 1, "type": "switch", "giveItem": "minecraft:water_bucket", }, # ---- 放脏盘子 ---- # 【放第一个脏盘子】水槽_0 → 水槽_2 { "source": "rtdd:flume_0", "item": "rtdd:plate_0a", "target": "rtdd:flume_2", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第二个脏盘子】水槽_2 → 水槽_3 { "source": "rtdd:flume_2", "item": "rtdd:plate_0a", "target": "rtdd:flume_3", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第三个脏盘子】水槽_3 → 水槽_4 { "source": "rtdd:flume_3", "item": "rtdd:plate_0a", "target": "rtdd:flume_4", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第四个脏盘子】水槽_4 → 水槽_5 { "source": "rtdd:flume_4", "item": "rtdd:plate_0a", "target": "rtdd:flume_5", "consume": 1, "type": "switch", "giveItem": None, }, # ---- 取回脏盘子 ---- # 【取走一个脏盘子】水槽_5 → 水槽_4 { "source": "rtdd:flume_5", "item": None, "target": "rtdd:flume_4", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0a", }, # 【取走一个脏盘子】水槽_4 → 水槽_3 { "source": "rtdd:flume_4", "item": None, "target": "rtdd:flume_3", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0a", }, # 【取走一个脏盘子】水槽_3 → 水槽_2 { "source": "rtdd:flume_3", "item": None, "target": "rtdd:flume_2", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0a", }, # 【取走最后一个脏盘子】水槽_2 → 水槽_0 { "source": "rtdd:flume_2", "item": None, "target": "rtdd:flume_0", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0a", }, # 十四、盘子架系统 # ============================================================ # ---- 放盘子 ---- # 【放第一个盘子】盘子架_1 → 盘子架_2 { "source": "rtdd:trayracks_1", "item": "rtdd:plate_0", "target": "rtdd:trayracks_2", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第二个盘子】盘子架_2 → 盘子架_3 { "source": "rtdd:trayracks_2", "item": "rtdd:plate_0", "target": "rtdd:trayracks_3", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第三个盘子】盘子架_3 → 盘子架_4 { "source": "rtdd:trayracks_3", "item": "rtdd:plate_0", "target": "rtdd:trayracks_4", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第四个盘子】盘子架_4 → 盘子架_5 { "source": "rtdd:trayracks_4", "item": "rtdd:plate_0", "target": "rtdd:trayracks_5", "consume": 1, "type": "switch", "giveItem": None, }, # 【放第五个盘子】盘子架_5 → 盘子架_6 { "source": "rtdd:trayracks_5", "item": "rtdd:plate_0", "target": "rtdd:trayracks_6", "consume": 1, "type": "switch", "giveItem": None, }, # ---- 取回盘子 ---- # 【取走一个盘子】盘子架_6 → 盘子架_5 { "source": "rtdd:trayracks_6", "item": None, "target": "rtdd:trayracks_5", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0", }, # 【取走一个盘子】盘子架_5 → 盘子架_4 { "source": "rtdd:trayracks_5", "item": None, "target": "rtdd:trayracks_4", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0", }, # 【取走一个盘子】盘子架_4 → 盘子架_3 { "source": "rtdd:trayracks_4", "item": None, "target": "rtdd:trayracks_3", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0", }, # 【取走一个盘子】盘子架_3 → 盘子架_2 { "source": "rtdd:trayracks_3", "item": None, "target": "rtdd:trayracks_2", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0", }, # 【取走最后一个盘子】盘子架_2 → 盘子架_1 { "source": "rtdd:trayracks_2", "item": None, "target": "rtdd:trayracks_1", "consume": 0, "type": "switch", "giveItem": "rtdd:plate_0", }, # 十五、药水架系统(后放先取) # ============================================================ # ---- 放药水 ---- # 【放第一瓶】药水架_0 → 药水架_1 { "source": "rtdd:lotion_0", "item": "minecraft:potion", "target": "rtdd:lotion_1", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 3, "giveItem": None, }, # 【放第二瓶】药水架_1 → 药水架_2 { "source": "rtdd:lotion_1", "item": "minecraft:potion", "target": "rtdd:lotion_2", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 3, "giveItem": None, }, # 【放第三瓶】药水架_2 → 药水架_3 { "source": "rtdd:lotion_2", "item": "minecraft:potion", "target": "rtdd:lotion_3", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 3, "giveItem": None, }, # ---- 取回(后放先取) ---- # 【取回第三瓶】药水架_3 → 药水架_2 { "source": "rtdd:lotion_3", "item": None, "target": "rtdd:lotion_2", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第二瓶】药水架_2 → 药水架_1 { "source": "rtdd:lotion_2", "item": None, "target": "rtdd:lotion_1", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第一瓶】药水架_1 → 药水架_0 { "source": "rtdd:lotion_1", "item": None, "target": "rtdd:lotion_0", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 十六、书柜系统(后放先取,13级) # ============================================================ # ---- 放书 ---- # 【放第1本】空书柜 → 书柜_12 { "source": "rtdd:bookcase", "item": "minecraft:book", "target": "rtdd:bookcase_12", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_12", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第2本】书柜_12 → 书柜_11 { "source": "rtdd:bookcase_12", "item": "minecraft:book", "target": "rtdd:bookcase_11", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_12", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_11", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第3本】书柜_11 → 书柜_10 { "source": "rtdd:bookcase_11", "item": "minecraft:book", "target": "rtdd:bookcase_10", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_11", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_10", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第4本】书柜_10 → 书柜_9 { "source": "rtdd:bookcase_10", "item": "minecraft:book", "target": "rtdd:bookcase_9", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_10", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_9", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第5本】书柜_9 → 书柜_8 { "source": "rtdd:bookcase_9", "item": "minecraft:book", "target": "rtdd:bookcase_8", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_9", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_8", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第6本】书柜_8 → 书柜_7 { "source": "rtdd:bookcase_8", "item": "minecraft:book", "target": "rtdd:bookcase_7", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_8", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_7", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第7本】书柜_7 → 书柜_6 { "source": "rtdd:bookcase_7", "item": "minecraft:book", "target": "rtdd:bookcase_6", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_7", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_6", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第8本】书柜_6 → 书柜_5 { "source": "rtdd:bookcase_6", "item": "minecraft:book", "target": "rtdd:bookcase_5", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_6", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_5", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第9本】书柜_5 → 书柜_4 { "source": "rtdd:bookcase_5", "item": "minecraft:book", "target": "rtdd:bookcase_4", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_5", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_4", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第10本】书柜_4 → 书柜_3(B_196) { "source": "rtdd:bookcase_4", "item": "minecraft:book", "target": "rtdd:b_196", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_4", "item": "minecraft:enchanted_book", "target": "rtdd:b_196", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第11本】书柜_3(B_196) → 书柜_3 { "source": "rtdd:b_196", "item": "minecraft:book", "target": "rtdd:bookcase_3", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:b_196", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_3", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第12本】书柜_3 → 书柜_2 { "source": "rtdd:bookcase_3", "item": "minecraft:book", "target": "rtdd:bookcase_2", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_3", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_2", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # 【放第13本】书柜_2 → 书柜_1 { "source": "rtdd:bookcase_2", "item": "minecraft:book", "target": "rtdd:bookcase_1", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, { "source": "rtdd:bookcase_2", "item": "minecraft:enchanted_book", "target": "rtdd:bookcase_1", "consume": 1, "type": "switch", "record": True, "recordType": "stack", "maxCount": 13, "giveItem": None, }, # ---- 取回(后放先取) ---- # 【取回第13本】书柜_1 → 书柜_2 { "source": "rtdd:bookcase_1", "item": None, "target": "rtdd:bookcase_2", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第12本】书柜_2 → 书柜_3 { "source": "rtdd:bookcase_2", "item": None, "target": "rtdd:bookcase_3", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第11本】书柜_3 → 书柜_3(B_196) { "source": "rtdd:bookcase_3", "item": None, "target": "rtdd:b_196", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第10本】书柜_3(B_196) → 书柜_4 { "source": "rtdd:b_196", "item": None, "target": "rtdd:bookcase_4", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第9本】书柜_4 → 书柜_5 { "source": "rtdd:bookcase_4", "item": None, "target": "rtdd:bookcase_5", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第8本】书柜_5 → 书柜_6 { "source": "rtdd:bookcase_5", "item": None, "target": "rtdd:bookcase_6", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第7本】书柜_6 → 书柜_7 { "source": "rtdd:bookcase_6", "item": None, "target": "rtdd:bookcase_7", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第6本】书柜_7 → 书柜_8 { "source": "rtdd:bookcase_7", "item": None, "target": "rtdd:bookcase_8", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第5本】书柜_8 → 书柜_9 { "source": "rtdd:bookcase_8", "item": None, "target": "rtdd:bookcase_9", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第4本】书柜_9 → 书柜_10 { "source": "rtdd:bookcase_9", "item": None, "target": "rtdd:bookcase_10", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第3本】书柜_10 → 书柜_11 { "source": "rtdd:bookcase_10", "item": None, "target": "rtdd:bookcase_11", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第2本】书柜_11 → 书柜_12 { "source": "rtdd:bookcase_11", "item": None, "target": "rtdd:bookcase_12", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, # 【取回第1本】书柜_12 → 空书柜 { "source": "rtdd:bookcase_12", "item": None, "target": "rtdd:bookcase", "consume": 0, "type": "switch", "record": True, "recordType": "stack", "giveItem": None, }, ]