mirror of
https://github.com/osukey/osukey.git
synced 2025-08-06 16:13:57 +09:00
Fix mod icons potentially having incorrect colours
This commit is contained in:
@ -26,8 +26,6 @@ namespace osu.Game.Rulesets.UI
|
|||||||
|
|
||||||
private const float size = 80;
|
private const float size = 80;
|
||||||
|
|
||||||
private readonly ModType type;
|
|
||||||
|
|
||||||
public virtual string TooltipText => mod.IconTooltip;
|
public virtual string TooltipText => mod.IconTooltip;
|
||||||
|
|
||||||
private Mod mod;
|
private Mod mod;
|
||||||
@ -38,16 +36,22 @@ namespace osu.Game.Rulesets.UI
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
mod = value;
|
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)
|
public ModIcon(Mod mod)
|
||||||
{
|
{
|
||||||
this.mod = mod ?? throw new ArgumentNullException(nameof(mod));
|
this.mod = mod ?? throw new ArgumentNullException(nameof(mod));
|
||||||
|
|
||||||
type = mod.Type;
|
|
||||||
|
|
||||||
Size = new Vector2(size);
|
Size = new Vector2(size);
|
||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
@ -79,10 +83,20 @@ namespace osu.Game.Rulesets.UI
|
|||||||
Icon = FontAwesome.Solid.Question
|
Icon = FontAwesome.Solid.Question
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
updateMod(mod);
|
updateMod(mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void LoadComplete()
|
||||||
|
{
|
||||||
|
base.LoadComplete();
|
||||||
|
Selected.BindValueChanged(_ => updateColour(), true);
|
||||||
|
}
|
||||||
|
|
||||||
private void updateMod(Mod value)
|
private void updateMod(Mod value)
|
||||||
{
|
{
|
||||||
modAcronym.Text = value.Acronym;
|
modAcronym.Text = value.Acronym;
|
||||||
@ -92,20 +106,14 @@ namespace osu.Game.Rulesets.UI
|
|||||||
{
|
{
|
||||||
modIcon.FadeOut();
|
modIcon.FadeOut();
|
||||||
modAcronym.FadeIn();
|
modAcronym.FadeIn();
|
||||||
return;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
modIcon.FadeIn();
|
||||||
|
modAcronym.FadeOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
modIcon.FadeIn();
|
switch (value.Type)
|
||||||
modAcronym.FadeOut();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Color4 backgroundColour;
|
|
||||||
private Color4 highlightedColour;
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load(OsuColour colours)
|
|
||||||
{
|
|
||||||
switch (type)
|
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case ModType.DifficultyIncrease:
|
case ModType.DifficultyIncrease:
|
||||||
@ -139,12 +147,13 @@ namespace osu.Game.Rulesets.UI
|
|||||||
modIcon.Colour = colours.Yellow;
|
modIcon.Colour = colours.Yellow;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateColour();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
private void updateColour()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
background.Colour = Selected.Value ? highlightedColour : backgroundColour;
|
||||||
Selected.BindValueChanged(selected => background.Colour = selected.NewValue ? highlightedColour : backgroundColour, true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user