From 96ccd29bdc9d2372abdca8fe1a8ba284e87ceb3c Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 1 Jun 2022 20:48:06 +0900 Subject: [PATCH] Don't play metronome click when tapping for timing --- osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs | 5 +++++ osu.Game/Screens/Edit/Timing/TapButton.cs | 4 ++++ osu.Game/Screens/Edit/Timing/TapTimingControl.cs | 12 +++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs b/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs index 4143c5ea55..2ecd66a05f 100644 --- a/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs +++ b/osu.Game/Screens/Edit/Timing/MetronomeDisplay.cs @@ -38,6 +38,8 @@ namespace osu.Game.Screens.Edit.Timing [Resolved] private OverlayColourProvider overlayColourProvider { get; set; } + public bool EnableClicking { get; set; } = true; + [BackgroundDependencyLoader] private void load(AudioManager audio) { @@ -281,6 +283,9 @@ namespace osu.Game.Screens.Edit.Timing Schedule(() => { + if (!EnableClicking) + return; + var channel = clunk?.GetChannel(); if (channel != null) diff --git a/osu.Game/Screens/Edit/Timing/TapButton.cs b/osu.Game/Screens/Edit/Timing/TapButton.cs index d85edb6cce..fb5580c6ac 100644 --- a/osu.Game/Screens/Edit/Timing/TapButton.cs +++ b/osu.Game/Screens/Edit/Timing/TapButton.cs @@ -30,6 +30,8 @@ namespace osu.Game.Screens.Edit.Timing { public const float SIZE = 100; + public readonly BindableBool IsHandlingTapping = new BindableBool(); + [Resolved] private OverlayColourProvider colourProvider { get; set; } = null!; @@ -213,6 +215,7 @@ namespace osu.Game.Screens.Edit.Timing const double in_duration = 100; grabbedMouseDown = true; + IsHandlingTapping.Value = true; handleTap(); @@ -269,6 +272,7 @@ namespace osu.Game.Screens.Edit.Timing light.Hide(); tapTimings.Clear(); + IsHandlingTapping.Value = false; } private void handleTap() diff --git a/osu.Game/Screens/Edit/Timing/TapTimingControl.cs b/osu.Game/Screens/Edit/Timing/TapTimingControl.cs index 20d6c656ff..16e9f703c8 100644 --- a/osu.Game/Screens/Edit/Timing/TapTimingControl.cs +++ b/osu.Game/Screens/Edit/Timing/TapTimingControl.cs @@ -25,6 +25,10 @@ namespace osu.Game.Screens.Edit.Timing [Resolved] private Bindable selectedGroup { get; set; } + private readonly BindableBool isHandlingTapping = new BindableBool(); + + private MetronomeDisplay metronome; + [BackgroundDependencyLoader] private void load(OverlayColourProvider colourProvider, OsuColour colours) { @@ -73,7 +77,7 @@ namespace osu.Game.Screens.Edit.Timing { new Drawable[] { - new MetronomeDisplay + metronome = new MetronomeDisplay { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, @@ -149,11 +153,17 @@ namespace osu.Game.Screens.Edit.Timing { Anchor = Anchor.Centre, Origin = Anchor.Centre, + IsHandlingTapping = { BindTarget = isHandlingTapping } } } } }, }; + + isHandlingTapping.BindValueChanged(handling => + { + metronome.EnableClicking = !handling.NewValue; + }, true); } private void adjustOffset(double adjust)