客户端rsa,冗余清理,bug修复,安卓build问题

This commit is contained in:
FloatGaming
2026-07-14 01:43:49 +08:00
parent fd22501f71
commit f8985d91d2
682 changed files with 4595 additions and 11216 deletions
@@ -11,6 +11,7 @@ public sealed class PlayerEconomyLedger : MonoBehaviour
private PlayerEconomyPayload payload;
private bool initialized;
private bool loadedFromSave;
private bool hasAnyRecoverableLocalState;
private Player_SO boundPlayerData;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
@@ -69,13 +70,18 @@ public sealed class PlayerEconomyLedger : MonoBehaviour
PlayerEconomyPayload loadedPayload;
loadedFromSave = PlayerEconomyStorage.TryLoad(out loadedPayload);
hasAnyRecoverableLocalState = loadedFromSave || PlayerEconomyStorage.HasAnyRecoverableState();
payload = loadedPayload;
if (payload == null)
{
payload = PlayerEconomyStorage.CreateDefaultPayload();
}
initialized = true;
SaveNow();
if (loadedFromSave)
{
SaveNow();
}
}
public void AttachPlayerData(Player_SO playerData)
@@ -88,12 +94,17 @@ public sealed class PlayerEconomyLedger : MonoBehaviour
InitializeIfNeeded();
boundPlayerData = playerData;
if (!loadedFromSave)
if (!loadedFromSave && !hasAnyRecoverableLocalState)
{
payload.coins = Mathf.Max(0, playerData.Coins);
payload.material = Mathf.Max(0, playerData.Material);
// 首次启动且无任何可恢复存档:用硬编码默认值(0)建立初始存档,
// 绝不读取 Player_SO 的烘焙值——该资产可能被打包时的测试数据污染,
// 直接采用会把玩家进度“种”成 999988 之类的测试数值。
payload = PlayerEconomyStorage.CreateDefaultPayload();
SyncToPlayerData();
SaveNow();
loadedFromSave = true;
hasAnyRecoverableLocalState = true;
NotifyEconomyChanged();
return;
}
@@ -217,6 +228,13 @@ public sealed class PlayerEconomyLedger : MonoBehaviour
SaveNow();
}
public void SetMaterial(int value)
{
InitializeIfNeeded();
payload.material = Mathf.Max(0, value);
SaveNow();
}
public void SaveNow()
{
InitializeIfNeededForSave();