void Scan_Mods(bool includeVanillaIsland = false) { List <string> islands = new List <string>(); if (includeVanillaIsland) { string filePath = Application.streamingAssetsPath + "/OverworldData.worldDat"; islands.Add(filePath); } else { islands = Directory.EnumerateFiles(PATH_ALL_MODS, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".json")).ToList(); } foreach (string path in islands) { if (File.Exists(path)) { } else { continue; } try { Overworld_MapData overworldData = JsonUtility.FromJson <Overworld_MapData>(File.ReadAllText(path)); foreach (IslandData islandDat in overworldData.GlobalIslands) { if (islandDat == null) { continue; } if (packSetting.packDatas.Find(x => x.modName == islandDat.ModPackName) == null) { ModPack_Data pack_Data = new ModPack_Data(); pack_Data.GCECoord = islandDat.GCECoord; pack_Data.modName = islandDat.ModPackName; Debug.Log(pack_Data.modName + " has been created."); packSetting.packDatas.Add(pack_Data); } else if (packSetting.packDatas.Find(x => x.modName == islandDat.ModPackName) != null) { ModPack_Data pack_Data = packSetting.packDatas.Find(x => x.modName == islandDat.ModPackName); pack_Data.GCECoord = islandDat.GCECoord; pack_Data.modName = islandDat.ModPackName; Debug.Log(pack_Data.modName + " has been written."); } } } catch { continue; } } }
public void Load_WorldMap() { string filePath = EditorUtility.OpenFilePanel("Load World Data", Application.dataPath, "json"); mapData = JsonUtility.FromJson <Overworld_MapData>(File.ReadAllText(filePath)); Debug.Log("Overworld Map data has been loaded."); Update_WorldMap(); }
public void Update_WorldMap() { string filePath = Application.streamingAssetsPath + "/OverworldData.worldDat"; vanillaIslandData = JsonUtility.FromJson <Overworld_MapData>(File.ReadAllText(filePath)); int i = 0; pooledMinimapIsland.Clear(); OverworldEditor_Island[] islands = this.GetComponentsInChildren <OverworldEditor_Island>(); foreach (OverworldEditor_Island island in islands) { pooledMinimapIsland.Add(island); } foreach (IslandData islandData in mapData.GlobalIslands) { bool valid = false; if (pooledMinimapIsland.Count > i) { if (pooledMinimapIsland[i] != null) { ReloadIsland(islandData, i); valid = true; } else { } } if (!valid) { if (pooledMinimapIsland.Find(z => z.RegionName == islandData.RegionName) != null) { continue; } OverworldEditor_Island Island = Instantiate(islandPrefab, islandData.GCECoord, Quaternion.identity).GetComponent <OverworldEditor_Island>(); Island.RegionName = islandData.RegionName; Island.transform.localScale = new Vector3(islandData.IslandSize.x, 1, islandData.IslandSize.z); Island.transform.SetParent(this.transform); Island.gameObject.name = islandData.RegionName; pooledMinimapIsland.Add(Island); } i++; } if (showVanillaWorld) { foreach (IslandData islandData in vanillaIslandData.GlobalIslands) { bool valid = false; if (pooledMinimapIsland.Count > i) { if (pooledMinimapIsland[i] != null) { ReloadIsland(islandData, i); valid = true; } else { } } if (!valid) { if (pooledMinimapIsland.Find(z => z.RegionName == islandData.RegionName) != null) { continue; } OverworldEditor_Island Island = Instantiate(islandPrefab, islandData.GCECoord, Quaternion.identity).GetComponent <OverworldEditor_Island>(); Island.RegionName = islandData.RegionName; Island.transform.localScale = new Vector3(islandData.IslandSize.x, 1, islandData.IslandSize.z); Island.transform.SetParent(this.transform); Island.gameObject.name = islandData.RegionName; pooledMinimapIsland.Add(Island); } i++; } } pooledMinimapIsland.RemoveAll(item => item == null); Debug.Log("Overworld Map data updated."); }