客户端rsa,冗余清理,bug修复,安卓build问题
This commit is contained in:
@@ -11,6 +11,8 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
|
||||
public static StoreOwnershipLedger Instance { get; private set; }
|
||||
|
||||
public event Action<int> OnOwnershipChanged;
|
||||
|
||||
private readonly Dictionary<int, StoreOwnershipEntry> entriesByItemId = new Dictionary<int, StoreOwnershipEntry>();
|
||||
private readonly List<storeItemSO> cachedStoreItems = new List<storeItemSO>();
|
||||
private bool initialized;
|
||||
@@ -72,11 +74,12 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
initialized = true;
|
||||
StoreOwnershipPayload payload;
|
||||
bool loadedFromSave = StoreOwnershipStorage.TryLoad(out payload);
|
||||
bool hasAnyRecoverableLocalState = loadedFromSave || StoreOwnershipStorage.HasAnyRecoverableState();
|
||||
RebuildFromPayload(payload);
|
||||
LoadStoreItems();
|
||||
|
||||
bool recoveredFromMirrors = false;
|
||||
if (!loadedFromSave)
|
||||
if (!loadedFromSave && !hasAnyRecoverableLocalState)
|
||||
{
|
||||
recoveredFromMirrors = SeedFromCurrentMirrorFlags();
|
||||
}
|
||||
@@ -149,6 +152,7 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
ApplyEntryToItem(itemSO, entry);
|
||||
GlobalAchievementService.EnsureInstance().RefreshDerivedMetrics();
|
||||
SaveNow();
|
||||
NotifyOwnershipChanged(itemSO.itemID);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -187,6 +191,7 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
SyncAllMirrorFlags();
|
||||
GlobalAchievementService.EnsureInstance().RefreshDerivedMetrics();
|
||||
SaveNow();
|
||||
NotifyOwnershipChanged(itemSO.itemID);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -212,6 +217,14 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
StoreOwnershipStorage.TrySave(CreatePayload());
|
||||
}
|
||||
|
||||
public void ClearPersistentState()
|
||||
{
|
||||
InitializeIfNeeded();
|
||||
entriesByItemId.Clear();
|
||||
SyncAllMirrorFlags();
|
||||
StoreOwnershipStorage.TrySave(CreatePayload());
|
||||
}
|
||||
|
||||
private void RebuildFromPayload(StoreOwnershipPayload payload)
|
||||
{
|
||||
entriesByItemId.Clear();
|
||||
@@ -770,4 +783,14 @@ public sealed class StoreOwnershipLedger : MonoBehaviour
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
private void NotifyOwnershipChanged(int itemId)
|
||||
{
|
||||
if (itemId <= 0 || OnOwnershipChanged == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
OnOwnershipChanged(itemId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user