public static void SaveData(Scene scene) { IDataPersister[] persisters = GetDataPersisters(scene); SceneData sceneData = SceneDataRepository.GetSceneData(scene); foreach (IDataPersister persister in persisters) { DataSettings key = persister.GetDataSettings(); sceneData.Store(key.dataKey, persister.SaveData(), key.persistenceType); } }
public static void LoadData(Scene scene) { IDataPersister[] persisters = GetDataPersisters(scene); SceneData sceneData = SceneDataRepository.GetSceneData(scene); foreach (var data in sceneData.SavedData) { IDataPersister persister = persisters.FirstOrDefault(p => Equals(data.Key, p.GetDataSettings().dataKey)); if (persister == null) { continue; } persister.LoadData(data.Value.Data); } }