修了不少东西
This commit is contained in:
@@ -15,8 +15,11 @@ namespace Bansonic
|
||||
private const string NextGeneratedIdPrefsKey = "bansonic_equipment_next_id_v1";
|
||||
private const string RuntimeSaveCategory = "runtime_equipment";
|
||||
private const string RuntimeSaveKey = "generated_list";
|
||||
private const string RuntimeRecoverySlotKey = "runtime_generated_equipment_list";
|
||||
private static readonly List<equipmentSO> RuntimeGeneratedEquipments = new List<equipmentSO>();
|
||||
private static bool runtimeGeneratedLoaded;
|
||||
private static bool runtimeGeneratedLoadedFromSave;
|
||||
private static bool runtimeGeneratedHasRecoverableState;
|
||||
|
||||
private enum QualityRollMode { Default, High }
|
||||
|
||||
@@ -113,7 +116,10 @@ namespace Bansonic
|
||||
{
|
||||
RuntimeGeneratedEquipments.Clear();
|
||||
runtimeGeneratedLoaded = true;
|
||||
runtimeGeneratedLoadedFromSave = false;
|
||||
runtimeGeneratedHasRecoverableState = false;
|
||||
SecureSaveVault.Delete(RuntimeSaveCategory, RuntimeSaveKey);
|
||||
LocalRecoveryMirror.DeleteSlot(RuntimeRecoverySlotKey);
|
||||
}
|
||||
|
||||
public static List<equipmentSO> generateEquipment(
|
||||
@@ -630,12 +636,16 @@ namespace Bansonic
|
||||
}
|
||||
|
||||
runtimeGeneratedLoaded = true;
|
||||
runtimeGeneratedLoadedFromSave = false;
|
||||
runtimeGeneratedHasRecoverableState =
|
||||
SecureSaveVault.HasAnyRecoverableState(RuntimeSaveCategory, RuntimeSaveKey)
|
||||
|| LocalRecoveryMirror.HasSlotData(RuntimeRecoverySlotKey);
|
||||
RuntimeGeneratedEquipments.Clear();
|
||||
|
||||
RuntimeGeneratedEquipmentListPayload payload;
|
||||
if (!SecureSaveVault.TryLoadJson(RuntimeSaveCategory, RuntimeSaveKey, out payload) || payload == null || payload.items == null)
|
||||
{
|
||||
if (!LocalRecoveryMirror.TryLoadJson("runtime_generated_equipment_list", out payload) || payload == null || payload.items == null)
|
||||
if (!LocalRecoveryMirror.TryLoadJson(RuntimeRecoverySlotKey, out payload) || payload == null || payload.items == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -643,6 +653,7 @@ namespace Bansonic
|
||||
SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload);
|
||||
}
|
||||
|
||||
runtimeGeneratedLoadedFromSave = true;
|
||||
for (int i = 0; i < payload.items.Count; i++)
|
||||
{
|
||||
RuntimeGeneratedEquipmentPayload itemPayload = payload.items[i];
|
||||
@@ -656,6 +667,12 @@ namespace Bansonic
|
||||
|
||||
private static void SaveRuntimeGeneratedState()
|
||||
{
|
||||
if (!runtimeGeneratedLoadedFromSave && runtimeGeneratedHasRecoverableState)
|
||||
{
|
||||
Debug.LogWarning("[EquipmentGenerator] Recoverable runtime equipment state exists but could not be loaded; skip saving to avoid overwriting older equipment data.");
|
||||
return;
|
||||
}
|
||||
|
||||
RuntimeGeneratedEquipmentListPayload payload = new RuntimeGeneratedEquipmentListPayload();
|
||||
for (int i = 0; i < RuntimeGeneratedEquipments.Count; i++)
|
||||
{
|
||||
@@ -669,7 +686,7 @@ namespace Bansonic
|
||||
}
|
||||
|
||||
SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload);
|
||||
LocalRecoveryMirror.SaveJson("runtime_generated_equipment_list", payload);
|
||||
LocalRecoveryMirror.SaveJson(RuntimeRecoverySlotKey, payload);
|
||||
}
|
||||
|
||||
private static RuntimeGeneratedEquipmentPayload BuildPayload(equipmentSO equipment)
|
||||
|
||||
Reference in New Issue
Block a user