示例#1
0
        /// <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);
                    }
                }
            }
        }
示例#2
0
        /// <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);
                    }
                }
            }
        }