test(entity): 未加载区块实体冻结回归测试;路线图回写稳定性与观感修复
This commit is contained in:
@@ -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])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,3 +134,4 @@
|
||||
| (初始建立) | 初版:M0–M6 里程碑与验收标准;补充快速原型路径 | — |
|
||||
| (客户端打磨) | 客户端渲染修复与还原:相机视图矩阵(俯仰符号)、植被染色(草/树叶)、原版 HUD 精灵(心/鸡腿/热键栏/准星)、破坏裂纹 3D 叠加、第一人称手持方块、实体广告牌渲染(僵尸/村民/动物)、主菜单字号修复;M3 破坏动画与实体渲染相关条目更新 | — |
|
||||
| (玩法与设置) | 方格垂直面剔除修复(五面绕序反向致立面透明)、鼠标左右反转修复、音频接入(破坏/放置/攻击)、原版掉落(草→泥土/石→圆石/树叶无掉落)、动物攻击与死亡掉落、村庄村民生成、世界种子与鼠标灵敏度配置、设置界面(滑条/种子/按键教程)、准星方块名展示、截图归入根目录 jietu/ | — |
|
||||
| (稳定性与观感) | 卸载区块实体冻结(下坠越界崩溃修复)+ 光查询越界防御;mesh 面光照改取邻格(悬崖/矿洞立面不再全黑);掉落 1 秒拾取延迟;打击感(命中音/受击白闪/挥动动画);水下蓝色叠加;空手肤色拳头;血条左/饥饿右布局 | — |
|
||||
|
||||
Reference in New Issue
Block a user