From c0c8ba75fca72df9acc0dd2375480d34da4b89e9 Mon Sep 17 00:00:00 2001 From: NianGao Dev Date: Sun, 16 Aug 2026 21:00:24 +0800 Subject: [PATCH] =?UTF-8?q?test(entity):=20=E6=9C=AA=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=8C=BA=E5=9D=97=E5=AE=9E=E4=BD=93=E5=86=BB=E7=BB=93=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E6=B5=8B=E8=AF=95=EF=BC=9B=E8=B7=AF=E7=BA=BF=E5=9B=BE?= =?UTF-8?q?=E5=9B=9E=E5=86=99=E7=A8=B3=E5=AE=9A=E6=80=A7=E4=B8=8E=E8=A7=82?= =?UTF-8?q?=E6=84=9F=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/entity/entity_test.go | 22 ++++++++++++++++++++++ 文档/路线图.md | 1 + 2 files changed, 23 insertions(+) diff --git a/internal/entity/entity_test.go b/internal/entity/entity_test.go index 79489136..1baae10c 100644 --- a/internal/entity/entity_test.go +++ b/internal/entity/entity_test.go @@ -158,3 +158,25 @@ func TestEntityWorldIntegration(t *testing.T) { m.Spawn(KindZombie, 8.5, float64(surf+1), 8.5) m.Tick(0.05, w, [3]float64{12, float64(surf + 1), 8.5}) // 世界实现了 WorldView(Solid/Block/Sky/BlockLight) } + +// frozenWorld 全部区块未加载的世界视图(实体冻结测试)。 +type frozenWorld struct{ flatWorld } + +func (frozenWorld) ChunkLoaded(x, z int32) bool { return false } + +// TestEntityFreeze 未加载区块实体冻结:不 tick、不下坠(崩溃根因回归测试)。 +func TestEntityFreeze(t *testing.T) { + m := NewManager() + v := m.Spawn(KindVillager, 1000, 100, 1000) + v.Data = &Villager{} + w := frozenWorld{} + for i := 0; i < 10; i++ { + m.Tick(0.05, w, [3]float64{0, 64, 0}) + } + if v.Pos[1] != 100 { + t.Fatalf("未加载区块实体应冻结,实际 y=%v", v.Pos[1]) + } + if v.Pos[0] != 1000 { + t.Fatalf("未加载区块实体应冻结,实际 x=%v", v.Pos[0]) + } +} diff --git a/文档/路线图.md b/文档/路线图.md index 4bc90ad3..9c56fc2f 100644 --- a/文档/路线图.md +++ b/文档/路线图.md @@ -134,3 +134,4 @@ | (初始建立) | 初版:M0–M6 里程碑与验收标准;补充快速原型路径 | — | | (客户端打磨) | 客户端渲染修复与还原:相机视图矩阵(俯仰符号)、植被染色(草/树叶)、原版 HUD 精灵(心/鸡腿/热键栏/准星)、破坏裂纹 3D 叠加、第一人称手持方块、实体广告牌渲染(僵尸/村民/动物)、主菜单字号修复;M3 破坏动画与实体渲染相关条目更新 | — | | (玩法与设置) | 方格垂直面剔除修复(五面绕序反向致立面透明)、鼠标左右反转修复、音频接入(破坏/放置/攻击)、原版掉落(草→泥土/石→圆石/树叶无掉落)、动物攻击与死亡掉落、村庄村民生成、世界种子与鼠标灵敏度配置、设置界面(滑条/种子/按键教程)、准星方块名展示、截图归入根目录 jietu/ | — | +| (稳定性与观感) | 卸载区块实体冻结(下坠越界崩溃修复)+ 光查询越界防御;mesh 面光照改取邻格(悬崖/矿洞立面不再全黑);掉落 1 秒拾取延迟;打击感(命中音/受击白闪/挥动动画);水下蓝色叠加;空手肤色拳头;血条左/饥饿右布局 | — |