From ac369e1c4607b060f06500a89dd5ba9f85fc28cd Mon Sep 17 00:00:00 2001 From: Derrick Timmermans Date: Mon, 5 Oct 2020 10:56:14 +0200 Subject: [PATCH] Use PausableSkinnableSample instead of SkinnableSample --- .../Drawables/DrawableSentakkiHitObject.cs | 16 +++++----------- .../Objects/Drawables/DrawableSlideNode.cs | 16 +++++----------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiHitObject.cs b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiHitObject.cs index 71a42b19a..547a2315d 100644 --- a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiHitObject.cs +++ b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSentakkiHitObject.cs @@ -20,11 +20,7 @@ namespace osu.Game.Rulesets.Sentakki.Objects.Drawables { public class DrawableSentakkiHitObject : DrawableHitObject { - private readonly Bindable userPositionalHitSounds = new Bindable(false); - private readonly SkinnableSound breakSound; - - [Resolved(canBeNull: true)] - private GameplayClock gameplayClock { get; set; } + private readonly PausableSkinnableSound breakSound; public bool IsHidden = false; public bool IsFadeIn = false; @@ -65,7 +61,7 @@ public DrawableSentakkiHitObject(SentakkiHitObject hitObject) { if (hitObject.IsBreak) AddRangeInternal(new Drawable[]{ - breakSound = new SkinnableSound(new SampleInfo("Break")), + breakSound = new PausableSkinnableSound(new SampleInfo("Break")), }); AddInternal(scorePaddingObjects = new Container()); AdjustedAnimationDuration.BindValueChanged(_ => InvalidateTransforms()); @@ -78,10 +74,9 @@ public DrawableSentakkiHitObject(SentakkiHitObject hitObject) private readonly Bindable breakEnabled = new Bindable(true); [BackgroundDependencyLoader(true)] - private void load(DrawableSentakkiRuleset drawableRuleset, OsuConfigManager osuConfig, SentakkiRulesetConfigManager sentakkiConfig) + private void load(DrawableSentakkiRuleset drawableRuleset, SentakkiRulesetConfigManager sentakkiConfig) { drawableSentakkiRuleset = drawableRuleset; - osuConfig.BindWith(OsuSetting.PositionalHitSounds, userPositionalHitSounds); sentakkiConfig?.BindWith(SentakkiRulesetSettings.BreakSounds, breakEnabled); } @@ -116,10 +111,9 @@ protected virtual void InvalidateTransforms() public override void PlaySamples() { base.PlaySamples(); - if (PlayBreakSample && breakSound != null && Result.Type == HitResult.Great && breakEnabled.Value && (!gameplayClock?.IsSeeking ?? false)) + if (PlayBreakSample && breakSound != null && Result.Type == Result.Judgement.MaxResult && breakEnabled.Value) { - const float balance_adjust_amount = 0.4f; - breakSound.Balance.Value = balance_adjust_amount * (userPositionalHitSounds.Value ? SamplePlaybackPosition - 0.5f : 0); + breakSound.Balance.Value = CalculateSamplePlaybackBalance(SamplePlaybackPosition); breakSound.Play(); } } diff --git a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSlideNode.cs b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSlideNode.cs index 7d95a12c9..527ae0cb0 100644 --- a/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSlideNode.cs +++ b/osu.Game.Rulesets.Sentakki/Objects/Drawables/DrawableSlideNode.cs @@ -18,11 +18,7 @@ namespace osu.Game.Rulesets.Sentakki.Objects.Drawables { public class DrawableSlideNode : DrawableSentakkiTouchHitObject { - [Resolved(canBeNull: true)] - private GameplayClock gameplayClock { get; set; } - - private readonly Bindable userPositionalHitSounds = new Bindable(false); - private SkinnableSound slideSound; + private PausableSkinnableSound slideSound; public override bool HandlePositionalInput => true; public override bool DisplayResult => false; @@ -65,7 +61,7 @@ protected override void LoadComplete() protected override void LoadSamples() { base.LoadSamples(); - AddInternal(slideSound = new SkinnableSound(new SampleInfo("slide"))); + AddInternal(slideSound = new PausableSkinnableSound(new SampleInfo("slide"))); } protected bool IsHittable => ThisIndex < 2 || Slide.SlideNodes[ThisIndex - 2].IsHit; @@ -83,9 +79,8 @@ private void hitPreviousNodes(bool successful = false) private readonly Bindable playSlideSample = new Bindable(true); [BackgroundDependencyLoader(true)] - private void load(OsuConfigManager osuConfig, SentakkiRulesetConfigManager sentakkiConfig) + private void load(SentakkiRulesetConfigManager sentakkiConfig) { - osuConfig.BindWith(OsuSetting.PositionalHitSounds, userPositionalHitSounds); sentakkiConfig?.BindWith(SentakkiRulesetSettings.SlideSounds, playSlideSample); } @@ -123,10 +118,9 @@ protected override void Update() public override void PlaySamples() { base.PlaySamples(); - if (ThisIndex == 0 && playSlideSample.Value && slideSound != null && Result.Type != HitResult.Miss && (!gameplayClock?.IsSeeking ?? false)) + if (ThisIndex == 0 && playSlideSample.Value && slideSound != null && Result.Type != Result.Judgement.MinResult) { - const float balance_adjust_amount = 0.4f; - slideSound.Balance.Value = balance_adjust_amount * (userPositionalHitSounds.Value ? SamplePlaybackPosition - 0.5f : 0); + slideSound.Balance.Value = CalculateSamplePlaybackBalance(SamplePlaybackPosition); slideSound.Play(); } }