using UnityEngine; namespace CleverCrow.Fluid.Databases { public interface IDatabaseInstance { IKeyValueData Bools { get; } IKeyValueData Strings { get; } IKeyValueData Ints { get; } IKeyValueData Floats { get; } void Clear (); string Save (); void Load (string save); } public class DatabaseInstance : IDatabaseInstance { public IKeyValueData Bools { get; } = new KeyValueDataBool(); public IKeyValueData Strings { get; } = new KeyValueDataString(); public IKeyValueData Ints { get; } = new KeyValueDataInt(); public IKeyValueData Floats { get; } = new KeyValueDataFloat(); public class SaveData { public string strings; public string bools; public string ints; public string floats; } public void Clear () { Strings.Clear(); Bools.Clear(); Ints.Clear(); Floats.Clear(); } public string Save () { return JsonUtility.ToJson(new SaveData { strings = Strings.Save(), bools = Bools.Save(), ints = Ints.Save(), floats = Floats.Save(), }); } public void Load (string save) { var data = JsonUtility.FromJson(save); Strings.Load(data.strings); Bools.Load(data.bools); Ints.Load(data.ints); Floats.Load(data.floats); } } }