T2(D2): 探针只读出口——BoardView/level_map_screen 四出口落地+私有域直入清零(全探针绿+冒烟718/0)

出口四件(形态仿 fx_probe 先例:只读 Dictionary 快照):
- BoardView.cells_probe()/diggable_probe()(键面同构快照)+hover_probe()/fog_params_probe()
  (后两件=D2 清单外同类项随批收口:_hover 1 处+_fog_lantern/_fog_enabled 2 处,完成定义
  「私有域直入清零」口径,26 处 > 任务书盘点 ~22 处——超出面系断言消息实参里的隐性直读)
- level_map_screen.layout_probe(nodes)/canvas_probe()(origin+min_size 快照)
消费侧改写:ui_input_probe 24 处(含循环体三处快照局部变量防逐迭代 duplicate)、
ui_probe 2 处、ui_click_probe 1 处;grep 复核 _cells/_diggable/_hover/_fog_*/_layout/_canvas
探针侧零残留。组合根接缝面(_row_queue 等)按边界注记不入本卡。烟测断言数 718 持平。
This commit is contained in:
DKChan committed 2026-10-04 06:56:20 +08:00
1 parent cd7d3ea401
commit 22417783db
5 files changed
+72 -31

No files matched your search

+23
View File
@@ -1117,3 +1117,26 @@ func _make_cursor_texture(glyph: String) -> ImageTexture:
if f != null:
f.draw_string(img, Vector2(2, 18), glyph, HORIZONTAL_ALIGNMENT_LEFT, 20, 18, COL_DIGIT)
return ImageTexture.create_from_image(img)
# ---- 探针只读出口(D2 改造 2026-10-04——_cells/_diggable 私有容器直入退役;形态仿 fx_probe 先例:只读快照) ----
# 格件映射只读快照(Vector2i → CellUnit;键面同构——断言语义零变化;破私有面的只是容器字典,
# 格件字段本为公有呈现面,快照值即原格件引用)
func cells_probe() -> Dictionary:
return _cells.duplicate()
# 可挖域只读快照(Vector2i → true;8 向相邻未开格=呼吸微光作用集)
func diggable_probe() -> Dictionary:
return _diggable.duplicate()
# 悬停格只读出口(case① 悬停到达断言消费面——_hover 私有域直入退役,D2 清单外同类项随批收口)
func hover_probe() -> Vector2i:
return _hover
# 迷雾参数只读快照(case⑮ 参数漂移断言消费面——_fog_lantern/_fog_enabled 私有域直入退役,D2 清单外同类项随批收口)
func fog_params_probe() -> Dictionary:
return {"lantern": _fog_lantern, "enabled": _fog_enabled}
@@ -468,6 +468,18 @@ func _layout(nodes: Array, canvas: Control) -> Dictionary:
return pos
# ---- 探针只读出口(D2 改造 2026-10-04——_layout/_canvas 私有域直入退役;形态仿 fx_probe 先例:只读快照) ----
# 选路布局只读快照(node → 局部位置;画布固定取现行 _canvas,调用侧零私有域触达)
func layout_probe(nodes: Array) -> Dictionary:
return _layout(nodes, _canvas)
# 路由画布只读快照(origin=全局原点;min_size=最小拟合尺寸——画布拟合断言消费面)
func canvas_probe() -> Dictionary:
return {"origin": _canvas.get_global_position(), "min_size": _canvas.custom_minimum_size}
# 分层(layout/fit 共享件):layer = 入口 BFS 深度;同层 slot 垂直排布;未达节点兜底排末层
func _assign_layers(nodes: Array, layer: Dictionary, slot: Dictionary) -> void:
var layer_counts := {}