ceshi 2 bug处理ok

This commit is contained in:
wenhe committed 2026-09-23 16:58:44 +08:00
1 parent b768ff1555
commit faa3a22631
8 files changed
+314 -52

No files matched your search

@@ -105,10 +105,9 @@ class MianshiService(BlueFoxServerSystem):
self.timerSources.add(src)
self.featureBlocks.add(src)
if src not in self.startTimerTips:
sec = r.get("time", 60)
tgt = NAME_MAP.get(r["target"], r["target"])
self.startTimerTips[src] = "§a开始蒸制: 还需%d秒, 计时结束变成 %s" % (sec, tgt)
self.timingTips[src] = "§e正在蒸制中: 还需%d秒, 计时结束变成 %s" % (sec, tgt)
self.startTimerTips[src] = "§a开始蒸制, 计时结束变成 %s" % tgt
self.timingTips[src] = "§e正在蒸制中, 计时结束变成 %s" % tgt
# ---- 结果方块/物品 -> "下一步"可读提示(供转换/入笼提示追加) ----
# 例子: 饺子皮 -> "加入 猪肉馅、青菜碎"; 可颂面胚 -> "放在烤炉上等计时(60秒)结束变成 可颂"
@@ -140,9 +139,9 @@ class MianshiService(BlueFoxServerSystem):
sec = r.get("time", 60)
tgt = NAME_MAP.get(r["target"], r["target"])
if r.get("below") == [OVEN]:
_addTip(src, "放在烤炉上等计时(%d秒)结束变成 %s" % (sec, tgt))
_addTip(src, "放在烤炉上等计时结束变成 %s" % tgt)
else:
_addTip(src, "等计时(%d秒)结束变成 %s" % (sec, tgt))
_addTip(src, "等计时结束变成 %s" % tgt)
# ---- 计时源方块 -> 计时结束后的成品名(烤炉固定开始烤制提示用) ----
self.timerTargetName = {}
@@ -191,13 +190,11 @@ class MianshiService(BlueFoxServerSystem):
if blockName in KNEAD_COUNTERS and (not itemName or itemName == "minecraft:air"):
return self._handleKnead(blockName, playerId, pos, dim, key)
# ---- 烤炉固定: 胚/面糊/蛋液等放在烤炉上 -> 禁止右键转换, 固定开始烤制 ----
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秒)")
return True
# ---- 烤炉固定: 胚/面糊/蛋液等放在烤炉上 → 不再通过右键启动计时。
# 【根因D】计时改自动开始: MianshiTimerService 的 tick 会按下方是否为烤炉
# 自动启动计时(OVEN_FIX_BLOCKS 的 autoStart, 参照烤乳猪机制)。这里不再拦截
# 右键启动, 也不挡玩家正常放置。空手右键成品取走逻辑保留在下方。
# (移除了原"startTimerFor + 提示已启动计时"分支)
# ---- 烤制成品取走: 空手右键成品(下方是烤炉) -> 成品掉落物, 烤炉不动 ----
if blockName in OVEN_RESULT_BLOCKS and self._belowIs(dim, pos, OVEN) \
@@ -210,12 +207,8 @@ class MianshiService(BlueFoxServerSystem):
playerId, "§a取走" + self._nameOf(blockName))
return True
# ---- 空手右键"蒸笼计时源"(蒸X_生): 下方是点燃炉灶 -> 开始/继续计时 ----
if (not itemName or itemName == "minecraft:air") and blockName in self.timerSources:
if not self.checkCooldown(key, 0.4):
return True
self._handleStartTimer(blockName, playerId, pos, dim)
return True
# ---- 空手右键"蒸笼计时源"(蒸X_生): 计时已改自动(tick 判定下方点燃炉灶),
# 不再通过空手右键启动; 此处不再拦截, 避免空手右键被吞影响后续操作。----
# ---- 常规转换 ----
recipe = self.findRecipe(blockName, itemDict)