1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-22 21:00:33 +08:00

Fix mod icons potentially having incorrect colours

This commit is contained in:
smoogipoo 2021-02-01 19:05:02 +09:00
parent ee92ec0a5c
commit 76ebb3811a

View File

@ -26,8 +26,6 @@ namespace osu.Game.Rulesets.UI
private const float size = 80;
private readonly ModType type;
public virtual string TooltipText => mod.IconTooltip;
private Mod mod;
@ -38,16 +36,22 @@ namespace osu.Game.Rulesets.UI
set
{
mod = value;
updateMod(value);
if (LoadState >= LoadState.Ready)
updateMod(value);
}
}
[Resolved]
private OsuColour colours { get; set; }
private Color4 backgroundColour;
private Color4 highlightedColour;
public ModIcon(Mod mod)
{
this.mod = mod ?? throw new ArgumentNullException(nameof(mod));
type = mod.Type;
Size = new Vector2(size);
Children = new Drawable[]
@ -79,10 +83,20 @@ namespace osu.Game.Rulesets.UI
Icon = FontAwesome.Solid.Question
},
};
}
[BackgroundDependencyLoader]
private void load()
{
updateMod(mod);
}
protected override void LoadComplete()
{
base.LoadComplete();
Selected.BindValueChanged(_ => updateColour(), true);
}
private void updateMod(Mod value)
{
modAcronym.Text = value.Acronym;
@ -92,20 +106,14 @@ namespace osu.Game.Rulesets.UI
{
modIcon.FadeOut();
modAcronym.FadeIn();
return;
}
else
{
modIcon.FadeIn();
modAcronym.FadeOut();
}
modIcon.FadeIn();
modAcronym.FadeOut();
}
private Color4 backgroundColour;
private Color4 highlightedColour;
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
switch (type)
switch (value.Type)
{
default:
case ModType.DifficultyIncrease:
@ -139,12 +147,13 @@ namespace osu.Game.Rulesets.UI
modIcon.Colour = colours.Yellow;
break;
}
updateColour();
}
protected override void LoadComplete()
private void updateColour()
{
base.LoadComplete();
Selected.BindValueChanged(selected => background.Colour = selected.NewValue ? highlightedColour : backgroundColour, true);
background.Colour = Selected.Value ? highlightedColour : backgroundColour;
}
}
}