# -*- coding: utf-8 -*- """ ================================================================================ 乡野自然(xy_natural)转化规则数据 ================================================================================ 统一管理"乡野自然"(xy_natural) 分类下的转化规则常量。只被 NaturalService / NaturalTimerService 读取,FeatureDispatcher 通过方块名/物品名 集合路由到对应服务。 【本次实现的功能】 1) 果树结果 (计时): 苹果/桃/橘 树叶 -> 果实形态 逐级结果 2) 葡萄藤生长 (计时): grapebushes_1 -> grapebushes_2 3) 葡萄藤取葡萄 (右键): 成熟葡萄藤 -> 取3葡萄, 变回葡萄藤_1 4) 柴火堆叠/取用 (右键): firewood <-> firewood_2 5) 柴火分解 (工作台配方): firewood -> 9个木条 6) 水稻种植 (手持稻谷右键耕地): farmland -> 水稻刚种下 7) 水稻生长 (计时): riceseedlingsb -> c -> d 8) 水稻收获 (左键破坏掉落): 水稻方块破坏掉稻谷, 成熟额外掉大米 【不实现(后续实现)】 - 果树"树苗成长"机制(树叶对应树苗, 像原版一样长成树): 后续实现, 本次跳过。 【计时说明】 果树结果/藤蔓生长/水稻生长均 autoStart=True(放置/种下后自动开始), 用绝对时间戳写方块实体数据, 退出重进继续计时。 ================================================================================ """ # ============================================================================ # 一、柴火堆叠/取用(右键) # firewood_2(半捆柴火) + 手持半捆柴火 -> firewood(柴火 堆放) # firewood(堆放) 空手右键 -> firewood_2 + 掉落1个半捆柴火(掉落物, 不进背包) # ============================================================================ FIREWOOD_RULES = [ {"source": "rtdd:firewood_2", "item": "rtdd:firewood_2", "target": "rtdd:firewood", "consume": 1, "tip": None}, {"source": "rtdd:firewood", "item": None, "target": "rtdd:firewood_2", "dropItem": [{"name": "rtdd:firewood_2", "count": 1}], "tip": None}, ] # ============================================================================ # 二、葡萄藤取葡萄(右键) # grapebushes_2(成熟) 空手右键 -> grapebushes_1 + 掉落3个葡萄 # ============================================================================ GRAPE_HARVEST = { "source": "rtdd:grapebushes_2", "item": None, "target": "rtdd:grapebushes_1", "dropItem": [{"name": "rtdd:grape", "count": 3}], "tip": None, } # 葡萄种植: 手持葡萄右键支杆 -> 葡萄藤_1(之后按原版 tick 随机生长, 无提示) GRAPE_PLANT = { "source": "rtdd:b_34", "item": "rtdd:grape", "target": "rtdd:grapebushes_1", "consume": 1, } # ============================================================================ # 三、水稻收获(左键破坏掉落, 类似原版作物) # 水稻方块被左键破坏 -> 掉落稻谷; 成熟(riceseedlingsd)额外掉大米 # ============================================================================ RICE_BLOCKS = [ "rtdd:riceseedlingsb", # 刚种下 "rtdd:riceseedlingsc", # 生长中 "rtdd:riceseedlingsd", # 成熟 ] RICE_SEED_ITEM = "rtdd:rice_seeds" # 破坏掉落稻谷 RICE_CROP_ITEM = "rtdd:brownrice" # 成熟额外掉落大米 # 水稻/葡萄藤 生长: 都用"原版 tick 概率生长"(每 block tick 一定概率长大一级) + 骨粉右键 # 葡萄藤生长: 走"原版 tick 概率生长"代码(每 block tick 一定概率长大一级) + 骨粉右键。 # 稻谷(rice_seeds)已改用物品 JSON 的 minecraft:seed + 方块 base_block=custom_crop_block # 的 netease:transform 由原版随机刻驱动生长(见 netease_blocks/riceseedlingsb,c.json), # 不在此代码生长链里, 避免双重驱动。 GROW_CHAIN = { "rtdd:grapebushes_1": "rtdd:grapebushes_2", # 葡萄藤_1 -> _2 } # 生长链: 当前方块 -> 长大一级后的方块, 供代码 tick 概率生长 + 骨粉催熟 GROW_PROB = 0.0003 # 每 block tick 长大一级的概率(原版随机式; 每级≈3分钟, 满熟数分钟~十来分钟) BONE_MEAL = "minecraft:bone_meal" # 骨粉(右键对生长链方块催熟1级) # 汇总: 乡野自然右键切换规则 NATURAL_SWITCHES = FIREWOOD_RULES + [GRAPE_HARVEST, GRAPE_PLANT] # ============================================================================ # 四、计时转换 (果树结果 / 葡萄藤生长 / 水稻生长, 均 autoStart 自动生长) # ============================================================================ NATURAL_TIMERS = [ # 苹果树: 树叶 -> 苹果形态1 -> 苹果形态2 {"source": "rtdd:apple_leaves", "target": "rtdd:apple_fruit_1", "time": 60, "autoStart": True}, {"source": "rtdd:apple_fruit_1", "target": "rtdd:apple_fruit_3", "time": 60, "autoStart": True}, # 桃树: 树叶 -> 桃子一个 -> 桃子两个 {"source": "rtdd:peach_leaves", "target": "rtdd:b_173", "time": 60, "autoStart": True}, {"source": "rtdd:b_173", "target": "rtdd:b_176", "time": 60, "autoStart": True}, # 橘树: 树叶 -> 橘子形态一 -> 形态二 -> 形态三 {"source": "rtdd:orange_leaves", "target": "rtdd:tangerine_0", "time": 60, "autoStart": True}, {"source": "rtdd:tangerine_0", "target": "rtdd:tangerine_1", "time": 60, "autoStart": True}, {"source": "rtdd:tangerine_1", "target": "rtdd:tangerine_2", "time": 60, "autoStart": True}, # 水稻/葡萄藤 已改用"原版 tick 概率生长(每block tick随机长大一级)+骨粉", # 见 NaturalTimerService._growBlockProcess / GROW_CHAIN, 不再走这里的秒式时长, 故都不在此 ] # ============================================================================ # 五、水稻种植:已交由物品定义 JSON 的 minecraft:seed 组件处理 # (netease_items_beh/rtdd_rice_seeds.json: plant_at=[farmland], # crop_result=rtdd:riceseedlingsb)。引擎原生支持"手持稻谷右键耕地"种植。 # ============================================================================