卡①T2(组合根注册面批): main.gd改形49→22(表A 28成员迁出+ui新增,7别名留T4)+合同机器四样迁驻(ui_registry/ui_modals)+main_ui_build八步赋值目标改root.ui.*+三流程件root.X同表映射+_settlement_stop_pending写点改run_scope.settlement_stop_timer直呼+smoke_boot get()改址(4改2留)+V1d重锚全presentation目录扫描〔注册面V1〕+V6改断言新串〔注册面V2〕——实现决定: ModalFlow实例随UiModals容器构造即建(装配第二步pump_ended注入早于第八步flow建立,转发壳退役需flow先行在座;查询/钩子注入时点不变);冒烟+三套件绿+gdstyle零恶化(main实测22)
This commit is contained in:
1 parent
bee0682f4c
commit
b89ee8505d
9 files changed
+343
-440
No files matched your search
@@ -67,9 +67,9 @@ func _check_main_scene(main: Node) -> void:
|
||||
return
|
||||
var run_scope: Node = main.get("run_scope")
|
||||
check(run_scope != null and run_scope.is_inside_tree(), "闲时会话 run_scope 在树")
|
||||
var start_overlay: Control = main.get("_start_overlay")
|
||||
var start_overlay: Control = main.get("ui").screens.start_overlay
|
||||
check(start_overlay != null and start_overlay.visible, "启动态菜单可见(boot 后玩家见菜单)")
|
||||
check(main.get("settings_store") != null, "系统设置存储已装配(settings_store)")
|
||||
check(main.get("debug_badge") != null, "调试入口角标已装配(debug_badge)")
|
||||
check(main.get("legend_overlay") != null, "图例覆盖层已装配(legend_overlay)")
|
||||
check(main.get("status_panel") != null, "局内状态面板已装配(status_panel)")
|
||||
check(main.get("ui").screens.debug_badge != null, "调试入口角标已装配(debug_badge)")
|
||||
check(main.get("ui").modals.legend_overlay != null, "图例覆盖层已装配(legend_overlay)")
|
||||
check(main.get("ui").modals.status_panel != null, "局内状态面板已装配(status_panel)")
|
||||
@@ -66,12 +66,33 @@ func _smoke_hygiene_gates() -> void:
|
||||
var mv: String = FileAccess.get_file_as_string("res://presentation/main.gd")
|
||||
Kit.check("V8 GP 影子账残留零命中(main 源码面——文件已删+委托缝已拆)〔迭代27 T3〕",
|
||||
not mv.contains("gp_shadow_ledger") and not mv.contains("_gp_ledger"))
|
||||
# V1d 层序落位单口:main.gd 的 move_child 调用全部收在 _apply_layer_contract 内(合同装配单口——
|
||||
# 函数体之外零调用点;出现第二处落位=硬编码层序,须改合同表而非加调用)
|
||||
var fn_start: int = mv.find("func _apply_layer_contract")
|
||||
var fn_end: int = mv.find("\nfunc ", fn_start + 10)
|
||||
if fn_end < 0:
|
||||
fn_end = mv.length()
|
||||
var outside_calls: int = (mv.substr(0, fn_start) + mv.substr(fn_end)).count("move_child(")
|
||||
Kit.check("V1d 层序落位单口(_apply_layer_contract 之外 move_child 调用点=%d 应=0)〔装配生命批 V1〕" % outside_calls,
|
||||
outside_calls == 0)
|
||||
# V1d 层序落位单口:注册面建件后扫全 presentation——move_child 只允许出现在 ui_registry.gd 的
|
||||
# apply_layer_contract 函数体内(合同装配单口——出现第二处落位=硬编码层序,须改合同表而非加调用)
|
||||
var scanned: int = 0
|
||||
var outside_calls: int = 0
|
||||
for fn_path: String in _list_scripts("res://presentation"):
|
||||
var src: String = FileAccess.get_file_as_string(fn_path)
|
||||
scanned += 1
|
||||
var fn_start: int = src.find("func apply_layer_contract") if fn_path.contains("ui_registry.gd") else -1
|
||||
var fn_end: int = src.find("\nfunc ", fn_start + 10) if fn_start >= 0 else -1
|
||||
if fn_end < 0:
|
||||
fn_end = src.length()
|
||||
outside_calls += (src.substr(0, fn_start) + src.substr(fn_end)).count("move_child(")
|
||||
Kit.check("V1d 层序落位单口(presentation %d 文件——apply_layer_contract 之外 move_child 调用点=%d 应=0)〔注册面 V1〕" % [scanned, outside_calls],
|
||||
scanned > 0 and outside_calls == 0)
|
||||
|
||||
|
||||
# 目录 .gd 清单(DirAccess 平铺——presentation 无子目录;扫描面>0 前置由调用侧断言承载)
|
||||
static func _list_scripts(dir_path: String) -> PackedStringArray:
|
||||
var out: PackedStringArray = PackedStringArray()
|
||||
var dir := DirAccess.open(dir_path)
|
||||
if dir == null:
|
||||
return out
|
||||
dir.list_dir_begin()
|
||||
var fname := dir.get_next()
|
||||
while fname != "":
|
||||
if fname.ends_with(".gd"):
|
||||
out.append(dir_path + "/" + fname)
|
||||
fname = dir.get_next()
|
||||
dir.list_dir_end()
|
||||
return out
|
||||
@@ -722,8 +722,8 @@ func _smoke_diag_button_retired() -> void:
|
||||
var main_src: String = FileAccess.get_file_as_string("res://presentation/main.gd")
|
||||
Kit.check("V6 主区无 build_diag_button 调用残留(旧实现同批清理)",
|
||||
not main_src.contains("build_diag_button"))
|
||||
Kit.check("V6 转储入口连接随迁(组合根接浮窗 diagnose_requested 信号)",
|
||||
main_src.contains("debug_overlay.diagnose_requested.connect(_on_diagnose_pressed)"))
|
||||
Kit.check("V6 转储入口连接随迁(组合根经注册面接浮窗 diagnose_requested 信号)〔注册面 V2〕",
|
||||
main_src.contains("ui.modals.debug_overlay.diagnose_requested.connect(_on_diagnose_pressed)"))
|
||||
Kit.check("V6 转储编排承接函数在位(dump_diagnosis 卡死取证保留)",
|
||||
main_src.contains("func _on_diagnose_pressed()"))
|
||||
var asm_src: String = FileAccess.get_file_as_string("res://presentation/ui_assembler.gd")
|
||||
|
||||
Reference in new issue
Block a user