using Bootstrap; using Cinematics; using UnityEngine; using Core; using System; using UnityEngine.UI; using UnityEngine.Playables; using Core.Lifecycle; public class PlayerHudManager : ManagedBehaviour { private AppSwitcher _appSwitcher; public GameObject landscapeObject; public GameObject portraitObject; public GameObject cinematicsParentObject; public GameObject CinematicBackground; [HideInInspector] public Image cinematicSprites; [HideInInspector] public Image cinematicBackgroundSprites; [HideInInspector] public GameObject currentCinematicPlayer; [HideInInspector] public PlayableDirector playableDirector; private static PlayerHudManager _instance; public static PlayerHudManager Instance => _instance; private new void Awake() { if (Instance != null) { Destroy(this); return; } _instance = this; } protected override void OnManagedAwake() { InitializePostBoot(); } private void InitializeReferences() { cinematicSprites = currentCinematicPlayer.GetComponent(); cinematicBackgroundSprites = CinematicBackground.GetComponent(); playableDirector = cinematicsParentObject.GetComponent(); } private void InitializePostBoot() { // Initialize any dependencies that require other services to be ready // For example, subscribe to SceneManagerService events if needed Logging.Debug("[PlayerHudManager] Post-boot initialization complete"); } private void OnEnable() { // Subscribe to application quit event to ensure cleanup Application.quitting += OnApplicationQuit; } private void OnApplicationQuit() { } public void SetPortraitMode(bool portraitModeEnable) { if (portraitModeEnable) { currentCinematicPlayer = portraitObject; InitializeReferences(); } else { currentCinematicPlayer = landscapeObject; InitializeReferences(); } } }