/// <summary> /// 使用<see cref="OsuRTDataProvider.OsuRTDataProviderPlugin" />辅助构建ORTDP类 /// </summary> public OrtdpWrapper(OsuRTDataProviderPlugin ortdp) { _beatmapDb = new OsuBeatmapDb(); Beatmap = new Beatmap(); InitListener(ortdp); Application.ThreadException += Application_ThreadException; var format = LocalizationInfo.Current.Translations["LANG_INFO_STH_INITED"]; OutputHelper.Output(string.Format(format, "ORTDP")); Application.ThreadException += Application_ThreadException; }
/// <summary> /// 不使用额外类型构建ORTDP /// </summary> public OrtdpWrapper() { _beatmapDb = new OsuBeatmapDb(); Beatmap = new Beatmap(); InitListener(); Application.ThreadException += Application_ThreadException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; var format = LocalizationInfo.Current.Translations["LANG_INFO_STH_INITED"]; OutputHelper.Output(string.Format(format, "ORTDP")); }
private void ReadFromOsudb(Beatmap beatmap) { NowPlaying = "Loading..."; _bStatus = OsuBeatmapStatus.Loading; if (_md5Str is null || _md5Str1 is null) { return; } _md5Str = new MD5String(""); if (_md5Str != _md5Str1) { _beatmapDb = new OsuBeatmapDb(); _md5Str1 = _md5Str; } try { if (beatmap != null) { var md5 = MD5String.GetString( new MD5CryptoServiceProvider().ComputeHash(File.ReadAllBytes(beatmap.FilenameFull))); var osuBeatmap = _beatmapDb.Beatmaps.FindByMd5(md5); if (!(osuBeatmap is null)) { Beatmap = new Beatmaps.Beatmap(osuBeatmap); _osuBeatmap = osuBeatmap; NowPlaying = Beatmap.ToString(); _hitObjects = Beatmap.HitObjects; var lastHitObjectEndTime = TimeSpan.FromMilliseconds(_hitObjects.LastOrDefault().GetEndTime()); _bStatus = osuBeatmap.BeatmapStatus; var totalTime = osuBeatmap.TotalTime; _dur = totalTime; _drainTime = lastHitObjectEndTime; if (CurrentMode is ILegacyMode le) { if (_osuBeatmap.Mode == OsuGameMode.Osu) { Beatmap.Stars = _osuBeatmap.ModStarPair.GetStars(le.LegacyMode, Mods.ToIntMod()); } } if (DebugMode) { IO.CurrentIO.Write("Beatmap read from OsuDb.", true, false); } } else { IO.CurrentIO.WriteColor("Fail to get beatmap info.", ConsoleColor.Red, true, false); } } }
/// <summary> /// 使用<see cref="OsuRTDataProvider.OsuRTDataProviderPlugin" />及 /// <see cref="RealTimePPDisplayer.RealTimePPDisplayerPlugin" />辅助构建ORTDP类 /// </summary> public OrtdpWrapper(OsuRTDataProviderPlugin ortdp, RealTimePPDisplayerPlugin rtppd, RtppdInfo d) { _beatmapDb = new OsuBeatmapDb(); Beatmap = new Beatmap(); _arp = rtppd ?? new RealTimePPDisplayerPlugin(); _rtppi = d ?? new RtppdInfo(); _arp.RegisterDisplayer("osuToolsDisplayer", id => _rtppi = _rtppi ?? new RtppdInfo()); InitListener(ortdp); var format = LocalizationInfo.Current.Translations["LANG_INFO_STH_INITED"]; OutputHelper.Output(string.Format(format, "ORTDP")); Application.ThreadException += Application_ThreadException; }