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 Func callbackFunc; public bool IsLogin { get; } public GameStateMainScene(bool isLogin = false, Func callback = null) { callbackFunc = callback; IsLogin = isLogin; } public void OnEnter() { E_LoadingType loadingType = IsLogin ? E_LoadingType.Login : E_LoadingType.CommonLoading; LoadingManager.Instance.ExecuteLoading(new MainSceneLoadingExecutor(loadingType, OnLoadingComplete)).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() { } private async UniTask OnLoadingComplete() { await UI_MainPanelController.Open(); if (null != callbackFunc) await callbackFunc.Invoke(); } }