/* * 因为MemoryReader扫Status比Mod快,如果使用Status来做是否开始打图的依据会无法及时获取当前MOD的信息.因此按Mod来判断是否开始打图,null为非打图状态 */ public override void OnCurrentModsChange(ModsInfo mod) { if (current_mod.Mod == mod.Mod) { return; } current_mod = mod; if (mod.Mod == ModsInfo.Mods.Unknown) { //Not Playing //RefPlugin.OnBeatmapChanged(null); } else { //Start to play //if (mod.Mod!=ModsInfo.Mods.None&¤t_status == OsuStatus.Playing) { var beatmap = GetCurrentBeatmap(); beatmap.OutputType = CurrentOutputType = OutputType.Play; RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = beatmap }); } } }
public override void OnCurrentModsChange(ModsInfo mod) { //如果mod相同或者mod是unknown的就不管了 if (current_mod == mod || mod.Mod.HasFlag(OsuRTDataProvider.Mods.ModsInfo.Mods.Unknown)) { return; } current_mod = mod; //在打图过程中mod变了,那可能就是ortdp要背锅了.jpg if (CurrentOutputType == OutputType.Play) { return; } //在选图界面改变Mods会输出,会重新计算PP并输出相关信息 var beatmap = GetCurrentBeatmap(); beatmap.OutputType = CurrentOutputType; RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = beatmap }); }
protected void TrigListen() { var beatmap = GetCurrentBeatmap(); beatmap.OutputType = CurrentOutputType = OutputType.Listen; RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = beatmap }); }
private void RefPlugin_OnBeatmapChanged(string osu_file, int set_id, int id, bool output_type, Dictionary <string, object> extra) { RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = new BeatmapEntry() { BeatmapId = id, BeatmapSetId = set_id, OsuFilePath = osu_file, OutputType = output_type ? OutputType.Play : OutputType.Listen, ExtraParam = extra } }); }
public RealtimeDataProvideWrapperBase(OsuRTDataProviderPlugin ref_plugin, OsuLiveStatusPanelPlugin plugin) : base(ref_plugin, plugin) { RefPanelPlugin.OnSettingChanged += () => { var beatmap = GetCurrentBeatmap(); beatmap.OutputType = CurrentOutputType = (current_status == OsuStatus.Playing || current_status == OsuStatus.Rank) ? OutputType.Play : OutputType.Listen; RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = beatmap }); }; }
public override void OnStatusChange(OsuStatus last_status, OsuStatus status) { current_status = status; if (last_status == status) { return; } if ((status != OsuStatus.Playing) && (status != OsuStatus.Rank)) { if (OsuStatusHelper.IsListening(status)) { TrigListen(); } else { RefPanelPlugin.OnBeatmapChanged(null); } } else { if (current_mod.Mod != ModsInfo.Mods.Unknown || current_mod.Mod != ModsInfo.Mods.None) { //fix for https://puu.sh/zelua/d60b98d496.jpg return; } BeatmapEntry beatmap = new BeatmapEntry() { OutputType = CurrentOutputType = OutputType.Listen, BeatmapId = beatmapID, BeatmapSetId = beatmapSetID, OsuFilePath = OsuFilePath, ExtraParam = new System.Collections.Generic.Dictionary <string, object> { { "ortdp_beatmap", current_beatmap }, { "mode", RefPlugin.ListenerManager.GetCurrentData(OsuRTDataProvider.Listen.ProvideDataMask.GameMode).PlayMode } } }; RefPanelPlugin.OnBeatmapChanged(new BeatmapChangedParameter() { beatmap = beatmap }); } }