卡①T1(组合根注册面批): ui_registry+三域容器建件——UiRegistry(LAYER_CONTRACT逐字迁入+node(key)19键match+apply_layer_contract唯一落位口)/UiScreens(9句柄)/UiBattle(5句柄)/UiModals(13句柄+flow+register_layer逐字迁入);四件全RefCounted零信号连接;类缓存刷新+.uid同步;S9/S13零新键+source_guard绿

This commit is contained in:
DKChan committed 2026-10-30 03:47:22 +08:00
1 parent c8f5091d0f
commit bee0682f4c
8 files changed
+158

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
## 模态层域句柄册:十三个模态覆盖层句柄+模态栈编排(ModalFlow——登记/开合/输入锁谓词)的注册面域容器。
## RefCounted 不挂树;模态登记唯一口=register_layer(anchors 撑满宿主+排入 ModalStack)。
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_overlay: CampOverlay
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 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=关卡地图屏)