test(worldgen): 村庄断言改为 3×3 区块总量(跨区块建筑统计)
This commit is contained in:
@@ -103,20 +103,25 @@ func TestVillage(t *testing.T) {
|
||||
continue
|
||||
}
|
||||
cx, cz := floorDiv32(vx, 16), floorDiv32(vz, 16)
|
||||
ch := g.Generate(cx, cz)
|
||||
// 建筑跨区块(世界生成.md §4):统计中心 3×3 区块的木板/圆石总量
|
||||
plankCnt, cobbleCnt := 0, 0
|
||||
snap := ch.Snapshot()
|
||||
for i := 0; i < 16*16*256; i++ {
|
||||
switch snap[i].ID() {
|
||||
case planks:
|
||||
plankCnt++
|
||||
case cobble:
|
||||
cobbleCnt++
|
||||
for dcx := int32(-1); dcx <= 1; dcx++ {
|
||||
for dcz := int32(-1); dcz <= 1; dcz++ {
|
||||
ch := g.Generate(cx+dcx, cz+dcz)
|
||||
snap := ch.Snapshot()
|
||||
for i := 0; i < 16*16*256; i++ {
|
||||
switch snap[i].ID() {
|
||||
case planks:
|
||||
plankCnt++
|
||||
case cobble:
|
||||
cobbleCnt++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 建筑跨区块:中心区块至少包含水井(圆石)与部分房屋(木板)
|
||||
if plankCnt < 10 || cobbleCnt == 0 {
|
||||
t.Fatalf("村庄区块 (%d,%d) 建筑过少: 木板 %d 圆石 %d", cx, cz, plankCnt, cobbleCnt)
|
||||
// 3 间房屋(每间约 70+ 木板)+ 水井(8 圆石)
|
||||
if plankCnt < 150 || cobbleCnt < 8 {
|
||||
t.Fatalf("村庄 (%d,%d) 建筑过少: 木板 %d 圆石 %d", cx, cz, plankCnt, cobbleCnt)
|
||||
}
|
||||
found++
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user