using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public abstract class SceneBaseDataLoader : SceneDataLoaderInterface { protected SaveModelSystem SaveModelSystem; protected PathBuilder PathBuilder; protected string CurrentMap; protected SceneBaseDataLoader() { PathBuilder = new PathBuilder(); CurrentMap = SceneManager.GetActiveScene().name; } public List LoadData(SceneElementTypeEnum type) { switch (type) { case SceneElementTypeEnum.None: { return LoadGenericData(); } /* case SceneElementTypeEnum.Static: { return LoadStaticData(); }*/ case SceneElementTypeEnum.Dynamic: { return LoadDynamicData(); } default: // for SceneElementTypeEnum.All { Debug.Log("Handle All case..."); return new List(); } } } public bool SaveData(List _elements, SceneElementTypeEnum type) { switch (type) { case SceneElementTypeEnum.None: { return SaveGenericData(_elements); } /* case SceneElementTypeEnum.Static: { return SaveStaticData(_elements); }*/ case SceneElementTypeEnum.Dynamic: { return SaveDynamicData(_elements); } default: // for SceneElementTypeEnum.All { Debug.Log("Handle All case..."); return true; } } } protected abstract List LoadDynamicData(); protected abstract List LoadGenericData(); protected virtual bool SaveDynamicData(List _elements) { try { SaveModelSystem.SaveModelList(_elements); return true; } catch (Exception e) { Debug.LogError(e.Message); } return false; } protected abstract bool SaveGenericData(List _elements); }