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