public static void Update() { if (!Steam.IsInitialized() || !Network.isServer || TeamSelect2.GetSettingInt("workshopmaps") <= 0) { return; } if (RandomLevelDownloader._downloading != null) { if (!RandomLevelDownloader._downloading.finishedProcessing) { return; } if (RandomLevelDownloader._downloading.downloadResult == SteamResult.OK) { RandomLevelDownloader.SearchDirLevels(RandomLevelDownloader._downloading.path, LevelLocation.Workshop); } RandomLevelDownloader._downloading = (WorkshopItem)null; } else { if (RandomLevelDownloader._currentQuery != null || RandomLevelDownloader._readyLevels.Count == RandomLevelDownloader.numToHaveReady) { return; } RandomLevelDownloader._toFetchIndex = -1; RandomLevelDownloader._numFetch = 0; RandomLevelDownloader._currentQuery = Steam.CreateQueryAll(RandomLevelDownloader._orderMode, WorkshopType.Items); RandomLevelDownloader._currentQuery.requiredTags.Add("Deathmatch"); RandomLevelDownloader._currentQuery.QueryFinished += new WorkshopQueryFinished(RandomLevelDownloader.FinishedTotalQuery); RandomLevelDownloader._currentQuery.fetchedData = WorkshopQueryData.TotalOnly; RandomLevelDownloader._currentQuery.Request(); DevConsole.Log(DCSection.Steam, "Querying for random levels."); } }
private static void SearchDirLevels(string dir, LevelLocation location) { foreach (string path in location == LevelLocation.Content ? Content.GetFiles(dir) : DuckFile.GetFiles(dir)) { RandomLevelDownloader.ProcessLevel(path, location); } foreach (string dir1 in location == LevelLocation.Content ? Content.GetDirectories(dir) : DuckFile.GetDirectories(dir)) { RandomLevelDownloader.SearchDirLevels(dir1, location); } }