1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-13 13:32:54 +08:00

Add overlay layer

This commit is contained in:
Dean Herbert 2020-02-17 19:06:08 +09:00
parent 7ce00bebf0
commit 2133ba38e5
2 changed files with 58 additions and 1 deletions

View File

@ -32,7 +32,11 @@ namespace osu.Game.Rulesets.Catch.Skinning
case CatchSkinComponents.FruitOrange:
case CatchSkinComponents.FruitGrapes:
case CatchSkinComponents.FruitPear:
return this.GetAnimation(catchSkinComponent.Component.ToString().Underscore().Hyphenate(), true, false, true);
var lookupName = catchSkinComponent.Component.ToString().Underscore().Hyphenate();
if (GetTexture(lookupName) != null)
return new LegacyFruitPiece(lookupName);
break;
}
return null;

View File

@ -0,0 +1,53 @@
// 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 osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites;
using osu.Game.Rulesets.Catch.Objects.Drawable;
using osu.Game.Rulesets.Objects.Drawables;
using osu.Game.Skinning;
using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Skinning
{
internal class LegacyFruitPiece : CompositeDrawable
{
private readonly string lookupName;
private readonly IBindable<Color4> accentColour = new Bindable<Color4>();
public LegacyFruitPiece(string lookupName)
{
this.lookupName = lookupName;
RelativeSizeAxes = Axes.Both;
}
[BackgroundDependencyLoader]
private void load(DrawableHitObject drawableObject, ISkinSource skin)
{
DrawableCatchHitObject drawableCatchObject = (DrawableCatchHitObject)drawableObject;
accentColour.BindTo(drawableCatchObject.AccentColour);
InternalChildren = new Drawable[]
{
new Sprite
{
Texture = skin.GetTexture(lookupName),
Colour = drawableObject.AccentColour.Value,
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
},
new Sprite
{
Texture = skin.GetTexture($"{lookupName}-overlay"),
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
},
};
}
}
}