示例#1
0
        /// <summary>
        /// Initialize <see cref="BeatmapProcessor"/> with unique settings.
        /// </summary>
        /// <param name="processorSettings"><see cref="BeatmapProcessorSettings"/></param>
        /// <param name="graphicsDevice"><see cref="GraphicsDevice"/> used to loading <see cref="Texture2D"/></param>
        public BeatmapProcessor(BeatmapProcessorSettings processorSettings, GraphicsDevice graphicsDevice)
        {
            ProcessorSettings = processorSettings;

            _graphicsDevice = graphicsDevice;

            _beatmapSettingsList = new List <BeatmapProcessorContainerEntry>();

            string folder = ProcessorSettings.BeatmapsFolder;

            // Is beatmap folder empty
            bool isFolderEmpty = true;


            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }
            // If there is at least one folder in beatmap directory, the beatmap folder is not empty
            if (Directory.EnumerateFileSystemEntries(folder).Any())
            {
                isFolderEmpty = false;
            }

            if (!isFolderEmpty)
            {
                // If there is no database file, initialize it
                if (!File.Exists(ProcessorSettings.DatabaseName))
                {
                    InitializeDatabase(graphicsDevice);
                }
                else
                {
                    ProcessDatabase(graphicsDevice);
                }
            }

            LogHelper.Log($"BeatmapProcessor: Found {_beatmapSettingsList.Count} beatmaps");
        }
示例#2
0
 public BeatmapReader(BeatmapProcessorSettings processorSettings)
 {
     ProcessorSettings = processorSettings;
 }
示例#3
0
 public BeatmapWriter(BeatmapProcessorSettings processorSettings)
 {
     ProcessorSettings = processorSettings;
 }