- 新建game/presentation/ui_camp_modals.gd(.uid同笔): RefCounted子容器,现役一枚overlay,头注自陈终态六枚/新营地句柄禁平铺回ui_modals(契约2/4/5) - ui_modals.gd: 持camp成员(_init与flow同拍构造)+删平铺camp_overlay——类变量14→14,头注同步(十二平铺句柄+营地域子容器) - main_ui_build.gd装配10处+ui_registry.gd node()分支返回属性链(key平铺不改名,camp.*解析分支随卡④⑤)+改指面探针五件/system_test共43处改指ui.modals.camp.overlay(断言零改判据) - 营地段断言消息文本追加尾缀〔句柄子容器批 V1〕×33+〔句柄子容器批 V2〕×1(V1c合同树序链——独立验收审计尾缀grep义务落点) - 验证: 类缓存刷新(--editor --quit,UiCampModals入册)后改指面8文件逐件复跑绿——system_test 69项0失败+ui_struct/screen_flow/ui_probe PASS+click问题=0+shot camp出图问题=0; S13 gate绿(143件零NEW)+ui_modals '^var '计数=14留痕; 全仓modals.camp_overlay平铺寻址零残留
34 lines
1.7 KiB
GDScript
34 lines
1.7 KiB
GDScript
## 模态层域句柄册:十二个平铺模态句柄+营地交互域子容器(camp)+模态栈编排(ModalFlow——登记/开合/输入锁谓词)的注册面域容器。
|
||
## RefCounted 不挂树;模态登记唯一口=register_layer(anchors 撑满宿主+排入 ModalStack)。
|
||
## flow 随容器构造即建(装配早期注入点经 root.ui.modals.flow.* 取 Callable——晚于 flow 建立时点)。
|
||
class_name UiModals
|
||
extends RefCounted
|
||
|
||
var flow: ModalFlow
|
||
var legend_overlay: LegendOverlay
|
||
var node_overlay: NodeOverlay
|
||
var level_screen: LevelMapScreen
|
||
var curio_overlay: CurioPickOverlay
|
||
var end_overlay: BattleEndOverlay
|
||
var shop_overlay: ShopOverlay
|
||
var camp: UiCampModals
|
||
var settings_overlay: SettingsOverlay
|
||
var status_panel: StatusPanel
|
||
var career_overlay: CareerOverlay
|
||
var save_select_overlay: SaveSelectOverlay
|
||
var confirm_dialog: ConfirmDialog
|
||
var debug_overlay: DebugOverlay
|
||
|
||
|
||
func _init() -> void:
|
||
flow = ModalFlow.new() # 查询/钩子 Callable 由 _build_modal_flow 注入(注入时点不变——注入值面向已在座实例)
|
||
camp = UiCampModals.new() # 营地域句柄子容器(分域纪律——营地域句柄禁平铺回本册)
|
||
|
||
|
||
func register_layer(m: Control, tags: Array = []) -> void:
|
||
# 撑满宿主(Control 默认锚 = 0×0——全屏变暗层与居中布局整体失效;route 选路层预览截图实证后
|
||
# 统一收口:六个模态同病,探针经信号直发绕过真实点击从未暴露。anchors_and_offsets 而非 anchors
|
||
# ——后者会把控件重置回最小内容尺寸,ui_assembler 头注同款纪律)
|
||
m.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
||
flow.register(m, tags) # 排除组随层登记(non_locking=调试浮窗/screen_state=关卡地图屏)
|