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 LoadStaticData(); protected abstract List LoadDynamicData(); protected abstract List LoadGenericData(); protected abstract bool SaveStaticData(List _elements); protected abstract bool SaveDynamicData(List _elements); protected abstract bool SaveGenericData(List _elements); }