using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Guide; using Gameplay.SubSystems; using System; using System.Runtime.CompilerServices; #if SDK_TAPTAP using PhxhSDK; #endif public class GameStateMainScene : IState { private readonly Action callbackAction; public bool IsLogin { get; } public GameStateMainScene(bool isLogin = false, Action callback = null) { callbackAction = callback; IsLogin = isLogin; } public void OnEnter() { EventManager.Instance.Register(EventManager.EventName.LoadingExecutorComplete, OnLoadingComplete); E_LoadingType loadingType = IsLogin ? E_LoadingType.Login : E_LoadingType.CommonLoading; LoadingManager.Instance.ExecuteLoading(new MainSceneLoadingExecutor(loadingType)).Forget(); #if SDK_TAPTAP var antiAddictionService = SDKManager.Instance.GetSdkHelper(SDKManager.SdkName.TapTap) as IAntiAddictionService; antiAddictionService?.AntiAddictionEnterGame(); #endif } public void OnUpdate(float deltaTime) { } public void OnExit() { EventManager.Instance.Unregister(EventManager.EventName.LoadingExecutorComplete, OnLoadingComplete); } private async void OnLoadingComplete() { await UI_MainPanelController.Open(); callbackAction?.Invoke(); } }