You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

61 line
1.6 KiB

  1. using System;
  2. using UnityEngine;
  3. public class SceneCloudSaveResolver : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. StorageController.CloudStorage.ConflictResolutionComplete += this.OnConflictResolutionComplete;
  8. this.OnConflictResolutionComplete(StorageController.CloudStorage.LastResolutionResult);
  9. }
  10. protected virtual void OnDestroy()
  11. {
  12. StorageController.CloudStorage.ConflictResolutionComplete -= this.OnConflictResolutionComplete;
  13. }
  14. private void OnConflictResolutionComplete(ConflictResolver.ConflictSolution result)
  15. {
  16. UnityEngine.Debug.Log("[SceneCloudSaveResolver] OnConflictResolutionComplete: " + result);
  17. switch (result)
  18. {
  19. default:
  20. StorageController.CloudStorage.OnConflictResolved();
  21. break;
  22. case ConflictResolver.ConflictSolution.AskPlayer:
  23. this.OnConflictAskPlayer();
  24. break;
  25. case ConflictResolver.ConflictSolution.PickLocal:
  26. this.OnConflictResultPickLocal();
  27. break;
  28. case ConflictResolver.ConflictSolution.PickCloud:
  29. this.OnConflictResultPickCloud();
  30. break;
  31. case ConflictResolver.ConflictSolution.InvalidGameVersion:
  32. this.OnConflictResultInvalidGameVersion();
  33. break;
  34. }
  35. }
  36. protected virtual void OnConflictResultPickLocal()
  37. {
  38. StorageController.CloudStorage.OnConflictResolved();
  39. StorageController.SaveAll();
  40. }
  41. protected virtual void OnConflictResultPickCloud()
  42. {
  43. StorageController.CloudStorage.OnConflictResolved();
  44. StorageController.CloudStorage.LoadLastCloudSaveGame();
  45. StorageController.SaveAll();
  46. }
  47. protected virtual void OnConflictAskPlayer()
  48. {
  49. }
  50. protected virtual void OnConflictResultInvalidGameVersion()
  51. {
  52. }
  53. }