Client 存档功能 迭代

This commit is contained in:
sin365 2025-05-14 22:54:35 +08:00
parent 52e9f42184
commit c8f0d77b34
5 changed files with 38 additions and 27 deletions

View File

@ -72,6 +72,7 @@ namespace AxibugEmuOnline.Client
SlotIndex = slotIndex; SlotIndex = slotIndex;
FSM = new SimpleFSM<SaveFile>(this); FSM = new SimpleFSM<SaveFile>(this);
FSM.AddState<IdleState>(); FSM.AddState<IdleState>();
FSM.AddState<CheckingNetworkState>();//
FSM.AddState<CheckingState>(); FSM.AddState<CheckingState>();
FSM.AddState<DownloadingState>(); FSM.AddState<DownloadingState>();
FSM.AddState<UploadingState>(); FSM.AddState<UploadingState>();

View File

@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client
{ {
public override void OnUpdate() public override void OnUpdate()
{ {
if (App.network.isConnected) if (App.user.IsLoggedIn)
{ {
FSM.ChangeState<CheckingState>(); FSM.ChangeState<CheckingState>();
} }

View File

@ -38,7 +38,7 @@ namespace AxibugEmuOnline.Client
if (romID != Host.RomID) return; if (romID != Host.RomID) return;
NetData = savSlotData[Host.SlotIndex]; NetData = savSlotData[Host.SlotIndex];
if (NetData == null) //云存档不存在,上传本地存档 if (!NetData.BHadSaveData) //云存档不存在,上传本地存档
{ {
FSM.ChangeState<UploadingState>(); FSM.ChangeState<UploadingState>();
} }

View File

@ -10,6 +10,11 @@ namespace AxibugEmuOnline.Client
{ {
Host.CloudAPI.OnUploadedSavData += Api_OnUploadedSavData; Host.CloudAPI.OnUploadedSavData += Api_OnUploadedSavData;
if (Host.IsEmpty)
{
FSM.ChangeState<SyncedState>();
return;
}
Host.GetSavData(out byte[] savData, out byte[] screenData); Host.GetSavData(out byte[] savData, out byte[] screenData);
Host.CloudAPI.SendUpLoadGameSav(Host.RomID, Host.SlotIndex, Host.Sequecen, savData, screenData); Host.CloudAPI.SendUpLoadGameSav(Host.RomID, Host.SlotIndex, Host.Sequecen, savData, screenData);
} }

View File

@ -141,34 +141,35 @@ namespace AxibugProtobuf {
"bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E", "bnB1dBD6LhIdChhDTURfUk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01E",
"X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb", "X1NjcmVlbhDZNhIfChpDTURfR0FNRVNBVl9HZXRHYW1lU2F2TGlzdBDBPhIb",
"ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw", "ChZDTURfR0FNRVNBVl9EZWxHYW1lU2F2EMU+Eh4KGUNNRF9HQU1FU0FWX1Vw",
"bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TirxAQoJRXJyb3JD", "bG9hZEdhbWVTYXYQyj4SEgoNQ01EX0dBTUVfTUFSSxD1TiqOAgoJRXJyb3JD",
"b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf", "b2RlEhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1Jf",
"Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf", "Uk9PTV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlf",
"SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF", "SEFEX1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRF",
"EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASHwoaRVJST1Jf", "EDISHwobRVJST1JfUk9NX0RPTlRfSEFEX1NBVkVEQVRBEFASGwoXRVJST1Jf",
"Uk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9NX0RPTlRfSEFE", "Uk9NX0ZBSUxfU0FWRURBVEEQURIfChpFUlJPUl9ST01fQUxSRUFEWV9IQURf",
"X1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAAEg4KClVzZUFj", "U1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCUAypACglMb2dp",
"Y291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRldmljZVR5cGUS", "blR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBABEhQKEFVzZUhh",
"FgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdBbmRyb2lkEAIS", "b1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0Rl",
"BwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYSCwoHWEJPWDM2", "ZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQ",
"MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVuZG8zRFMQChIR", "BBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoHWEJPWE9ORRAI",
"Cg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwKCEtleWJvYXJk", "EggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJvaWRDYXJBcHAQ",
"EAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQAhIOCgpEUzND", "CyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1HbG9iYWxHYW1l",
"b250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRyb2wQBRIUChBT", "UGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQAxIOCgpEUzRD",
"d2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcSEgoOWEJPWDM2", "b250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFByb0NvbnRyb2wQ",
"MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBTVml0YUNvbnRy", "BhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJvbBAIEhIKDlhC",
"b2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90ZUNvbnRyb2wQ", "T1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIKDldpaVVQYWRD",
"DBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqDAgoPUm9tUGxhdGZvcm1UeXBl", "b250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5pbnRlbmRvM0RT",
"EgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lzdGVtEAISDQoJ", "Q29udHJvbBANKoMCCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52YWxpZBAAEgcK",
"R2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0JveV9Db2xvchAF", "A05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dlYXIQAxIMCghH",
"EhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoHU0dfMTAwMBAI", "YW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29sZWNvX1Zpc2lv",
"EgoKBk5FT0dFTxAUEgcKA0lHUxAVEggKBENQUzEQFhIICgRDUFMyEBcSDgoK", "bhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCgoGTkVPR0VPEBQSBwoD",
"QXJjYWRlX09MRBAeEg8KC1dvbmRlcl9Td2FuECgSFQoRV29uZGVyX1N3YW5f", "SUdTEBUSCAoEQ1BTMRAWEggKBENQUzIQFxIOCgpBcmNhZGVfT0xEEB4SDwoL",
"Q29sb3IQKRIICgNBbGwQ5wcqcAoNUm9vbUdhbWVTdGF0ZRISCg5Ob25lX0dh", "V29uZGVyX1N3YW4QKBIVChFXb25kZXJfU3dhbl9Db2xvchApEggKA0FsbBDn",
"bWVTdGF0ZRAAEgwKCE9ubHlIb3N0EAESEQoNV2FpdFJhd1VwZGF0ZRACEg0K", "BypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVfR2FtZVN0YXRlEAASDAoIT25s",
"CVdhaXRSZWFkeRADEgkKBVBhdXNlEAQSEAoMSW5PbmxpbmVHYW1lEAUqTgoR", "eUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAISDQoJV2FpdFJlYWR5EAMSCQoF",
"TG9naW5SZXN1bHRTdGF0dXMSIQodTG9naW5SZXN1bHRTdGF0dXNfQmFzZURl", "UGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpOChFMb2dpblJlc3VsdFN0YXR1",
"ZmF1bHQQABIGCgJPSxABEg4KCkFjY291bnRFcnIQAkICSAFiBnByb3RvMw==")); "cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYKAk9LEAES",
"DgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { }, new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@ -395,6 +396,10 @@ namespace AxibugProtobuf {
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80, [pbr::OriginalName("ERROR_ROM_DONT_HAD_SAVEDATA")] ErrorRomDontHadSavedata = 80,
/// <summary> /// <summary>
///即时存档不存在
/// </summary>
[pbr::OriginalName("ERROR_ROM_FAIL_SAVEDATA")] ErrorRomFailSavedata = 81,
/// <summary>
///已经收藏 ///已经收藏
/// </summary> /// </summary>
[pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403, [pbr::OriginalName("ERROR_ROM_ALREADY_HAD_STAR")] ErrorRomAlreadyHadStar = 403,