营地场景重排接线(探针修): 层节点 TextureRect 加 expand_mode=EXPAND_IGNORE_SIZE——默认 KEEP_SIZE 把节点最小高顶在贴图原高 211,门扇 138 高矩形不生效(ui_struct_probe V1 抓到);卡片补该改动行与 T1 步骤;补实现报告与反哺点清单。凭据: ui_struct_probe PASS(全屏结构断言零红)、营地单测 exit=0、冒烟 PASS

This commit is contained in:
DKChan committed 2026-11-07 18:52:06 +08:00
1 parent 54f9f23342
commit 912a44541f
4 files changed
+39

No files matched your search

@@ -133,6 +133,7 @@ func _build_layer_node(spec: CampSceneLayerSpec) -> Control:
if tex != null:
var tr := TextureRect.new()
tr.texture = tex
tr.expand_mode = TextureRect.EXPAND_IGNORE_SIZE # 允许节点小于贴图原尺寸(门扇 240×211→矩形 138 高)
tr.stretch_mode = TextureRect.STRETCH_SCALE
node = tr
else:
@@ -0,0 +1,6 @@
# 营地场景重排接线 · 反哺点清单(2026-11-07)
| 文档 | 落点 | 内容 | 状态 |
|---|---|---|---|
| design/art/art-status-checklist.md 营地行 | 营地场景图行状态列 | 补「围墙件 2026-11-07 换代(1280×164 补尖+墙脚入土,显示 200 高拉伸)」事实 | 待文档批落文 |
| roadmap.md | 迭代总表 | 本批未编迭代(用户直令落表);如需补记,由编排段处置 | 待用户裁 |
@@ -0,0 +1,30 @@
# 营地场景重排接线 · 实现报告(2026-11-07)
> 本批按用户 2026-11-07「落表」直接执行,未编迭代(卡片与实现同批落地,流程偏离记录在案)。
> 卡片:reports/需求卡片-营地场景重排接线-2026-11-07.md(复核记录两轮 24 发现全处置)
## 各卡状态
| 卡 | 状态 | 读数 |
|---|---|---|
| T0 围墙件入包 | 完成 | 1280×164 RGBA;palette_check 对八件基线 12 色零新增;path_check 0 |
| T1 布局表换代 | 完成 | 十层矩形+wall_band+schema 默认值/注释同步;营地单测 exit=0 |
| T2 新值钉断言+收口 | 完成 | 新增 5 条钉值断言(围墙/门扇/告示板/围墙带/六件落位)全 PASS;冒烟 15 项 0 失败;ui_struct_probe PASS |
## 实现决定记录
- 门扇 hotspot 高 147=贴图 138+9 余量(沿用旧表口径)。
- 六件 hotspot 按旧表同偏移平移(forge y−46、chest y−46/x−12/宽+24、notebook y−14/高+14、campfire y−46/高 80、board 高+19、dummy 同贴图)。
- 视图层 `_build_layer_node` 加 `expand_mode = EXPAND_IGNORE_SIZE`:否则 TextureRect 被贴图原高顶住最小尺寸,门扇 138 高矩形不生效(探针 V1 抓到,已修)。
## 实机目检总清单(登记不阻塞,用户自排)
1. 营地屏:围墙带 y220–420、桩尖完整、墙脚无贯通直线(入土感)。
2. 大门:240×138 显示、底压墙底 420、门扇在洞口 x520–760 内。
3. 告示板:(845,241,130,121) 挂墙、命中可点。
4. 其余六件落位与命中可点(锻炉/宝箱/笔记本/篝火/木桩/帐篷承载不动)。
5. 背景层拼接接缝被围墙遮住、无可见缝。
## 遗留读数义务
- 无新增遗留读数;远端 CI 由 post-merge 钩子推送,按需 `tools/ci_check.sh <合并提交>` 现查。
@@ -71,6 +71,7 @@
- 取用:T0 的素材。产出:`game/data/tables/camp_scene_layout.tres`(十层+表级值)。
- [ ] 按 §3 表逐字改十层 texture_rect/hotspot 与 wall_band → 跑 `godot --headless --path game --script res://tests/unit/presentation/camp_scene_layout_test.gd`(加载期 validate+钉值+关系谓词全绿,exit 0)
- [ ] `_build_layer_node` 的 TextureRect 加 `expand_mode = EXPAND_IGNORE_SIZE`(否则门扇节点被贴图最小高 211 夹住、矩形 138 不生效)→ 场景探针 ui_struct_probe camp V1 转绿
### T2 新值钉断言+收口(≈0.25 工作日)
@@ -86,6 +87,7 @@
| 围墙显示矩形 220/200(判据出处 design/ux/camp.md:29) | camp_scene_layout.tres wall | V14 围墙矩形钉值(camp_scene_layout_test.gd `_test_layout_hotspot_geometry`) | 单元 | load 表+validate | texture_rect 取值 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 门/板跟随(判据出处 design/art/camp-scene-prompts.md:250) | .tres gate/board | V14 门板矩形钉值 | 单元 | 同上 | texture_rect 取值 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 其余六件落位(判据出处 design/art/camp-scene-prompts.md:244) | .tres 六件 | V14 六件落位钉值+七命中区几何红线(validate+不相交+不越界) | 单元 | 同上 | texture_rect/hotspot 取值 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 门扇显示高 138(判据出处 design/art/camp-scene-prompts.md:250) | camp_scene_view.gd `_build_layer_node` 加 `EXPAND_IGNORE_SIZE` | 场景探针 ui_struct_probe camp V1「层贴图矩形≠layout 表」 | 探针 | `res://probe/ui_struct_probe.tscn`(camp 段) | 节点 position/size 逐值 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 围墙件换代(判据出处 design/art/art-bible.md:212) | scene_camp_wall.png | T0 `palette_check`/`path_check` | 资产 | 文件读数 | 色数 12、零新增色 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 墙脚入土(判据出处 design/art/art-bible.md:396) | 围墙件底行 | 目检(游戏内终审,登记式) | 目检 | 营地屏 | 墙底无贯通直线 | 既有:营地场景图十层铺底与门洞留空呈现 |
| 营地屏铺底不回归(判据出处 design/ux/camp.md:29) | 十层矩形整体 | 场景探针 `shot_probe` camp 截图+`shot_checker` A 段(角色/面板骨架不回归) | 探针 | `--headless --path . res://probe/shot_probe.tscn` | 截图色彩数/骨架 | 既有:营地场景图十层铺底与门洞留空呈现 |