using AxibugEmuOnline.Client.Tools; using AxibugProtobuf; using UnityEngine; namespace AxibugEmuOnline.Client { public class CheckingState : SimpleFSM<SaveFile>.State { private float m_timeOut; public Protobuf_Mine_GameSavInfo NetData { get; private set; } public override void OnEnter(SimpleFSM<SaveFile>.State preState) { m_timeOut = 5f; Host.CloudAPI.OnFetchGameSavList += CloudAPI_OnFetchGameSavList; Host.CloudAPI.SendGetGameSavList(Host.RomID); } public override void OnExit(SimpleFSM<SaveFile>.State nextState) { Host.CloudAPI.OnFetchGameSavList -= CloudAPI_OnFetchGameSavList; } public override void OnUpdate() { m_timeOut -= Time.deltaTime; if (m_timeOut < 0) //已超时 { FSM.ChangeState<UnkownState>(); } } private void CloudAPI_OnFetchGameSavList(int romID, Protobuf_Mine_GameSavInfo[] savSlotData) { if (romID != Host.RomID) return; NetData = savSlotData[Host.SlotIndex]; if (NetData == null) //云存档不存在,上传本地存档 { FSM.ChangeState<UploadingState>(); } else { FSM.ChangeState<DownloadingState>(); } } } }