using BriarQueen.Framework.Managers.UI; using BriarQueen.UI.Codex; using BriarQueen.UI.HUD; using BriarQueen.UI.Menus; using UnityEngine; using VContainer; using VContainer.Unity; namespace BriarQueen.UI.Scopes { public class UISceneLifetimeScope : LifetimeScope { [Header("Windows")] [SerializeField] private PauseMenuWindow _pauseMenuWindow; [SerializeField] private SettingsWindow _settingsWindow; [SerializeField] private CodexWindow _codexWindow; [Header("Popups")] [SerializeField] private TutorialPopup _tutorialPopupWindow; [SerializeField] private InfoPopup _infoPopup; [Header("UI Objects")] [SerializeField] private ScreenFader _screenFader; [Header("HUD")] [SerializeField] private HUDContainer _hudContainer; [SerializeField] private CursorTooltip _cursorTooltip; [SerializeField] private InventoryBar _inventoryBar; protected override void Configure(IContainerBuilder builder) { if (_pauseMenuWindow != null) builder.RegisterComponent(_pauseMenuWindow); if (_settingsWindow != null) builder.RegisterComponent(_settingsWindow); if (_codexWindow != null) builder.RegisterComponent(_codexWindow); if (_tutorialPopupWindow != null) builder.RegisterComponent(_tutorialPopupWindow); if (_infoPopup != null) builder.RegisterComponent(_infoPopup); if (_screenFader != null) builder.RegisterComponent(_screenFader); if (_hudContainer != null) builder.RegisterComponent(_hudContainer); if (_cursorTooltip != null) builder.RegisterComponent(_cursorTooltip); if (_inventoryBar != null) builder.RegisterComponent(_inventoryBar); builder.RegisterBuildCallback(container => { var uiManager = container.Resolve(); if (_pauseMenuWindow != null) uiManager.RegisterWindow(_pauseMenuWindow); if (_settingsWindow != null) uiManager.RegisterWindow(_settingsWindow); if (_codexWindow != null) uiManager.RegisterWindow(_codexWindow); if (_tutorialPopupWindow != null) uiManager.RegisterTutorialPopup(_tutorialPopupWindow); if (_infoPopup != null) uiManager.RegisterInfoPopup(_infoPopup); if (_screenFader != null) uiManager.RegisterScreenFader(_screenFader); if (_hudContainer != null) uiManager.RegisterHUD(_hudContainer); Debug.Log($"[UISceneLifetimeScope] UI registered with {uiManager}"); }); } } }