营地场景重排接线(落表): 十层新矩形——围墙 (0,220,1280,200)、大门 240×138 底压墙底 (520,282)、告示板 (845,241)、其余六件按 2026-11-05 裁定落位(wall_band 同步 (0,220,1280,200)、schema 默认与注释同步); 围墙件换代 1280×164(柱尖补全+墙脚入土缺口, 12 色零新增); 单测追加 5 条钉值断言(围墙/门扇/告示板/围墙带/六件落位)+oracle 行锚; 设计文档同步 camp-scene-prompts v1.9(§2.2/§2.3/§3/§5 第12条)、art-bible v3.48 §6.2(显示矩形+入土线)、camp.md 第29行; 需求卡片成立(两轮独立复核 24 发现全处置, 复核记录在卡内); 待办条目推进 美术设计已闭合+已写卡。凭据: 营地单测 exit=0(V14 全绿含新钉值)、冒烟测试 PASS(15 项 0 失败)、色板闸围墙 12 色零新增、path_check 0、流水线闸 PASS
This commit is contained in:
1 parent
166114e094
commit
54f9f23342
11 files changed
+209
-35
No files matched your search
@@ -0,0 +1 @@
|
||||
uid://c50sjeyp58jcj
|
||||
@@ -2,7 +2,7 @@ extends SceneTree
|
||||
# 营地场景布局数据件校验套件(V14——camp_scene_layout.tres 加载期 fail-fast 判据+七命中区几何红线机检)
|
||||
# 覆盖:校验函数通过(键唯一/贴图在画布/命中成对/围墙带包络)· 七可点件键集 · 两两不相交 ·
|
||||
# 不越画面 · 不侵顶栏禁区 · 篝火命中只取下半(关系谓词)· 门扇对齐门洞缺口 · 布告板挂围墙带。
|
||||
# 断言全部为表内关系谓词——禁坐标字面量(数值单一事实源 = 数据行本表)。
|
||||
# 断言以表内关系谓词为主;2026-11-07 重排追加十层钉值断言(钉值出处见各断言前 oracle 注)。
|
||||
# 运行:godot --headless --path game --script res://tests/unit/presentation/camp_scene_layout_test.gd(expect 0)
|
||||
const Kit := preload("res://tests/unit/test_kit.gd")
|
||||
|
||||
@@ -85,6 +85,32 @@ func _test_layout_hotspot_geometry() -> void:
|
||||
and board.hotspot.position.y >= wall.texture_rect.position.y \
|
||||
and board.hotspot.position.y <= wall.texture_rect.end.y
|
||||
Kit.check("V14 布告板命中挂围墙带〔营地图批 V14〕", board_ok)
|
||||
# oracle: design/art/camp-scene-prompts.md:250 (2026-11-07 围墙/门/板钉值,§5 第 12 条)
|
||||
Kit.check("V14 围墙矩形钉值 (0,220,1280,200)〔营地图批 V14〕",
|
||||
wall != null and wall.texture_rect == Rect2(0, 220, 1280, 200))
|
||||
Kit.check("V14 门扇矩形钉值 (520,282,240,138)〔营地图批 V14〕",
|
||||
gate != null and gate.texture_rect == Rect2(520, 282, 240, 138))
|
||||
Kit.check("V14 告示板矩形钉值 (845,241,130,121)〔营地图批 V14〕",
|
||||
board != null and board.texture_rect == Rect2(845, 241, 130, 121))
|
||||
Kit.check("V14 围墙带钉值 (0,220,1280,200)〔营地图批 V14〕",
|
||||
table.wall_band == Rect2(0, 220, 1280, 200))
|
||||
# oracle: design/art/camp-scene-prompts.md:244 (其余七件落位:帐篷:242/笔记本:243/宝箱与其余上移:244)
|
||||
var seven_ok := true
|
||||
var seven_bad := ""
|
||||
for spec in table.layers:
|
||||
var want: Rect2
|
||||
match String(spec.key):
|
||||
"dummy": want = Rect2(340, 474, 120, 180)
|
||||
"forge": want = Rect2(40, 421, 240, 193)
|
||||
"tent": want = Rect2(982, 335, 251, 170)
|
||||
"chest": want = Rect2(1097, 654, 106, 90)
|
||||
"notebook": want = Rect2(870, 515, 100, 66)
|
||||
"campfire": want = Rect2(560, 525, 160, 149)
|
||||
_: continue
|
||||
if spec.texture_rect != want:
|
||||
seven_ok = false
|
||||
seven_bad = "%s %s" % [spec.key, spec.texture_rect]
|
||||
Kit.check("V14 六件落位钉值(违例 %s)〔营地图批 V14〕" % seven_bad, seven_ok)
|
||||
# 层序结构:10 层且 bg/wall 压前两位(z0/z1——子节点序=表序先验)
|
||||
var order_ok := table.layers.size() == 10 \
|
||||
and String(table.layers[0].key) == "bg" and String(table.layers[1].key) == "wall"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://cju0edupimvup
|
||||
Reference in new issue
Block a user