/// <summary> /// Parses the dimensions to setup for serialization. /// </summary> /// <param name="saveName"></param> private static void ParseDimensions() { if (World.Dimensions.Count > 0) { //We are saving foreach (Dimension item in World.Dimensions) { DirectoryInfo dirInfo = Directory.CreateDirectory(WorldStorage.DimensionSaveFolder + Path.DirectorySeparatorChar + item.ID); if (DimensionPaths.TryGetValue(item.ID, out string value) == false) { DimensionPaths.Add(item.ID, dirInfo.FullName); } } } else { //We are loading foreach (string item in Directory.EnumerateDirectories(DimensionSaveFolder)) { string dirName = Path.GetFileName(item); DimensionHeader header = DimensionStorage.LoadDimensionHeader(Guid.Parse(dirName), item); if (!DimensionPaths.ContainsKey(header.ID)) { DimensionPaths.Add(header.ID, item); } } } }
/// <summary> /// Parses the dimensions to setup for serialization. /// </summary> /// <param name="saveName"></param> private static void ParseDimensions() { if (World.Dimensions.Count > 0) { //Regenerate dimension paths each time to support saving in multiple save slots from one game. DimensionPaths.Clear(); //We are saving foreach (Dimension item in World.Dimensions) { DirectoryInfo dirInfo = Directory.CreateDirectory(WorldStorage.DimensionSaveFolder + Path.DirectorySeparatorChar + item.ID); DimensionStorage.PrepareForDimension(item.ID); if (!DimensionPaths.TryGetValue(item.ID, out string value)) { DimensionPaths.Add(item.ID, dirInfo.FullName); } } } else { //We are loading foreach (string item in Directory.EnumerateDirectories(DimensionSaveFolder)) { string dirName = Path.GetFileName(item); DimensionHeader header = DimensionStorage.LoadDimensionHeader(Guid.Parse(dirName), item); if (!DimensionPaths.ContainsKey(header.ID)) { DimensionPaths.Add(header.ID, item); } } } }