diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/MianshiData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/MianshiData.py index 444493c..99c3e08 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/MianshiData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/MianshiData.py @@ -81,10 +81,20 @@ NAME_MAP = { "rtdd:bread_4": "甜甜圈", "rtdd:bread_4c": "甜甜圈胚(烤熟)", "rtdd:shouroubao": "熟肉包子", "rtdd:cream_0": "奶油", "rtdd:dumplings_4": "生饺子", "rtdd:roubaozi_3": "生肉包子", - "rtdd:bamboo_4": "竹筒(加入肉)", "rtdd:plate_34": "蛋液半成品", + "rtdd:bamboo_4": "竹筒(加肉)", "rtdd:plate_34": "蛋液半成品", "rtdd:dought_7": "生面饼", "rtdd:farineblock_1": "面粉(加鸡蛋)", "rtdd:cakebatterblock": "蛋糕面糊(烤熟)", "rtdd:plate_35": "布丁半成品", "rtdd:souffle_0": "舒芙蕾", "rtdd:dumplings_0": "饺子皮", + # ---- 计时/烤制用到的方块名 ---- + "rtdd:dough_0": "发酵面团", "rtdd:rawdough_4": "和好的面团", + "rtdd:breaddough_1": "法棍面胚", "rtdd:breaddough_1a": "发面", + "rtdd:breaddough_2": "吐司面胚", "rtdd:breaddough_4d": "甜甜圈胚", + "rtdd:dought_9": "可颂面胚", "rtdd:cakebatterblock_0": "蛋糕面糊(生)", + "rtdd:creampastry_0": "舒芙蕾半成品", "rtdd:cream_caramel": "焦糖布丁", + "rtdd:steamerdumplings_0": "蒸笼(饺子)", "rtdd:steamerdumplings_1": "熟饺子", + "rtdd:baozilong_1": "蒸笼(包子)", "rtdd:baozilong_2": "熟包子", + "rtdd:bamboo_6": "蒸笼(竹筒饭)", "rtdd:bamboo_7": "熟竹筒饭", + "rtdd:steamermilkandegg": "蒸笼(蛋液)", "rtdd:steamermilkandegg_1": "蒸牛奶鸡蛋", } # 竹筒饭加肉: 接受原版常见生熟肉类(【待确认】具体肉类未定, 先放开常见肉) @@ -119,7 +129,7 @@ SWITCH_RULES = [ {"block": "rtdd:rawdough_1", "item": None, "target": "rtdd:rawdough_2", "tip": "§a和面中…"}, {"block": "rtdd:rawdough_2", "item": None, "target": "rtdd:rawdough_3", "tip": "§a和面中…"}, {"block": "rtdd:rawdough_3", "item": None, "target": "rtdd:rawdough_4", - "startTimer": "rtdd:rawdough_4", "tip": "§a和面完成, 开始发酵(60秒)"}, + "startTimer": "rtdd:rawdough_4", "tip": "§a和面完成, 开始发酵"}, {"block": "rtdd:rawdough_4", "item": CLEAVER, "action": "chop_smalldough", "tip": "§a切出了8个小面团"}, {"block": "rtdd:dough_0", "item": ROLLINGPIN, "target": "rtdd:dough_1", @@ -260,7 +270,7 @@ SWITCH_RULES = [ # ---- 八、面团·胚料组(右键循环转换) ---- {"block": "rtdd:dough_0", "item": None, "target": "rtdd:breaddough_1", - "startTimer": "rtdd:breaddough_1", "tip": "§a转成法棍面胚, 开始发酵(60秒)"}, + "startTimer": "rtdd:breaddough_1", "tip": "§a转成法棍面胚, 开始发酵"}, {"block": "rtdd:breaddough_1", "item": None, "target": "rtdd:breaddough_2", "tip": "§a转成吐司面胚"}, {"block": "rtdd:breaddough_2", "item": None, "target": "rtdd:breaddough_4d", diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiService.py index 5c77f11..1bd78fd 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiService.py @@ -90,30 +90,44 @@ class MianshiService(BlueFoxServerSystem): for b in OVEN_RESULT_BLOCKS: self.featureBlocks.add(b) - # ---- 目标方块 -> "下一步操作"提示(自动生成, 供转换/计时完成提示追加) ---- - self.nextOps = {} + # ---- 结果方块/物品 -> "下一步"可读提示(供转换/入笼提示追加) ---- + # 例子: 饺子皮 -> "加入 猪肉馅、青菜碎"; 可颂面胚 -> "放在烤炉上等计时(60秒)结束变成 可颂" + self.nextTips = {} + + def _addTip(key, op): + self.nextTips.setdefault(key, []).append(op) + + # 1) 右键转换: 以"当前方块"为 key, 列出玩家可做的操作 for r in SWITCH_RULES: item = r.get("item") if item is None: - op = "空手右键" + _addTip(r["block"], "空手右键") elif item == CLEAVER: - op = "手持菜刀右键" + _addTip(r["block"], "手持菜刀右键") elif item == ROLLINGPIN: - op = "手持擀面杖右键" + _addTip(r["block"], "手持擀面杖右键") + elif item == PLATE: + _addTip(r["block"], "手持盘子右键取出") else: - op = "手持%s右键" % NAME_MAP.get(item, "对应物品") - self.nextOps.setdefault(r["block"], []).append(op) + _addTip(r["block"], "加入" + NAME_MAP.get(item, "对应物品")) + # 2) 手持物品右键表面(itemUseOn): 以"手持物品"为 key for r in ITEM_USE_ON_RULES: - it = r["item"] - self.nextOps.setdefault(it, []).append( - "手持%s右键%s" % (NAME_MAP.get(it, "它"), NAME_MAP.get(r["surface"], "表面"))) + _addTip(r["item"], "手持%s右键%s" % ( + NAME_MAP.get(r["item"], "它"), NAME_MAP.get(r["surface"], "表面"))) + # 3) 计时: 以"计时源方块"为 key, 说清等多久、变成什么 for r in TIMER_RULES: src = r["source"] - if r.get("below"): - self.nextOps.setdefault(src, []).append( - "放在%s上计时" % NAME_MAP.get(r["below"][0], "下方方块")) + sec = r.get("time", 60) + tgt = NAME_MAP.get(r["target"], r["target"]) + if r.get("below") == [OVEN]: + _addTip(src, "放在烤炉上等计时(%d秒)结束变成 %s" % (sec, tgt)) else: - self.nextOps.setdefault(src, []).append("自动计时") + _addTip(src, "等计时(%d秒)结束变成 %s" % (sec, tgt)) + + # ---- 计时源方块 -> 计时结束后的成品名(烤炉固定开始烤制提示用) ---- + self.timerTargetName = {} + for r in TIMER_RULES: + self.timerTargetName[r["source"]] = NAME_MAP.get(r["target"], r["target"]) # ---- itemUseOn 映射: 手持物品 -> 规则 ---- self.itemUseOnMap = {} @@ -161,7 +175,9 @@ class MianshiService(BlueFoxServerSystem): if blockName in OVEN_FIX_BLOCKS and self._belowIs(dim, pos, OVEN): FeatureDispatcher.startTimerFor(blockName, dim, pos, playerId) if self.checkCooldown(key, 0.4): - comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a开始烤制…(60秒), 烤好空手右键取走") + tip = "§a开始烤制…(60秒),等计时结束变成 " + \ + self.timerTargetName.get(blockName, "成品") + comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip) return True # ---- 烤制成品取走: 空手右键成品(下方是烤炉) -> 成品掉落物, 烤炉不动 ---- @@ -250,9 +266,9 @@ class MianshiService(BlueFoxServerSystem): if rule.get("tip"): tip = rule["tip"] - nxt = self._nextOpsFor(rule.get("replace") or rule.get("above")) + nxt = self._nextStepTip(rule.get("replace") or rule.get("above")) if nxt: - tip += ";下一步: " + "、".join(nxt) + tip += ";" + nxt comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip) return True @@ -348,9 +364,9 @@ class MianshiService(BlueFoxServerSystem): # 提示(追加"下一步操作"指引) if recipe.get("tip"): tip = recipe["tip"] - nxt = self._nextOpsFor(recipe.get("target") or recipe.get("dropItem")) + nxt = self._nextStepTip(recipe.get("target") or recipe.get("dropItem")) if nxt: - tip += ";下一步: " + "、".join(nxt) + tip += ";" + nxt comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip) # ============================================================================ @@ -368,18 +384,30 @@ class MianshiService(BlueFoxServerSystem): """方块/物品的中文名(提示用), 未知则原样""" return NAME_MAP.get(blockName, blockName) - def _nextOpsFor(self, key): - """返回某方块/物品的"下一步操作"提示列表(去重保序)""" + def _nextStepTip(self, key): + """按结果方块/物品生成"你可以…"的可读下一步提示; 无则返回空串 + 例: 饺子皮 -> "你可以加入 猪肉馅、青菜碎" + 可颂面胚 -> "你可以放在烤炉上等计时(60秒)结束变成 可颂" + """ if not key: - return [] - ops = self.nextOps.get(key, []) + return "" + ops = self.nextTips.get(key, []) seen = set() - out = [] + uniq = [] for o in ops: if o not in seen: seen.add(o) - out.append(o) - return out + uniq.append(o) + if not uniq: + return "" + # 加料类("加入 XX")合并成一句(用顿号); 其余(工具/计时)用"或"并列 + adds = [o[2:] for o in uniq if o.startswith("加入")] + others = [o for o in uniq if not o.startswith("加入")] + parts = [] + if adds: + parts.append("加入 " + "、".join(adds)) + parts.extend(others) + return "你可以" + " 或 ".join(parts) # ============================================================================ # 六、工具方法:获取玩家主手物品 diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py index 187e9a3..8b98e96 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py @@ -148,7 +148,7 @@ class MianshiTimerService(BlueFoxServerSystem): tdur = blockData["rtdd_tdur"] if time.time() - tstart >= tdur: - self._finishTimer(dim, pos, rule, blockData) + self._finishTimer(dim, pos, rule) except Exception: pass @@ -181,20 +181,9 @@ class MianshiTimerService(BlueFoxServerSystem): self._setAir(dim, pos) self._notifyIfOnline(tp, BREAK_TIP) - # 蒸制/烤制/发酵 完成后的"下一步"指引(按目标方块) - _STEAM_DONE = {"rtdd:steamerdumplings_1", "rtdd:baozilong_2", - "rtdd:bamboo_7", "rtdd:steamermilkandegg_1"} - _OVEN_DONE = {"rtdd:bread_1", "rtdd:bread_2", "rtdd:bread_3", "rtdd:bread_4c", - "rtdd:cakebatterblock", "rtdd:plate_35", "rtdd:souffle_0"} - - def _finishTimer(self, dim, pos, rule, data): + def _finishTimer(self, dim, pos, rule): + """到点转换(计时结束提示已取消, 只保留开始计时提示; 异常提示走 _handleBelowBroken)""" try: - # 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读) - tp = "" - try: - tp = data["rtdd_tp"] or "" - except Exception: - tp = "" cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim) if cur and cur.get("name") != rule["source"]: self._clearTimerData(dim, pos) @@ -202,50 +191,10 @@ class MianshiTimerService(BlueFoxServerSystem): # 到点转换 self.replaceBlock(pos, dim, rule["target"], None) self._clearTimerData(dim, pos) - tip = rule.get("doneTip", "") - if tip: - tip += self._nextStepTip(rule) - self._notifyIfOnline(tp, tip) - if not tp: - self._notifyNearby(dim, pos, tip) except Exception: pass - def _nextStepTip(self, rule): - """计时完成后的"下一步"指引(让玩家知道该干什么)""" - t = rule.get("target", "") - if t in self._STEAM_DONE: - return ";空手右键取出" - if t in self._OVEN_DONE: - return ";空手右键取走" - if t == "rtdd:dough_0": - return ";可空手擀面或手持菜刀切小面团" - if t == "rtdd:breaddough_1a": - return ";放烤炉上烤制" - return "" - - def _notifyNearby(self, dim, pos, tip, radius=6): - """完成提示兜底: 发起玩家不在/未知时, 提示该方块附近(三维距离)的在线玩家""" - if not tip: - return - try: - r2 = radius * radius - for pid in comp.CreateGame(LevelId).GetAllPlayerIds(): - try: - if comp.CreateDimension(pid).GetEntityDimensionId() != dim: - continue - fp = comp.CreatePos(pid).GetFootPos() - if fp is None: - continue - dx = fp[0] - pos[0] - dy = fp[1] - pos[1] - dz = fp[2] - pos[2] - if dx * dx + dy * dy + dz * dz <= r2: - comp.CreateMsg(pid).NotifyOneMessage(pid, tip) - except Exception: - pass - except Exception: - pass + # 计时完成后的"下一步"指引已取消(提示只保留开始计时的), 见 tuilun 记录 # ============================================================================ # 四、计时数据读写(存在方块实体数据里,重启不丢) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/YouguoData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/YouguoData.py index d8b19f5..ee1f790 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/YouguoData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/YouguoData.py @@ -84,41 +84,41 @@ SWITCH_RULES = [ {"block": OILPOT_1, "item": BREADED_CHICKEN, "target": CHICKEN_0, "consume": 1, "startTimer": CHICKEN_0, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入裹粉鸡块, 开始炸制(60秒半熟, 再30秒熟)"}, + "tip": "§a放入裹粉鸡块, 等计时(60秒)结束变成 炸鸡块(半熟), 再等(30秒)结束变成 炸鸡块(熟)"}, {"block": OILPOT_1, "item": BREADED_PORK, "target": PORK_0, "consume": 1, "startTimer": PORK_0, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入裹粉猪肉, 开始炸制(60秒半熟, 再30秒熟)"}, + "tip": "§a放入裹粉猪肉, 等计时(60秒)结束变成 炸猪排(半熟), 再等(30秒)结束变成 炸猪排(熟)"}, {"block": OILPOT_1, "item": BREADED_FRIES, "target": FRIES_0, "consume": 3, "startTimer": FRIES_0, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入裹粉薯条x3, 开始炸制(60秒半熟, 再30秒熟)"}, + "tip": "§a放入裹粉薯条x3, 等计时(60秒)结束变成 炸薯条(半熟), 再等(30秒)结束变成 炸薯条(熟)"}, {"block": OILPOT_1, "item": BREADED_FISH, "target": FISH_0, "consume": 1, "startTimer": FISH_0, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入裹粉鱼, 开始炸制(60秒半熟, 再30秒熟)"}, + "tip": "§a放入裹粉鱼, 等计时(60秒)结束变成 炸鱼块(半熟), 再等(30秒)结束变成 炸鱼块(熟)"}, {"block": OILPOT_1, "item": BREADED_TEMPURA, "target": TEMPURA_1, "consume": 4, "startTimer": TEMPURA_1, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入裹粉天妇罗x4, 开始炸制(60秒)"}, + "tip": "§a放入裹粉天妇罗x4, 等计时(60秒)结束变成 炸天妇罗(熟)"}, {"block": OILPOT_1, "item": DUMPLINGS, "target": DUMPLING_1, "consume": 3, "startTimer": DUMPLING_1, "needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上", - "tip": "§a放入生饺子x3, 开始炸制(60秒), 计时/取出都在炸饺子上"}, + "tip": "§a放入生饺子x3, 等计时(60秒)结束变成 炸饺子(熟)"}, # ---- 三、出锅(熟炸物 + 盘子 -> 掉落盘装成品) ---- {"block": CHICKEN_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_CHICKEN, "consume": 1, "tip": "§a取出盘装鸡块"}, + "dropItem": PLATE_CHICKEN, "consume": 1, "tip": "§a取出盘装鸡块, 油锅恢复满油, 可继续放料"}, {"block": PORK_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_PORK, "consume": 1, "tip": "§a取出炸猪排(盘装)"}, + "dropItem": PLATE_PORK, "consume": 1, "tip": "§a取出炸猪排(盘装), 油锅恢复满油, 可继续放料"}, {"block": FRIES_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_FRIES, "consume": 1, "tip": "§a取出炸薯条(盘装)"}, + "dropItem": PLATE_FRIES, "consume": 1, "tip": "§a取出炸薯条(盘装), 油锅恢复满油, 可继续放料"}, {"block": FISH_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_FISH, "consume": 1, "tip": "§a取出盘装炸鱼"}, + "dropItem": PLATE_FISH, "consume": 1, "tip": "§a取出盘装炸鱼, 油锅恢复满油, 可继续放料"}, {"block": TEMPURA_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_TEMPURA, "consume": 1, "tip": "§a取出天妇罗炸虾"}, + "dropItem": PLATE_TEMPURA, "consume": 1, "tip": "§a取出天妇罗炸虾, 油锅恢复满油, 可继续放料"}, {"block": DUMPLING_2, "item": PLATE, "action": "take_out", - "dropItem": PLATE_DUMPLINGS, "consume": 1, "tip": "§a取出炸饺子(盘装)"}, + "dropItem": PLATE_DUMPLINGS, "consume": 1, "tip": "§a取出炸饺子(盘装), 油锅恢复满油, 可继续放料"}, ] # ============================================================================ diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py index 2fa419d..37fa9e2 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py @@ -141,7 +141,7 @@ class YouguoTimerService(BlueFoxServerSystem): tdur = blockData["rtdd_tdur"] if time.time() - tstart >= tdur: - self._finishTimer(dim, pos, rule, blockData) + self._finishTimer(dim, pos, rule) except Exception: pass @@ -154,14 +154,9 @@ class YouguoTimerService(BlueFoxServerSystem): tp = "" self._notifyIfOnline(tp, "§c油锅下的炉灶移走了, 暂停炸制") - def _finishTimer(self, dim, pos, rule, data): + def _finishTimer(self, dim, pos, rule): + """到点转换(计时结束提示已取消, 只保留放料时的开始提示; 炉灶移走提示走 _handleBelowBroken)""" try: - # 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读) - tp = "" - try: - tp = data["rtdd_tp"] or "" - except Exception: - tp = "" cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim) if cur and cur.get("name") != rule["source"]: self._clearTimerData(dim, pos) @@ -169,12 +164,6 @@ class YouguoTimerService(BlueFoxServerSystem): # 到点转换 self.replaceBlock(pos, dim, rule["target"], None) self._clearTimerData(dim, pos) - # 计时结束提示: 发给发起玩家; 发起者不在/未知则提示附近 - tip = rule.get("doneTip", "") - if tip: - self._notifyIfOnline(tp, tip) - if not tp: - self._notifyNearby(dim, pos, tip) except Exception: pass @@ -221,29 +210,6 @@ class YouguoTimerService(BlueFoxServerSystem): except Exception: pass - def _notifyNearby(self, dim, pos, tip, radius=6): - """完成提示兜底: 发起玩家不在/未知时, 提示该方块附近(三维距离)的在线玩家""" - if not tip: - return - try: - r2 = radius * radius - for pid in comp.CreateGame(LevelId).GetAllPlayerIds(): - try: - if comp.CreateDimension(pid).GetEntityDimensionId() != dim: - continue - fp = comp.CreatePos(pid).GetFootPos() - if fp is None: - continue - dx = fp[0] - pos[0] - dy = fp[1] - pos[1] - dz = fp[2] - pos[2] - if dx * dx + dy * dy + dz * dz <= r2: - comp.CreateMsg(pid).NotifyOneMessage(pid, tip) - except Exception: - pass - except Exception: - pass - # ============================================================================ # 六、工具方法:替换方块 # ============================================================================ diff --git a/tuilun/全部功能做了什么.txt b/tuilun/全部功能做了什么.txt index b9f311d..2e9670a 100644 --- a/tuilun/全部功能做了什么.txt +++ b/tuilun/全部功能做了什么.txt @@ -639,10 +639,11 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 【蒸笼机制】手持生食右键蒸笼 -> 蒸笼变蒸X_生(蒸笼原位); 蒸X_生下方是 点燃的炉灶(stove_2)才计时60秒 -> 熟; 取出时蒸笼归位 [已实现] 【信息提示】所有转换有成功提示(含消耗数量); 计时开始提示(和面完成开始发酵/ -转法棍胚开始发酵/烤制60秒/蒸制); 计时完成提示发给发起玩家(发起者不在则提示附近 -玩家); 烤炉被打碎/蒸笼下炉灶移走有中断/暂停提示 [已实现] -【操作方向提示】每个转换完成后自动追加"下一步"指引(如: 空手右键/手持菜刀右键/ -手持生饺子右键蒸笼/放烤炉上计时/空手右键取走等), 玩家始终知道下一步干什么 [已实现] +转法棍胚开始发酵/烤制60秒/蒸制)并说清"等计时(X秒)结束变成什么"; 计时结束提示 +【已取消】(只保留开始计时提示); 烤炉被打碎/蒸笼下炉灶移走有中断/暂停提示 [已实现] +【操作方向提示】每个转换完成后自动追加可读的下一步指引: 加料类说"你可以加入 猪肉馅、 +青菜碎", 计时类说"你可以等计时(60秒)结束变成 法棍"/"放在烤炉上等计时(60秒)结束变成 +可颂", 工具类说"手持菜刀右键/手持盘子右键取出"等, 玩家始终知道下一步干什么 [已实现] 【右键体验】右键转换/放入/取出均有0.4秒冷却(长按不会疯狂弹提示); 手持方块物品 右键"功能方块"时若无非处理服务, 直接取消默认放置, 不会"先放一个方块再消失" [已实现] @@ -664,7 +665,7 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 二、炸制计时(炸物方块正下方是点燃炉灶才计时, 计时数据在炸物方块本身; 炉灶移走暂停+提示) - 炸鸡块/炸猪排/炸薯条/炸鱼块: 生 -> 60秒 -> 半熟 -> 30秒 -> 熟 [已实现] - 炸天妇罗/炸饺子: 生 -> 60秒 -> 熟(单级); 炸饺子=油锅+饺子合体, 计时/取出均在炸饺子上 [已实现] -- 计时完成提示(半熟/熟)发给发起玩家, 不在则提示附近6格 [已实现] +- 计时结束提示【已取消】(只保留放料时的开始提示"等计时(X秒)结束变成什么") [已实现] 三、出锅(手持盘子右键熟炸物, 消耗1盘子, 熟炸物取出后【变回油锅(满油)】可直接再放料, 盘装成品以掉落物形式出现) diff --git a/tuilun/全部功能没做什么.txt b/tuilun/全部功能没做什么.txt index c9a0181..3522f6b 100644 --- a/tuilun/全部功能没做什么.txt +++ b/tuilun/全部功能没做什么.txt @@ -230,3 +230,9 @@ 二、巧克力蛋糕系列 (蛋糕胚 + 巧克力) -- 未做原因: 转化文档标注"巧克力暂不实现" +三、计时结束提示【已取消】(面食/油锅通用) +- 计时到点(烤制/蒸制/发酵/炸制完成) 不再发"完成"提示, 只保留开始计时的提示 + (开始计时时会说清"等计时(X秒)结束变成什么") +- 取消原因: 用户要求"计时的提示就只给开始计时的" (2026-09-11) +- 保留: 异常中断提示(烤炉被打碎 -> 方块掉落+提示; 蒸笼/油锅下炉灶移走 -> 暂停+提示) +