using System.Collections;
using AibisDream.Framework;
using AibisDream.SaveSystem;
using AibisDream.UI;
using UnityEngine;
namespace AibisDream
{
/// 负责 Persistence 场景中的应用级初始化,不参与游戏会话流程。
[DefaultExecutionOrder(-100)]
public sealed class ApplicationBootstrapper : MonoBehaviour
{
private const float MainMenuFadeDuration = 0.5f;
private IEnumerator Start()
{
SettingLoader.Init();
SnapshotRegistry.EnsureInitialized();
var transitionPanel = UIManager.Instance.GetPanel();
UIManager.Instance.ShowPanel();
transitionPanel?.ApplyScreenCovered(true);
yield return LocalizationKit.WaitUntilReady();
EnumEventSystem.Global.Send(GameLifecycleEvent.ApplicationReady);
yield return LocalizationKit.WaitForUIRefresh();
if (transitionPanel != null)
{
yield return transitionPanel.FadeOutAsync(MainMenuFadeDuration);
}
}
}
}