代码测试 2026年7月30日 3 加取消动作 还有bug

This commit is contained in:
wenhe committed 2026-07-30 15:04:36 +08:00
1 parent 6bd2af9a79
commit 9c6bb1aacc
1 file changed
+43 -2
@@ -225,6 +225,9 @@ class CookingService(BlueFoxServerSystem):
# 没找到匹配的配方 → 不是做菜操作,不拦截,让游戏正常处理
return
# 找到配方后,取消默认行为(如喝药水、吃食物等),由本 Mod 全权接管
args['cancel'] = True
# ---- 第四步:判断是不是工具切换类型 ----
recipeType = recipe.get("type", "cook")
# type="switch" 或 "timer" → 工具方块切换(箭桶、挂肉钩、水槽等)
@@ -351,7 +354,20 @@ class CookingService(BlueFoxServerSystem):
# 检查是否满了
maxCount = recipe.get("maxCount", 999)
if record["count"] >= maxCount:
return # 满了,不能再放
# 满了,自动转向取回操作
takeRecipe = self.allRecipes.get((blockName, None))
if takeRecipe and record["count"] > 0:
self.giveItem(playerId, record["itemName"])
record["count"] -= 1
if takeRecipe.get("giveItem"):
self.giveItem(playerId, takeRecipe["giveItem"])
if takeRecipe.get("target"):
self.replaceBlock(pos, dim, takeRecipe["target"], playerId)
if record["count"] <= 0:
self.clearSwitchRecord(key, playerId, pos, dim)
else:
self._saveRecord(key, playerId, pos, dim, record)
return
# 记录物品+1
record["count"] += 1
needSave = True
@@ -362,7 +378,32 @@ class CookingService(BlueFoxServerSystem):
record = {"stack": []}
maxCount = recipe.get("maxCount", 999)
if len(record["stack"]) >= maxCount:
return # 满了
# 满了,自动转向取回操作
takeRecipe = self.allRecipes.get((blockName, None))
if takeRecipe:
needSave = False
needClear = False
if record["stack"]:
topItem = record["stack"].pop()
comp.CreateItem(playerId).SpawnItemToPlayerInv(
{"itemName": topItem["itemName"],
"count": topItem["count"],
"auxValue": topItem["auxValue"],
"userData": topItem.get("userData", {})},
playerId)
if not record["stack"]:
needClear = True
else:
needSave = True
if takeRecipe.get("giveItem"):
self.giveItem(playerId, takeRecipe["giveItem"])
if takeRecipe.get("target"):
self.replaceBlock(pos, dim, takeRecipe["target"], playerId)
if needClear:
self.clearSwitchRecord(key, playerId, pos, dim)
elif needSave:
self._saveRecord(key, playerId, pos, dim, record)
return
# 把物品信息压入堆栈
record["stack"].append({
"itemName": itemDict["newItemName"],