From 9c99295db6ef94b5d9d1a29086301b0fd7925afc Mon Sep 17 00:00:00 2001 From: wenhe <1046926120@qq.com> Date: Tue, 1 Sep 2026 22:47:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=83=A7=E7=83=A4=20=E5=8A=A8=E7=89=A9?= =?UTF-8?q?=E5=85=BB=E6=AE=96=20=E5=88=86=E7=B1=BB=20=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=9E=E7=8E=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xiangyemod/dongwuyangzhi/AnimalData.py | 28 +++- .../dongwuyangzhi/service/AnimalService.py | 144 ++++++++++++++---- .../xiangyemod/service/FeatureDispatcher.py | 51 ++++++- .../netease_blocks/chickenmanger_1.json | 2 +- .../netease_blocks/grilled_fish.json | 2 +- .../netease_blocks/grilledcod_0.json | 2 +- .../netease_blocks/manger_1.json | 2 +- .../netease_blocks/manger_2.json | 2 +- .../netease_blocks/manger_3.json | 2 +- .../netease_blocks/pigmanger_1.json | 2 +- .../netease_blocks/pigmanger_2.json | 2 +- .../netease_blocks/roastchicken_0.json | 2 +- .../netease_blocks/roastpig_0.json | 2 +- 13 files changed, 201 insertions(+), 42 deletions(-) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/AnimalData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/AnimalData.py index 2f2098e..ec19e58 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/AnimalData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/AnimalData.py @@ -11,7 +11,7 @@ BlockSwitchData.py = 通用工具方块切换(箭桶、挂肉钩、水槽、书柜等) AnimalData.py = 动物养殖专属(鸡窝、饲料盆、饲料槽、粪便等) -字段说明(与 BlockSwitchData 基本一致,新增 giveCount/dropItem): +字段说明(与 BlockSwitchData 基本一致,新增 giveCount/dropItem/tip): source: 被右键的方块ID(必填) item: 玩家手里必须拿的物品,None=空手也行 target: 替换成什么方块,"minecraft:air"=消失 @@ -23,6 +23,9 @@ 做成掉落物而不是直接塞背包,符合"取下/获得"的体验 type: "switch"=右键切换, "timer"=计时自动转换 time: 计时型转换需要多少秒(到时间自动替换方块) + tip: 转换成功时给玩家的提示(绿色§a开头) + startTip: 计时型规则启动计时时给玩家的提示(仅玩家主动触发时发) + doneTip: 计时链结束时给启动者的提示(只有整条链的最后一级会发) ================================================================================ """ @@ -40,6 +43,7 @@ ANIMAL_SWITCHES = [ "consume": 1, "type": "switch", "switchCd": 0.15, + "tip": "§a鸡蛋已放入鸡窝 (1/5)", "giveItem": None, }, # 【放蛋2】鸡窝_2(1蛋) → 鸡窝_3(2蛋) @@ -50,6 +54,7 @@ ANIMAL_SWITCHES = [ "consume": 1, "type": "switch", "switchCd": 0.15, + "tip": "§a鸡蛋已放入鸡窝 (2/5)", "giveItem": None, }, # 【放蛋3】鸡窝_3(2蛋) → 鸡窝_4(3蛋) @@ -60,6 +65,7 @@ ANIMAL_SWITCHES = [ "consume": 1, "type": "switch", "switchCd": 0.15, + "tip": "§a鸡蛋已放入鸡窝 (3/5)", "giveItem": None, }, # 【放蛋4】鸡窝_4(3蛋) → 鸡窝_5(4蛋) @@ -70,6 +76,7 @@ ANIMAL_SWITCHES = [ "consume": 1, "type": "switch", "switchCd": 0.15, + "tip": "§a鸡蛋已放入鸡窝 (4/5)", "giveItem": None, }, # 【放蛋5】鸡窝_5(4蛋) → 鸡窝_6(5蛋) @@ -80,6 +87,7 @@ ANIMAL_SWITCHES = [ "consume": 1, "type": "switch", "switchCd": 0.15, + "tip": "§a鸡蛋已放入鸡窝 (5/5)", "giveItem": None, }, @@ -96,6 +104,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "switch", "dropItem": [{"name": "minecraft:egg", "count": 5}], + "tip": "§a取走了 5 个鸡蛋", "giveItem": None, }, # 【取4蛋】鸡窝_5(4蛋) → 鸡窝_1(0蛋),掉落4个鸡蛋 @@ -106,6 +115,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "switch", "dropItem": [{"name": "minecraft:egg", "count": 4}], + "tip": "§a取走了 4 个鸡蛋", "giveItem": None, }, # 【取3蛋】鸡窝_4(3蛋) → 鸡窝_1(0蛋),掉落3个鸡蛋 @@ -116,6 +126,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "switch", "dropItem": [{"name": "minecraft:egg", "count": 3}], + "tip": "§a取走了 3 个鸡蛋", "giveItem": None, }, # 【取2蛋】鸡窝_3(2蛋) → 鸡窝_1(0蛋),掉落2个鸡蛋 @@ -126,6 +137,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "switch", "dropItem": [{"name": "minecraft:egg", "count": 2}], + "tip": "§a取走了 2 个鸡蛋", "giveItem": None, }, # 【取1蛋】鸡窝_2(1蛋) → 鸡窝_1(0蛋),掉落1个鸡蛋 @@ -136,6 +148,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "switch", "dropItem": [{"name": "minecraft:egg", "count": 1}], + "tip": "§a取走了 1 个鸡蛋", "giveItem": None, }, @@ -150,6 +163,7 @@ ANIMAL_SWITCHES = [ "target": "rtdd:chickenmanger_1", "consume": 16, "type": "switch", + "tip": "§a鸡饲料已加满", "giveItem": None, }, # 【计时变空】鸡饲料盆_2(满) → 鸡饲料盆_1(空),计时60秒 @@ -161,6 +175,8 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "timer", "time": 60, + "startTip": "§e鸡饲料已加满,鸡正在进食…", + "doneTip": "§e鸡饲料已吃完", "giveItem": None, }, @@ -175,6 +191,7 @@ ANIMAL_SWITCHES = [ "target": "rtdd:manger_3", "consume": 32, "type": "switch", + "tip": "§a小麦饲料已加满", "giveItem": None, }, # 【计时减少1】饲料槽_2(满小麦) → 饲料槽_3(半量小麦),计时60秒 @@ -185,6 +202,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "timer", "time": 60, + "startTip": "§e小麦饲料已加满,动物正在进食…", "giveItem": None, }, # 【计时减少2】饲料槽_3(半量小麦) → 饲料槽_4(少量小麦),计时60秒 @@ -205,6 +223,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "timer", "time": 60, + "doneTip": "§e小麦饲料已吃完", "giveItem": None, }, @@ -221,6 +240,7 @@ ANIMAL_SWITCHES = [ "type": "switch", "giveItem": "minecraft:bucket", "giveCount": 1, + "tip": "§a已给饲料槽加水", }, # ============================================================ @@ -234,6 +254,7 @@ ANIMAL_SWITCHES = [ "target": "rtdd:pigmanger_1", "consume": 32, "type": "switch", + "tip": "§a胡萝卜饲料已加满", "giveItem": None, }, # 【计时减少1】饲料槽_7(满胡萝卜) → 饲料槽_8(半量胡萝卜),计时60秒 @@ -244,6 +265,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "timer", "time": 60, + "startTip": "§e胡萝卜饲料已加满,动物正在进食…", "giveItem": None, }, # 【计时减少2】饲料槽_8(半量胡萝卜) → 饲料槽_1(空),计时60秒 @@ -254,6 +276,7 @@ ANIMAL_SWITCHES = [ "consume": 0, "type": "timer", "time": 60, + "doneTip": "§e胡萝卜饲料已吃完", "giveItem": None, }, @@ -269,6 +292,7 @@ ANIMAL_SWITCHES = [ "target": "rtdd:feces_2", "consume": 0, "type": "switch", + "tip": "§a清理了粪便", "giveItem": None, }, # 【清理2】粪便(半坨) → 粪便(仅痕迹) @@ -278,6 +302,7 @@ ANIMAL_SWITCHES = [ "target": "rtdd:feces_1", "consume": 0, "type": "switch", + "tip": "§a清理了粪便", "giveItem": None, }, # 【清理3】粪便(仅痕迹) → 消失(空气) @@ -287,6 +312,7 @@ ANIMAL_SWITCHES = [ "target": "minecraft:air", "consume": 0, "type": "switch", + "tip": "§a清理了粪便", "giveItem": None, }, ] diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py index fb8d4cf..2158d55 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/dongwuyangzhi/service/AnimalService.py @@ -35,6 +35,9 @@ comp = serverApi.GetEngineCompFactory() # 组件工厂 from ....BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem from ....BlueFoxTools.ToolsConfig import LevelId +# ---- 方块实体数据组件(计时持久化:把开始时间戳+时长写进方块,重启后继续计时) ---- +blockEntityDataComp = comp.CreateBlockEntityData(LevelId) + # ---- 只导入动物养殖自己的数据库 ---- from ..AnimalData import ANIMAL_SWITCHES @@ -73,9 +76,6 @@ class AnimalService(BlueFoxServerSystem): if sw.get("type") == "timer": self.animalTimers[sw["source"]] = sw - # ---- 计时去重表:key=(dim,x,y,z) -> 上次启动计时的时间戳 ---- - self._timerSchedule = {} - # ---- 右键冷却表:防止连点瞬间触发多次 ---- self.cooldown = {} @@ -185,6 +185,10 @@ class AnimalService(BlueFoxServerSystem): nextTimer = self.animalTimers[recipe["target"]] self.startTimer(key, nextTimer, dim, playerId) + # 转换成功提示 + if recipe.get("tip"): + comp.CreateMsg(playerId).NotifyOneMessage(playerId, recipe["tip"]) + return # ---- 逆向操作:取东西/清理 ---- @@ -198,43 +202,129 @@ class AnimalService(BlueFoxServerSystem): if recipe.get("target"): self.replaceBlock(pos, dim, recipe["target"], playerId) + # 转换成功提示 + if recipe.get("tip"): + comp.CreateMsg(playerId).NotifyOneMessage(playerId, recipe["tip"]) + # ============================================================================ - # 计时型规则处理(AddTimer 一次性定时,不依赖方块实体tick) + # 计时型规则处理(方块实体 tick 持久化计时) # ============================================================================ def startTimer(self, key, recipe, dim, playerId=None): """ - 为计时型规则启动一次性定时器。 - 1 秒内的重复调用会被去重(防止多次右键重复计时)。 - 到时间后由 _timerDone 检查方块状态并执行转换。 - """ - now = time.time() - last = self._timerSchedule.get(key, 0) - if now - last < 1.0: - return - self._timerSchedule[key] = now - - t = recipe.get("time", 60) - # 用系统自带 AddTimer 一次性定时 - self.AddTimer(t, self._timerDone, key, recipe, dim) - - def _timerDone(self, key, recipe, dim): - """ - 定时器到点回调: - 检查当前方块是否仍是计时源方块(防止玩家中途改变了方块), - 是则替换为下一状态;若新状态仍是计时源则继续下一级计时。 + 启动计时:把 计时标识+开始时间戳+时长 写入方块实体数据。 + - 已处于本规则计时中的方块不会重复重置时间(防止空手右键刷新计时) + - 到点判断由 FeatureDispatcher 转发的 ServerBlockEntityTickEvent 完成 + - 时间戳存在方块上 → 服务器重启/玩家重进后继续计时 """ pos = (key[1], key[2], key[3]) + # 去重:如果该方块已经在本规则计时中,不重置(保持原剩余时间) + try: + data = blockEntityDataComp.GetBlockEntityData(dim, pos) + if data and data.get("rtdd_tid") == recipe["source"]: + return + except Exception: + pass + self._writeTimerData(dim, pos, recipe, playerId) + # 计时开始提示 + if playerId and recipe.get("startTip"): + comp.CreateMsg(playerId).NotifyOneMessage(playerId, recipe["startTip"]) + + def handleBlockEntityTick(self, args): + """FeatureDispatcher 转发:计时方块每 tick 检查是否到点""" + posDim = args.get("posDim") + if not posDim: + return + dim = posDim[3] + pos = (posDim[0], posDim[1], posDim[2]) + self._tickProcess(dim, pos) + + def _tickProcess(self, dim, pos): + """ + tick 主逻辑:读方块上记录的计时数据,到点就执行转换。 + 即便服务器重启过,只要 tick 恢复,时间戳照常生效, + 比如烤制进行到 40 秒退出,回来时按原时间戳继续,只剩 20 秒。 + """ + try: + data = blockEntityDataComp.GetBlockEntityData(dim, pos) + if not data: + return + tid = data.get("rtdd_tid") + if not tid: + return + recipe = self.animalTimers.get(tid) + if not recipe: + return + tstart = data.get("rtdd_tstart", 0) + tdur = data.get("rtdd_tdur", 0) + if time.time() - tstart >= tdur: + self._finishTimer(dim, pos, recipe, data) + except Exception: + pass + + def _finishTimer(self, dim, pos, recipe, data): + """ + 计时到点:确认方块仍是计时源后替换方块。 + - 若新方块是下一级计时源 → 写入新计时数据继续 + - 若整条链结束 → 清除计时数据,并给启动者发送完成提示 + """ try: cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim) - if not cur or cur.get("name") != recipe["source"]: - return # 方块已变,放弃本次转换 + if cur and cur.get("name") != recipe["source"]: + # 方块已被玩家改变 → 清掉过期计时 + self._clearTimerData(dim, pos) + return # 替换方块 self.replaceBlock(pos, dim, recipe["target"], None) - # 若新方块仍是计时源 → 继续下一级计时(如 满→半→少→空) nextRecipe = self.animalTimers.get(recipe["target"]) if nextRecipe: - self.startTimer(key, nextRecipe, dim) + # 下一级计时(换新的开始时间戳) + self._writeTimerData(dim, pos, nextRecipe, data.get("rtdd_tp")) + else: + # 整条链结束:清数据 + 完成提示 + self._clearTimerData(dim, pos) + doneTip = recipe.get("doneTip") + if doneTip: + self._notifyIfOnline(data.get("rtdd_tp"), doneTip) + except Exception: + pass + + # ---- 计时数据读写(存在方块实体数据里,重启不丢) ---- + + def _writeTimerData(self, dim, pos, recipe, playerId=None): + """把计时信息写进方块实体数据""" + try: + blockData = blockEntityDataComp.GetBlockEntityData(dim, pos) + if blockData is None: + return + blockData["rtdd_tid"] = recipe["source"] + blockData["rtdd_tstart"] = time.time() + blockData["rtdd_tdur"] = recipe.get("time", 60) + blockData["rtdd_tp"] = playerId if playerId else "" + except Exception: + pass + + def _clearTimerData(self, dim, pos): + """清除方块上的计时数据""" + try: + blockData = blockEntityDataComp.GetBlockEntityData(dim, pos) + if blockData is None: + return + blockData["rtdd_tid"] = "" + blockData["rtdd_tstart"] = 0 + blockData["rtdd_tdur"] = 0 + blockData["rtdd_tp"] = "" + except Exception: + pass + + def _notifyIfOnline(self, playerId, tip): + """若启动者在线,发送完成提示(离线则跳过)""" + if not tip or not playerId: + return + try: + ids = comp.CreateGame(LevelId).GetAllPlayerIds() + if playerId in ids: + comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip) except Exception: pass diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/FeatureDispatcher.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/FeatureDispatcher.py index 5e558da..a166fe0 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/FeatureDispatcher.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/FeatureDispatcher.py @@ -40,6 +40,10 @@ comp = serverApi.GetEngineCompFactory() # 组件工厂 # ---- 继承 BlueFox 框架的系统基类 ---- from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem +from ...BlueFoxTools.ToolsConfig import LevelId + +# ---- 方块实体数据组件(计时持久化:记录开始时间戳,重启后继续计时) ---- +blockEntityDataComp = comp.CreateBlockEntityData(LevelId) class FeatureDispatcher(BlueFoxServerSystem): @@ -95,10 +99,11 @@ class FeatureDispatcher(BlueFoxServerSystem): def ListenEvent(self): """ - 注册三个事件: - 1. ServerBlockUseEvent —— 玩家右键方块(所有功能的右键转换入口) - 2. ServerItemUseOnEvent —— 手持物品右键方块表面(如放置生鸡肉) - 3. ServerItemTryUseEvent —— 玩家尝试使用物品(拦截喝药水/吃食物等默认行为) + 注册四个事件: + 1. ServerBlockUseEvent —— 玩家右键方块(所有功能的右键转换入口) + 2. ServerItemUseOnEvent —— 手持物品右键方块表面(如放置生鸡肉) + 3. ServerItemTryUseEvent —— 玩家尝试使用物品(拦截喝药水/吃食物等默认行为) + 4. ServerBlockEntityTickEvent —— 计时方块每tick触发(烤制/饲料变空等,持久化计时) """ self.ListenForEvent(serverApi.GetEngineNamespace(), serverApi.GetEngineSystemName(), @@ -109,6 +114,9 @@ class FeatureDispatcher(BlueFoxServerSystem): self.ListenForEvent(serverApi.GetEngineNamespace(), serverApi.GetEngineSystemName(), "ServerItemTryUseEvent", self, self.OnItemTryUse) + self.ListenForEvent(serverApi.GetEngineNamespace(), + serverApi.GetEngineSystemName(), + "ServerBlockEntityTickEvent", self, self.OnBlockEntityTick) def UnListenEvent(self): self.UnListenForEvent(serverApi.GetEngineNamespace(), @@ -120,6 +128,9 @@ class FeatureDispatcher(BlueFoxServerSystem): self.UnListenForEvent(serverApi.GetEngineNamespace(), serverApi.GetEngineSystemName(), "ServerItemTryUseEvent", self, self.OnItemTryUse) + self.UnListenForEvent(serverApi.GetEngineNamespace(), + serverApi.GetEngineSystemName(), + "ServerBlockEntityTickEvent", self, self.OnBlockEntityTick) # ============================================================================ # 主入口1:玩家右键方块 @@ -183,3 +194,35 @@ class FeatureDispatcher(BlueFoxServerSystem): playerId = args.get("playerId") if self._cancelItemUse.pop(playerId, False): args['cancel'] = True + + # ============================================================================ + # 主入口4:计时方块 tick(持久化计时) + # ============================================================================ + + def OnBlockEntityTick(self, args): + """ + 配置了 tick:true 的方块每帧触发。 + 用于"烤制/饲料变空"等计时转换的持久化: + - 转换开始时把 开始时间戳+时长 写进方块实体数据 + - 服务器重启/玩家重进后,tick 恢复,读回时间戳继续计时, + 到点即转换(例如烤鸡烤了40秒退出,回来只剩20秒) + 按方块实体数据里的计时标识 rtdd_tid 路由到对应功能服务。 + """ + posDim = args.get("posDim") + if not posDim: + return + dim = posDim[3] + pos = (posDim[0], posDim[1], posDim[2]) + try: + data = blockEntityDataComp.GetBlockEntityData(dim, pos) + if not data: + return + tid = data.get("rtdd_tid") # 计时标识 = 计时源方块名 + except Exception: + return + if not tid: + return + service = self.blockOwner.get(tid) # 计时源方块一定注册在路由表里 + if not service: + return + service.handleBlockEntityTick(args) diff --git a/behavior_pack_v8jz0zSR/netease_blocks/chickenmanger_1.json b/behavior_pack_v8jz0zSR/netease_blocks/chickenmanger_1.json index 4fb60ea..358643b 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/chickenmanger_1.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/chickenmanger_1.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/grilled_fish.json b/behavior_pack_v8jz0zSR/netease_blocks/grilled_fish.json index 9cd3d28..84c47bb 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/grilled_fish.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/grilled_fish.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/grilledcod_0.json b/behavior_pack_v8jz0zSR/netease_blocks/grilledcod_0.json index e8d7ae4..00629a0 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/grilledcod_0.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/grilledcod_0.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/manger_1.json b/behavior_pack_v8jz0zSR/netease_blocks/manger_1.json index fbc9166..63c9e52 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/manger_1.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/manger_1.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/manger_2.json b/behavior_pack_v8jz0zSR/netease_blocks/manger_2.json index ba7a6fa..a5ded0a 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/manger_2.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/manger_2.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/manger_3.json b/behavior_pack_v8jz0zSR/netease_blocks/manger_3.json index 8747df1..5cd5501 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/manger_3.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/manger_3.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_1.json b/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_1.json index f0710e6..6ceb165 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_1.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_1.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_2.json b/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_2.json index f045954..b43cb19 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_2.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/pigmanger_2.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/roastchicken_0.json b/behavior_pack_v8jz0zSR/netease_blocks/roastchicken_0.json index fd61f34..880e5c8 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/roastchicken_0.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/roastchicken_0.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } } diff --git a/behavior_pack_v8jz0zSR/netease_blocks/roastpig_0.json b/behavior_pack_v8jz0zSR/netease_blocks/roastpig_0.json index e89b95c..1770260 100644 --- a/behavior_pack_v8jz0zSR/netease_blocks/roastpig_0.json +++ b/behavior_pack_v8jz0zSR/netease_blocks/roastpig_0.json @@ -48,7 +48,7 @@ "netease:block_entity": { "client_tick": false, "movable": false, - "tick": false + "tick": true } } }