public static IEnumerator Load(MapInfo mapInfo, string path = "") { for (int i = 0; i < Progress.GetCount(); i++) // Remove old progress { var progress = Progress.GetProgressById(Progress.GetId(i)); if (progress.finished && progress.name.Contains("Load:")) { progress.Remove(); } } int progressID = Progress.Start("Load: " + path.Split('/').Last(), "Preparing Map", Progress.Options.Sticky); int delPrefab = Progress.Start("Prefabs", null, Progress.Options.Sticky, progressID); int spwPrefab = Progress.Start("Prefabs", null, Progress.Options.Sticky, progressID); int delPath = Progress.Start("Paths", null, Progress.Options.Sticky, progressID); int spwPath = Progress.Start("Paths", null, Progress.Options.Sticky, progressID); int terrainID = Progress.Start("Terrain", null, Progress.Options.Sticky, progressID); var splatMapTask = Task.Run(() => SetSplatMaps(mapInfo)); PrefabManager.DeletePrefabs(PrefabManager.CurrentMapPrefabs, delPrefab); PathManager.DeletePaths(PathManager.CurrentMapPaths, delPath); CentreSceneObjects(mapInfo); SetTerrain(mapInfo, terrainID); PrefabManager.SpawnPrefabs(mapInfo.prefabData, spwPrefab); PathManager.SpawnPaths(mapInfo.pathData, spwPath); System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); while (!splatMapTask.IsCompleted) { if (sw.Elapsed.TotalMilliseconds > 0.05f) { sw.Restart(); yield return(null); } } SetLayer(LandLayer, TerrainTopology.TypeToIndex((int)TopologyLayer)); // Sets the alphamaps to the currently selected. while (Progress.GetProgressById(spwPrefab).running) { if (sw.Elapsed.TotalMilliseconds > 0.05f) { sw.Restart(); yield return(null); } } Progress.Report(progressID, 0.99f, "Loaded"); Progress.Finish(terrainID, Progress.Status.Succeeded); Progress.Finish(progressID, Progress.Status.Succeeded); EventManager.OnMapLoaded(path); }
public static void PrefabTools(ref bool deleteOnExport, string lootCrateSaveFile = "", string mapPrefabSaveFile = "") { Elements.MiniBoldLabel(ToolTips.toolsLabel); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.deleteMapPrefabs)) { PrefabManager.DeletePrefabs(PrefabManager.CurrentMapPrefabs); } if (Elements.ToolbarButton(ToolTips.deleteMapPaths)) { PathManager.DeletePaths(PathManager.CurrentMapPaths); } Elements.EndToolbarHorizontal(); }
public static void PrefabTools() { Elements.MiniBoldLabel(ToolTips.toolsLabel); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.deleteMapPrefabs)) { PrefabManager.DeletePrefabs(PrefabManager.CurrentMapPrefabs); } if (Elements.ToolbarButton(ToolTips.deleteMapPaths)) { PathManager.DeletePaths(PathManager.CurrentMapPaths); } Elements.EndToolbarHorizontal(); }
public static void HierachyOptions(PrefabDataHolder[] prefabs, ref string name) { Elements.MiniBoldLabel(ToolTips.hierachyOptionsLabel); Elements.BeginToolbarHorizontal(); name = Elements.ToolbarTextField(name); Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyRename)) { PrefabManager.RenamePrefabs(prefabs, name); ReloadTreeViews(); } Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyDelete)) { PrefabManager.DeletePrefabs(prefabs); } Elements.EndToolbarHorizontal(); }
public static IEnumerator Load(MapInfo mapInfo, string path = "") { ProgressManager.RemoveProgressBars("Load:"); int progressID = Progress.Start("Load: " + path.Split('/').Last(), "Preparing Map", Progress.Options.Sticky); int delPrefab = Progress.Start("Prefabs", null, Progress.Options.Sticky, progressID); int spwPrefab = Progress.Start("Prefabs", null, Progress.Options.Sticky, progressID); int delPath = Progress.Start("Paths", null, Progress.Options.Sticky, progressID); int spwPath = Progress.Start("Paths", null, Progress.Options.Sticky, progressID); int terrainID = Progress.Start("Terrain", null, Progress.Options.Sticky, progressID); PrefabManager.DeletePrefabs(PrefabManager.CurrentMapPrefabs, delPrefab); PathManager.DeletePaths(PathManager.CurrentMapPaths, delPath); CentreSceneObjects(mapInfo); TerrainManager.Load(mapInfo, terrainID); PrefabManager.SpawnPrefabs(mapInfo.prefabData, spwPrefab); PathManager.SpawnPaths(mapInfo.pathData, spwPath); var sw = new System.Diagnostics.Stopwatch(); sw.Start(); while (Progress.GetProgressById(terrainID).progress < 0.99f || Progress.GetProgressById(spwPrefab).running || Progress.GetProgressById(spwPath).running) { if (sw.Elapsed.TotalMilliseconds > 0.05f) { sw.Restart(); yield return(null); } } Progress.Report(progressID, 0.99f, "Loaded"); Progress.Finish(terrainID, Progress.Status.Succeeded); Progress.Finish(progressID, Progress.Status.Succeeded); Callbacks.OnMapLoaded(path); }
public static void PrefabHierachyOptions(PrefabHierarchyTreeView treeView, ref string name, ref bool replace) { Elements.MiniBoldLabel(ToolTips.hierachyOptionsLabel); Elements.BeginToolbarHorizontal(); name = Elements.ToolbarTextField(name); Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyCategoryRename)) { name = String.IsNullOrEmpty(name) ? "" : name; PrefabManager.RenamePrefabCategories(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView), name); ReloadTreeViews(); } Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); replace = Elements.ToolbarToggle(ToolTips.hierachyReplace, replace); if (Elements.ToolbarButton(ToolTips.hierachyIDRename)) { if (uint.TryParse(name, out uint result)) { PrefabManager.RenamePrefabIDs(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView), result, replace); ReloadTreeViews(); } } Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyDelete)) { PrefabManager.DeletePrefabs(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView)); } Elements.EndToolbarHorizontal(); }
public static void ClearMapPrefabs() => PrefabManager.DeletePrefabs(PrefabManager.CurrentMapPrefabs);