From bae1755069c83cda83b613aacf3fb718c589b973 Mon Sep 17 00:00:00 2001 From: wenhe <1046926120@qq.com> Date: Fri, 4 Sep 2026 16:51:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=84=E8=B1=86=20=E9=A5=AE=E6=96=99=20?= =?UTF-8?q?=E5=86=B0=E6=A3=8D=20=E5=AE=9E=E7=8E=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xiangyemod/yinliao/YinliaoData.py | 18 ++- .../yinliao/service/YinliaoService.py | 87 +++++++---- .../netease_items_beh/rtdd_soybean.json | 32 ++-- .../netease_items_res/rtdd_soybean.json | 11 ++ resource_pack_Are13Lvd/texts/zh_CN.lang | 3 +- .../textures/flipbook_textures_items.json | 1 + .../textures/item_texture.json | 143 +++++++++--------- .../textures/items/soybean.png | Bin 0 -> 350 bytes tuilun/乡野饮料转化关系.txt | 18 ++- tuilun/全部功能做了什么.txt | 10 +- tuilun/厨具转化关系.txt | 2 +- 11 files changed, 193 insertions(+), 132 deletions(-) create mode 100644 resource_pack_Are13Lvd/netease_items_res/rtdd_soybean.json create mode 100644 resource_pack_Are13Lvd/textures/flipbook_textures_items.json create mode 100644 resource_pack_Are13Lvd/textures/items/soybean.png diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/YinliaoData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/YinliaoData.py index 9ebef35..9bc464a 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/YinliaoData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/YinliaoData.py @@ -96,13 +96,19 @@ POPSICLE_FRUITS = { # 冰棍盒方块 → (水果物品名, 冰棍方块, 口味名) 反向表(取冰棍用) POPSICLE_BOX_INFO = {v[0]: (k, v[1], v[2]) for k, v in POPSICLE_FRUITS.items()} -# 冰棍堆组合: -# popsiclepile_2(橙子+西瓜) + 苹果冰棍 → popsiclepile_3(橙子+西瓜+苹果) -# popsiclepile_3 空手取回 → 苹果冰棍, 退回 popsiclepile_2 +# 冰棍堆组合(顺序无关, 空手取回按方块状态固定, 不存数据): +# 单根 橙子冰棍/西瓜冰棍 放在地上, 手持另一根右键 → 冰棍堆(橙子+西瓜 popsiclepile_2) +# (先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆(橙子+西瓜)) +# 冰棍堆 + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) +# 空手右键(按方块状态固定, 无需记录): +# - 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆 +# - 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍 # (其他口味组合暂无对应堆方块, 不支持堆叠) -POPSICLE_PILE_ADD = "rtdd:apple_popsicleplace" # 能插上堆的冰棍 -POPSICLE_PILE_2 = "rtdd:popsiclepile_2" # 2根堆(基础) -POPSICLE_PILE_3 = "rtdd:popsiclepile_3" # 3根堆 +POPSICLE_SINGLE_ORANGE = "rtdd:orange_popsicle_place" # 单根橙子冰棍(放地上) +POPSICLE_SINGLE_MELON = "rtdd:melon_popsicleplace" # 单根西瓜冰棍(放地上) +POPSICLE_PILE_2 = "rtdd:popsiclepile_2" # 冰棍堆(橙子+西瓜) +POPSICLE_PILE_3 = "rtdd:popsiclepile_3" # 冰棍堆2(橙子+西瓜+苹果) +POPSICLE_PILE_ADD = "rtdd:apple_popsicleplace" # 第三根(苹果冰棍) # ============================================================================ # 四、炒冰盒(冰棍盒·炒冰盒 分组) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/service/YinliaoService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/service/YinliaoService.py index 2da257d..bde2b5e 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/service/YinliaoService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yinliao/service/YinliaoService.py @@ -7,7 +7,7 @@ 1) 榨汁机(果汁·榨汁饮品): 全流程右键 空(juicer) + 水果 → 放入水果(juicer_0, 记录水果类型) → 榨汁中1/2/3(juicer_1/2/3) → 完成(juicer_4) - → 空手右键取出对应果汁, 还原空 + → 手持玻璃杯(fruitjuice_0)右键取出对应果汁, 还原空 【水果类型持久化】放入水果时把水果写进方块实体数据(rtdd_jf), 之后每次 换态(SetBlockNew 会清空方块实体)都【先读旧→替换→写回新】, 因此玩家 在 榨汁2→榨汁3 过程中退出游戏, 重进后取出的果汁仍是第一步放入的水果。 @@ -18,10 +18,13 @@ 3) 炒冰盒(冰棍盒·炒冰盒): 空(frytheicebox) + 冰块 → 放冰(frytheicebox_1) 放冰 + 水果 → 各水果炒冰盒(appleicebox 等) - 各水果炒冰盒(除西瓜) 空手右键 → 取出1个冰沙, 还原空 - 4) 冰棍堆(组合, 同厨具架逻辑): - popsiclepile_2(橙子+西瓜) + 苹果冰棍 → popsiclepile_3(橙子+西瓜+苹果) - popsiclepile_3 空手右键 → 取出苹果冰棍(LIFO), 退回 popsiclepile_2 + 各水果炒冰盒 空手右键 → 取出1个冰沙, 还原空 + 4) 冰棍堆(组合, 顺序无关, 空手取回按方块状态固定, 不存数据): + 单根 橙子冰棍/西瓜冰棍 放地上 + 手持另一根右键 → 冰棍堆(橙子+西瓜 popsiclepile_2) + (先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆) + 冰棍堆 + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) + 空手右键: 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆; + 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍 【与计时转换解耦】 冰棍盒"未定型→定型"的 30 秒计时拆到独立类 YinliaoTimerService。 @@ -34,11 +37,11 @@ 【本类怎么做(自上而下的方法系列)】 handleBlockUse ← 入口:分发器转发右键方块事件 - ├─ _handleJuicer ← 榨汁机: 放入水果/逐级榨汁/取出果汁 + ├─ _handleJuicer ← 榨汁机: 放入水果/逐级榨汁/手持玻璃杯取出果汁 │ ├─ _readFruit / _writeFruit ← 水果类型 读/写(持久化) ├─ _handleLollyBox ← 冰棍盒: 加冰块(启动计时)/加水果/取冰棍 ├─ _handleFryIceBox ← 炒冰盒: 加冰块/加水果/取冰沙 - └─ _handlePopsiclePile ← 冰棍堆: 插苹果冰棍/取回 + └─ _handlePopsiclePile ← 冰棍堆: 单根+另一根叠堆/插苹果冰棍/空手取回 (通用工具) getCarriedItem / consumeItem / replaceBlock / dropItems / checkCooldown ================================================================================ """ @@ -63,6 +66,7 @@ from ..YinliaoData import ( ICE_ITEMS, JUICE_FRUITS, JUICER_CHAIN, JUICER_ADVANCE_TIPS, ICE_LOLLY_TIMER, POPSICLE_FRUITS, POPSICLE_BOX_INFO, + POPSICLE_SINGLE_ORANGE, POPSICLE_SINGLE_MELON, POPSICLE_PILE_ADD, POPSICLE_PILE_2, POPSICLE_PILE_3, FRYICE_FRUITS, FRYICE_BOX_INFO, ) @@ -96,7 +100,9 @@ class YinliaoService(BlueFoxServerSystem): self.featureBlocks.add("rtdd:frytheicebox_1") for _f, info in FRYICE_FRUITS.items(): # 各水果炒冰盒 self.featureBlocks.add(info[0]) - self.featureBlocks.add(POPSICLE_PILE_2) # 冰棍堆 + self.featureBlocks.add(POPSICLE_SINGLE_ORANGE) # 单根橙子冰棍(冰棍堆底) + self.featureBlocks.add(POPSICLE_SINGLE_MELON) # 单根西瓜冰棍(冰棍堆底) + self.featureBlocks.add(POPSICLE_PILE_2) # 冰棍堆 self.featureBlocks.add(POPSICLE_PILE_3) # ---- 右键冷却表 ---- @@ -146,8 +152,9 @@ class YinliaoService(BlueFoxServerSystem): if blockName == "rtdd:frytheicebox" or blockName == "rtdd:frytheicebox_1" \ or blockName in FRYICE_BOX_INFO: return self._handleFryIceBox(blockName, playerId, pos, dim, itemDict, itemName, key) - # ---- 冰棍堆 ---- - if blockName == POPSICLE_PILE_2 or blockName == POPSICLE_PILE_3: + # ---- 冰棍堆(含单根橙子/西瓜冰棍作底) ---- + if blockName == POPSICLE_SINGLE_ORANGE or blockName == POPSICLE_SINGLE_MELON \ + or blockName == POPSICLE_PILE_2 or blockName == POPSICLE_PILE_3: return self._handlePopsiclePile(blockName, playerId, pos, dim, itemDict, itemName, key) return False @@ -186,10 +193,10 @@ class YinliaoService(BlueFoxServerSystem): comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip) return True - # ---- 完成(juicer_4) 空手右键 → 取出果汁, 还原空 ---- + # ---- 完成(juicer_4) 手持玻璃杯右键 → 取出果汁, 还原空 ---- if blockName == "rtdd:juicer_4": - if itemName and itemName != "minecraft:air": - return False # 必须空手取出, 手持其他物品不处理 + if itemName != "rtdd:fruitjuice_0": + return False # 必须手持玻璃杯(fruitjuice_0)取出, 手持其他物品不处理 if not self.checkCooldown(key, 0.5): return True fruit = self._readFruit(pos, dim) @@ -197,6 +204,7 @@ class YinliaoService(BlueFoxServerSystem): if not juiceInfo: return False # 无水果记录(创造直接放置的完成态) → 不反应 juiceBlock, juiceName = juiceInfo + self.consumeItem(playerId, itemDict, 1) # 消耗玻璃杯(果汁成品自带杯) self.dropItems(dim, pos, [{"name": juiceBlock, "count": 1}]) self.replaceBlock(pos, dim, "rtdd:juicer", playerId) # 还原空, 记录随方块清除 comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取出了" + juiceName) @@ -306,28 +314,55 @@ class YinliaoService(BlueFoxServerSystem): # ============================================================================ def _handlePopsiclePile(self, blockName, playerId, pos, dim, itemDict, itemName, key): - # ---- 堆(橙子+西瓜) + 苹果冰棍 → 堆2(橙子+西瓜+苹果) ---- - if blockName == POPSICLE_PILE_2: - if itemName != POPSICLE_PILE_ADD: - return False + # ---- 单根橙子冰棍(地上) + 手持西瓜冰棍 → 冰棍堆(橙子+西瓜) ---- + if blockName == POPSICLE_SINGLE_ORANGE and itemName == POPSICLE_SINGLE_MELON: if not self.checkCooldown(key, 0.5): return True self.consumeItem(playerId, itemDict, 1) - self.replaceBlock(pos, dim, POPSICLE_PILE_3, playerId) - comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把苹果冰棍插到冰棍堆上") + self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把西瓜冰棍叠到橙子冰棍上,变成冰棍堆") return True - - # ---- 堆2 空手右键 → 取出苹果冰棍(后放先取), 退回堆 ---- - if blockName == POPSICLE_PILE_3: - if itemName and itemName != "minecraft:air": - return False + # ---- 单根西瓜冰棍(地上) + 手持橙子冰棍 → 冰棍堆(橙子+西瓜), 顺序无关 ---- + if blockName == POPSICLE_SINGLE_MELON and itemName == POPSICLE_SINGLE_ORANGE: if not self.checkCooldown(key, 0.5): return True - self.dropItems(dim, pos, [{"name": POPSICLE_PILE_ADD, "count": 1}]) + self.consumeItem(playerId, itemDict, 1) self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId) - comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了苹果冰棍") + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把橙子冰棍叠到西瓜冰棍上,变成冰棍堆") return True + # ---- 冰棍堆(橙子+西瓜) ---- + if blockName == POPSICLE_PILE_2: + # + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果) + if itemName == POPSICLE_PILE_ADD: + if not self.checkCooldown(key, 0.5): + return True + self.consumeItem(playerId, itemDict, 1) + self.replaceBlock(pos, dim, POPSICLE_PILE_3, playerId) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把苹果冰棍插到冰棍堆上,叠成三层") + return True + # 空手右键 → 取出西瓜冰棍(按方块状态固定), 变回 单根橙子冰棍 + if not itemName or itemName == "minecraft:air": + if not self.checkCooldown(key, 0.5): + return True + self.dropItems(dim, pos, [{"name": POPSICLE_SINGLE_MELON, "count": 1}]) + self.replaceBlock(pos, dim, POPSICLE_SINGLE_ORANGE, playerId) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了西瓜冰棍,剩下一根橙子冰棍") + return True + return False + + # ---- 冰棍堆2(橙子+西瓜+苹果) ---- + if blockName == POPSICLE_PILE_3: + # 空手右键 → 取出苹果冰棍, 退回 冰棍堆 + if not itemName or itemName == "minecraft:air": + if not self.checkCooldown(key, 0.5): + return True + self.dropItems(dim, pos, [{"name": POPSICLE_PILE_ADD, "count": 1}]) + self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了苹果冰棍") + return True + return False + return False # ============================================================================ diff --git a/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_soybean.json b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_soybean.json index bfb6300..179cf68 100644 --- a/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_soybean.json +++ b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_soybean.json @@ -1,18 +1,18 @@ { - "format_version": "1.10", - "minecraft:item": { - "description": { - "identifier": "rtdd:soybean", - "category": "xy_ingredients" - }, - "components": { - "minecraft:max_stack_size": 64, - "minecraft:use_animation": "eat", - "minecraft:use_duration": 1.6, - "minecraft:food": { - "nutrition": 2, - "saturation_modifier": "low" - } + "format_version": "1.10", + "minecraft:item": { + "components": { + "minecraft:food": { + "nutrition": 2, + "saturation_modifier": "low" + }, + "minecraft:max_stack_size": 64, + "minecraft:use_animation": "eat", + "minecraft:use_duration": 1.6 + }, + "description": { + "category": "xy_ingredients", + "identifier": "rtdd:soybean" + } } - } -} +} \ No newline at end of file diff --git a/resource_pack_Are13Lvd/netease_items_res/rtdd_soybean.json b/resource_pack_Are13Lvd/netease_items_res/rtdd_soybean.json new file mode 100644 index 0000000..48a80c7 --- /dev/null +++ b/resource_pack_Are13Lvd/netease_items_res/rtdd_soybean.json @@ -0,0 +1,11 @@ +{ + "format_version": "1.10", + "minecraft:item": { + "description": { + "identifier": "rtdd:soybean" + }, + "components": { + "minecraft:icon": "soybean" + } + } +} diff --git a/resource_pack_Are13Lvd/texts/zh_CN.lang b/resource_pack_Are13Lvd/texts/zh_CN.lang index 42fb612..8503b4e 100644 --- a/resource_pack_Are13Lvd/texts/zh_CN.lang +++ b/resource_pack_Are13Lvd/texts/zh_CN.lang @@ -640,7 +640,6 @@ tile.rtdd:bowlofrice.name=米饭_1(熟米饭_形态1) tile.rtdd:bowlabeefbonebroth.name=胡萝卜土豆牛骨汤 tile.rtdd:carrotandbeef_1.name=炒锅_2(黑椒牛排_熟) itemGroup.tabrtdd=乡野工具 -itemGroup.tabrtdd=乡野工具 tile.rtdd:eggsoup.name=汤锅_42(蛋花汤) tile.rtdd:orangepile.name=土豆堆_2(橘子堆)_禁用 tile.rtdd:dead_squid_1.name=死鱿鱼(切掉鱿鱼须) @@ -1235,4 +1234,4 @@ item.rtdd:scallions.name=葱 item.rtdd:grape.name=葡萄 item.rtdd:peach.name=桃子 item.rtdd:orange.name=橙子 -item.rtdd:soybean.name=黄豆 \ No newline at end of file +item.rtdd:soybean.name=黄豆 diff --git a/resource_pack_Are13Lvd/textures/flipbook_textures_items.json b/resource_pack_Are13Lvd/textures/flipbook_textures_items.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/resource_pack_Are13Lvd/textures/flipbook_textures_items.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/resource_pack_Are13Lvd/textures/item_texture.json b/resource_pack_Are13Lvd/textures/item_texture.json index 668d0dc..ed2672c 100644 --- a/resource_pack_Are13Lvd/textures/item_texture.json +++ b/resource_pack_Are13Lvd/textures/item_texture.json @@ -1,71 +1,101 @@ { "resource_pack_name": "rtdd", "texture_data": { - "cleaver": { - "textures": "textures/items/cleaver" - }, - "legsleep": { - "textures": "textures/items/legsleep" - }, - "sheeploins": { - "textures": "textures/items/sheeploins" - }, - "sheepracks": { - "textures": "textures/items/sheepracks" + "beancurd": { + "textures": "textures/items/beancurd" }, "beef_tenderloin": { "textures": "textures/items/beef_tenderloin" }, + "brownrice": { + "textures": "textures/items/rice" + }, + "cleaver": { + "textures": "textures/items/cleaver" + }, + "costillavacaes": { + "textures": "textures/items/4a3f5c4215600f97c1902db88590a54" + }, + "crab": { + "textures": "textures/items/crab" + }, + "crushedgarlic": { + "textures": "textures/items/crushedgarlic" + }, + "crushedmeat": { + "textures": "textures/items/crushedmeat" + }, + "grape": { + "textures": "textures/items/grape" + }, + "ham": { + "textures": "textures/items/ham" + }, "legcow": { "textures": "textures/items/legcow" }, + "legsleep": { + "textures": "textures/items/legsleep" + }, + "lobster": { + "textures": "textures/items/lobster" + }, + "noodles": { + "textures": "textures/items/raw_pasta" + }, + "oil_chickennuggets": { + "textures": "textures/items/oil_chickennuggets" + }, + "oilfish_0": { + "textures": "textures/items/oilfish_0" + }, + "oilfrenchfries": { + "textures": "textures/items/oilfrenchfries" + }, + "oilpork": { + "textures": "textures/items/oilpork" + }, + "oiltempura": { + "textures": "textures/items/oiltempura" + }, + "orange": { + "textures": "textures/items/ju" + }, + "peach": { + "textures": "textures/items/taozi1" + }, + "pepper": { + "textures": "textures/items/pepper" + }, "porkloins": { "textures": "textures/items/porkloins" }, "porkrib": { "textures": "textures/items/porkrib" }, - "ham": { - "textures": "textures/items/ham" - }, - "crushedmeat": { - "textures": "textures/items/crushedmeat" + "potandspoon": { + "textures": "textures/items/pot_and_spoon" }, "rawsquidwhiskersr": { "textures": "textures/items/rawsquidwhiskersr" }, - "crab": { - "textures": "textures/items/crab" - }, - "lobster": { - "textures": "textures/items/lobster" + "rtdd:soybean": { + "textures": "textures/items/soybean" }, "sashimi": { "textures": "textures/items/sashimi" }, - "thedriedfish": { - "textures": "textures/items/thedriedfish" + "scallions": { + "textures": "textures/items/cong_" }, - "beancurd": { - "textures": "textures/items/beancurd" + "sheeploins": { + "textures": "textures/items/sheeploins" }, - "crushedgarlic": { - "textures": "textures/items/crushedgarlic" + "sheepracks": { + "textures": "textures/items/sheepracks" }, - "oiltempura": { - "textures": "textures/items/oiltempura" - }, - "oilfish_0": { - "textures": "textures/items/oilfish_0" - }, - "oilpork": { - "textures": "textures/items/oilpork" - }, - "oil_chickennuggets": { - "textures": "textures/items/oil_chickennuggets" - }, - "oilfrenchfries": { - "textures": "textures/items/oilfrenchfries" + "soybean": { + "textures": "textures/items/soybean" }, "spatula": { "textures": "textures/items/guo_chan_" @@ -73,35 +103,8 @@ "spatula_oil": { "textures": "textures/items/guo_chan_" }, - "potandspoon": { - "textures": "textures/items/pot_and_spoon" - }, - "pepper": { - "textures": "textures/items/pepper" - }, - "brownrice": { - "textures": "textures/items/rice" - }, - "noodles": { - "textures": "textures/items/raw_pasta" - }, - "costillavacaes": { - "textures": "textures/items/4a3f5c4215600f97c1902db88590a54" - }, - "scallions": { - "textures": "textures/items/cong_" - }, - "grape": { - "textures": "textures/items/grape" - }, - "peach": { - "textures": "textures/items/taozi1" - }, - "orange": { - "textures": "textures/items/ju" - }, - "soybean": { - "textures": "textures/items/soybean" + "thedriedfish": { + "textures": "textures/items/thedriedfish" } } } \ No newline at end of file diff --git a/resource_pack_Are13Lvd/textures/items/soybean.png b/resource_pack_Are13Lvd/textures/items/soybean.png new file mode 100644 index 0000000000000000000000000000000000000000..d62f1740d671d80c1d779fd7fb18fefa3db182df GIT binary patch literal 350 zcmV-k0iphhP)07gcLxlFi%fSFa0fkVK6URO0_9r_=uT zmP!7{>H<(8!T@@pF+jtGjYoxnfnhUlFTk7$@;k^oNCx2#7pNEhzqnle|Lxt`|3U0v zH-7dzd(7e9K*ks@s7@FEZ>-J9@Z`oy1~FL+24_niknj&>=MzN70^`}M-@!(||8$gL w|H-eQFu|)CBMe}MFhP 对应果汁 -转换条件:[右键 进行转换, 取出果汁] -机制: 空手右键, 获得 第一步放入水果 对应的果汁(按记录的水果类型) +转换条件:[手持 玻璃杯(fruitjuice_0) 右键 进行转换, 消耗1个] +机制: 手持玻璃杯右键榨汁机(完成), 消耗1个玻璃杯, 获得 第一步放入水果 对应的果汁 + (按记录的水果类型, 果汁成品自带杯) - 西瓜 -> 西瓜汁 fruitjuice_1 - 橙子 -> 橙汁 fruitjuice_2 - 苹果 -> 苹果汁 fruitjuice_3 @@ -62,12 +63,15 @@ todo 功能实现的时候需要考虑 玩家退出游戏后 我的步骤已经 冰棍盒还原为 冰棍盒(未定型) (按批注: 各水果冰棍盒取完冰棍后应还原成未定型) -10. 冰棍堆 组合逻辑(同厨具架: 与放入顺序无关, 后放先取) -转换条件:[手持 冰棍 右键 冰棍堆 进行堆叠, 消耗1根] -机制: 手持冰棍右键冰棍堆, 消耗1根, 按组合成型(先放A再放B == 先放B再放A) +10. 冰棍堆 组合逻辑(顺序无关, 空手取回按方块状态固定, 不存数据) +转换条件:[手持 冰棍 右键 单根冰棍/冰棍堆 进行堆叠, 消耗1根] +机制: 单根 橙子冰棍/西瓜冰棍 放地上, 手持另一根右键 → 冰棍堆(橙子+西瓜) popsiclepile_2 + 顺序无关: 先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆(橙子+西瓜) - 橙子+西瓜 -> 冰棍堆(橙子+西瓜) popsiclepile_2 -- 橙子+西瓜+苹果 -> 冰棍堆2(橙子+西瓜+苹果) popsiclepile_3 -取回: 空手右键, 后放先取(LIFO), 取走最后放入的那根冰棍, 形态退回剩余组合 +- 冰棍堆 + 苹果冰棍 -> 冰棍堆2(橙子+西瓜+苹果) popsiclepile_3 +取回: 空手右键(按方块状态固定, 无需记录后放入的那根) +- 冰棍堆2 -> 取出 苹果冰棍, 退回 冰棍堆 +- 冰棍堆 -> 取出 西瓜冰棍, 变回 单根橙子冰棍 (其他口味组合暂无对应堆方块, 不支持堆叠) ======================================== diff --git a/tuilun/全部功能做了什么.txt b/tuilun/全部功能做了什么.txt index d7c6e49..0442fee 100644 --- a/tuilun/全部功能做了什么.txt +++ b/tuilun/全部功能做了什么.txt @@ -262,7 +262,7 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 一、榨汁机 (果汁·榨汁饮品, juicer 系列, 全流程右键) - 空(juicer) + 水果(消耗1) → 放入水果(juicer_0), 并把水果类型写入方块实体数据(rtdd_jf) [已实现] - 放入水果 → 榨汁中1 → 榨汁中2 → 榨汁中3 → 完成: 右键逐级推进(每级0.5s冷却) [已实现] -- 完成(juicer_4) 空手右键 → 掉落对应果汁 + 还原空(juicer) [已实现] +- 完成(juicer_4) 手持玻璃杯(fruitjuice_0)右键(消耗1玻璃杯) → 掉落对应果汁 + 还原空(juicer) [已实现] - 果汁由第一步放入的水果决定: 西瓜片→西瓜汁(fruitjuice_1)/橙子→橙汁(_2)/苹果→苹果汁(_3)/ 桃子→桃子汁(_4)/葡萄→葡萄汁(_6)/黄豆→豆浆(_7) [已实现] - 持久化: 每次换态 SetBlockNew 会清空方块实体, 都"先读旧→替换→写回新", 玩家在 榨汁2→榨汁3 @@ -276,9 +276,11 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) - 各口味冰棍盒 空手右键 → 掉落2根对应冰棍 + 还原未定型 [已实现] - 定型计时用绝对时间戳写方块实体数据, 退出重进继续计时 [已实现] -三、冰棍堆 (组合, popsiclepile_2/3) -- 冰棍堆(橙子+西瓜 popsiclepile_2) + 苹果冰棍(消耗1) → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) [已实现] -- 冰棍堆2 空手右键 → 掉落苹果冰棍(后放先取 LIFO) + 退回冰棍堆 [已实现] +三、冰棍堆 (组合, 顺序无关, 空手取回按方块状态固定, 不存数据) +- 单根 橙子冰棍/西瓜冰棍 放地上 + 手持另一根右键(消耗1) → 冰棍堆(橙子+西瓜 popsiclepile_2) + (先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆) [已实现] +- 冰棍堆 + 苹果冰棍(消耗1) → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) [已实现] +- 空手右键: 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆; 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍 [已实现] 四、炒冰盒 (冰棍盒·炒冰盒, frytheicebox 系列) - 空(frytheicebox) + 冰块(消耗1) → 放冰(frytheicebox_1) [已实现] diff --git a/tuilun/厨具转化关系.txt b/tuilun/厨具转化关系.txt index 2fe0afa..c32ea12 100644 --- a/tuilun/厨具转化关系.txt +++ b/tuilun/厨具转化关系.txt @@ -13,7 +13,7 @@ ======================================== 1. 炉灶(空) -> 炉灶(加木条) 转换条件:[手持 木条/木块 右键 进行转换,消耗1个] -机制: 手持木条右键,消耗1个,加木条 +机制: 手持木条右键,消耗4个,加木条 2. 炉灶(加木条) -> 炉灶(点燃) 转换条件:[手持 打火石/烈焰弹 右键 进行转换]