コード例 #1
0
 /// <summary>
 /// NOTE: filePath is relative to the base puzzle directory.
 /// </summary>
 public static void Save(PuzzleConfigClass config, string filePath)
 {
     try
     {
         string fullPath = Path.GetFullPath(Path.Combine(StandardPaths.ConfigDir, filePath));
         Directory.CreateDirectory(Path.GetDirectoryName(fullPath));
         DataContractHelper.SaveToXml(config, fullPath);
     }
     catch (System.Exception e)
     {
         string message = string.Format("Failed to save puzzle config class.\n{0}", e.Message);
         Log.Error(message);
     }
 }
コード例 #2
0
        /// <summary>
        /// Loads all the puzzles (recursively) from the puzzles dir.
        /// </summary>
        public static void LoadAllPuzzles(out IEnumerable <PuzzleConfigClass> standard, out IEnumerable <PuzzleConfigClass> user)
        {
            List <PuzzleConfigClass> resultStandard = new List <PuzzleConfigClass>();
            List <PuzzleConfigClass> resultUser     = new List <PuzzleConfigClass>();

            List <string> files = new List <string>();

            string[] userFiles = { };
            string   existingCurrentDirectory = System.Environment.CurrentDirectory;

            try
            {
                // We reset the current directory, because we want the paths relative to the puzzle dir.
                System.Environment.CurrentDirectory = StandardPaths.ConfigDir;
                files.AddRange(Directory.GetFiles("puzzles", "*.xml", SearchOption.AllDirectories));
                userFiles = Directory.GetFiles("user", "*.xml", SearchOption.AllDirectories);
            }
            catch { }
            finally
            {
                System.Environment.CurrentDirectory = existingCurrentDirectory;
            }

            foreach (string file in files)
            {
                PuzzleConfigClass configClass = PuzzleConfigClass.Load(file);
                resultStandard.Add(configClass);
            }

            foreach (string file in userFiles)
            {
                PuzzleConfigClass configClass = PuzzleConfigClass.Load(file);
                resultUser.Add(configClass);
            }

            standard = resultStandard;
            user     = resultUser;
        }