From 00b4fc1e1f66e66b4d77bebd11f524664ee9d341 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 21 Feb 2020 17:38:23 +0900 Subject: [PATCH] Add fill to default skin slider ball when tracking --- .../Objects/Drawables/Pieces/SliderBall.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs index 0dc5c9b4a0..c871089acd 100644 --- a/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs +++ b/osu.Game.Rulesets.Osu/Objects/Drawables/Pieces/SliderBall.cs @@ -4,6 +4,7 @@ using System; using System.Linq; using osu.Framework.Allocation; +using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; @@ -214,9 +215,13 @@ public DefaultFollowCircle() public class DefaultSliderBall : CompositeDrawable { + private Box box; + [BackgroundDependencyLoader] private void load(DrawableHitObject drawableObject, ISkinSource skin) { + var slider = (DrawableSlider)drawableObject; + RelativeSizeAxes = Axes.Both; float radius = skin.GetConfig(OsuSkinConfiguration.SliderPathRadius)?.Value ?? OsuHitObject.OBJECT_RADIUS; @@ -231,14 +236,21 @@ private void load(DrawableHitObject drawableObject, ISkinSource skin) BorderThickness = 10, BorderColour = Color4.White, Alpha = 1, - Child = new Box + Child = box = new Box { + Blending = BlendingParameters.Additive, RelativeSizeAxes = Axes.Both, Colour = Color4.White, - Alpha = 0.4f, + AlwaysPresent = true, + Alpha = 0 } }; + + slider.Tracking.BindValueChanged(trackingChanged, true); } + + private void trackingChanged(ValueChangedEvent tracking) => + box.FadeTo(tracking.NewValue ? 0.6f : 0.05f, 200, Easing.OutQuint); } } }