UI换了很多,spine主视觉停用
This commit is contained in:
@@ -70,6 +70,7 @@ public sealed class DushMaterialLedger : MonoBehaviour
|
||||
loadedFromSave = DushMaterialLedgerStorage.TryLoad(out payload);
|
||||
RebuildFromPayload(payload);
|
||||
initialized = true;
|
||||
TryRecoverFromDefaultPlayerData();
|
||||
SyncMirrorCounts();
|
||||
SaveNow();
|
||||
}
|
||||
@@ -278,6 +279,46 @@ public sealed class DushMaterialLedger : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryRecoverFromDefaultPlayerData()
|
||||
{
|
||||
Player_SO player = RuntimeResourcesCache.LoadDefaultPlayerSo();
|
||||
if (player == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
for (int i = 0; i < DushMaterialCatalog.All.Count; i++)
|
||||
{
|
||||
var descriptor = DushMaterialCatalog.All[i];
|
||||
if (string.IsNullOrEmpty(descriptor.LegacyPlayerFieldName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int legacyValue = Mathf.Max(0, player.GetLegacyDushMaterialCount(descriptor.LegacyPlayerFieldName));
|
||||
if (legacyValue <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (GetCountByKey(descriptor.Key) > 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
countsByKey[descriptor.Key] = legacyValue;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
Debug.LogWarning("[DushMaterialLedger] Recovered growth materials from Player_SO mirror fields.");
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
private DushMaterialLedgerPayload BuildPayload()
|
||||
{
|
||||
var payload = DushMaterialLedgerStorage.CreateDefaultPayload();
|
||||
|
||||
Reference in New Issue
Block a user