Add slider ball animation support

This commit is contained in:
Dean Herbert
2019-08-19 19:52:53 +09:00
parent 539a27a557
commit d0766fa1cd
2 changed files with 39 additions and 15 deletions

View File

@ -1,4 +1,4 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
@ -92,8 +92,20 @@ namespace osu.Game.Skinning
return null;
case "Play/osu/sliderball":
if (GetTexture("sliderb") != null)
return new LegacySliderBall();
var sliderBallContent = getAnimation("sliderb", true, true, "");
if (sliderBallContent != null)
{
var size = sliderBallContent.Size;
sliderBallContent.RelativeSizeAxes = Axes.Both;
sliderBallContent.Size = Vector2.One;
return new LegacySliderBall(sliderBallContent)
{
Size = size
};
}
return null;
@ -169,16 +181,6 @@ namespace osu.Game.Skinning
return (texture = GetTexture(componentName)) == null ? null : new Sprite { Texture = texture };
}
public class LegacySliderBall : Sprite
{
[BackgroundDependencyLoader]
private void load(ISkinSource skin)
{
Texture = skin.GetTexture("sliderb");
Colour = skin.GetValue<SkinConfiguration, Color4?>(s => s.CustomColours.ContainsKey("SliderBall") ? s.CustomColours["SliderBall"] : (Color4?)null) ?? Color4.White;
}
}
public override Texture GetTexture(string componentName)
{
float ratio = 2;
@ -333,6 +335,20 @@ namespace osu.Game.Skinning
}
}
public class LegacySliderBall : CompositeDrawable
{
public LegacySliderBall(Drawable content)
{
InternalChild = content;
}
[BackgroundDependencyLoader]
private void load(ISkinSource skin)
{
Colour = skin.GetValue<SkinConfiguration, Color4?>(s => s.CustomColours.ContainsKey("SliderBall") ? s.CustomColours["SliderBall"] : (Color4?)null) ?? Color4.White;
}
}
public class LegacyMainCirclePiece : CompositeDrawable
{
public LegacyMainCirclePiece()