public static Dictionary <string, string> ReadDatabasePathByName(DatabasePreset preset) { Dictionary <string, string> dic = new Dictionary <string, string>(); DatabaseElementList list = JsonUtility.FromJson <DatabaseElementList>(ReadDatabase(preset).text); foreach (DatabaseElement element in list.List) { dic.Add(element.Name, element.Path); } return(dic); }
void Awake() { if (!created) { BattlegroundSaveFile = BattlegroundSaveFile.Insert(0, Application.persistentDataPath); WorldMapSaveFile = WorldMapSaveFile.Insert(0, Application.persistentDataPath); skillsDatabasePreset = Resources.Load <ScriptableObject>("Databases/SkillsPreset") as DatabasePreset; itemsDatabasePreset = Resources.Load <ScriptableObject>("Databases/ItemsPreset") as DatabasePreset; materialsDatabasePreset = Resources.Load <ScriptableObject>("Databases/MaterialsPreset") as DatabasePreset; DontDestroyOnLoad(transform.gameObject); created = true; } else { Debug.Log("SaveManager awake"); } }
public static MapInfos Deserialize(MapInfosSerializable serializedData, DatabasePreset materialsPreset, List <Player> player, List <Enemy> enemies) { MapInfos mapInfos = new MapInfos(); string path = "MapData/" + serializedData.MapDataType.ToString(); mapInfos.MapData = Resources.Load <ScriptableObject>(path) as MapData; mapInfos.Size = new Vector2(serializedData.SizeX, serializedData.SizeY); mapInfos.Layout = serializedData.Layout; if (serializedData.Map != null) { Dictionary <string, Material> materials = new Dictionary <string, Material>(); Dictionary <string, string> materialsDatabase = DataSerialization.ReadDatabasePathByName(materialsPreset); foreach (string name in serializedData.Materials) { if (materialsDatabase.ContainsKey(name)) { materials.Add(name, Resources.Load <Material>(materialsDatabase[name])); } else { Debug.Log("Material " + name + " not found in DB"); } } Cell[,] newMap = new Cell[serializedData.SizeX, serializedData.SizeY]; for (int x = 0; x < serializedData.SizeX; x++) { for (int y = 0; y < serializedData.SizeY; y++) { newMap[x, y] = new Cell(); if (serializedData.Map[x, y].UnitId != -1) { newMap[x, y].IsTaken = GetUnitById(serializedData.Map[x, y].UnitId, player, enemies); } newMap[x, y].IsWalkable = serializedData.Map[x, y].IsWalkable; newMap[x, y].X = serializedData.Map[x, y].X; newMap[x, y].Y = serializedData.Map[x, y].Y; newMap[x, y].Z = serializedData.Map[x, y].Z; newMap[x, y].RealY = serializedData.Map[x, y].RealY; if (serializedData.Map[x, y].MaterialName != null && serializedData.Map[x, y].MaterialName != "") { if (materials.ContainsKey(serializedData.Map[x, y].MaterialName)) { newMap[x, y].Material = materials[serializedData.Map[x, y].MaterialName]; } else { Debug.Log("Deserialization error, material " + serializedData.Map[x, y].MaterialName + " not found"); } } if (serializedData.Map[x, y].FillerName != null && serializedData.Map[x, y].FillerName != "") { if (materials.ContainsKey(serializedData.Map[x, y].FillerName)) { newMap[x, y].Filler = materials[serializedData.Map[x, y].FillerName]; } else { Debug.Log("Deserialization error, material " + serializedData.Map[x, y].FillerName + " not found"); } } } } mapInfos.Map = newMap; } else { mapInfos.Map = null; } return(mapInfos); }
public static TextAsset ReadDatabase(DatabasePreset preset) { TextAsset text = Resources.Load <TextAsset>("Databases/" + preset.Name); return(text); }