Hook up icons better.

This commit is contained in:
Dean Herbert 2017-01-30 13:35:40 +09:00
parent 0c2152f3d0
commit 2ed5cf7c91
10 changed files with 32 additions and 26 deletions

View File

@ -2,6 +2,7 @@
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Collections.Generic; using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Catch.UI; using osu.Game.Modes.Catch.UI;
using osu.Game.Modes.Objects; using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu.Objects; using osu.Game.Modes.Osu.Objects;
@ -18,6 +19,8 @@ namespace osu.Game.Modes.Catch
protected override PlayMode PlayMode => PlayMode.Catch; protected override PlayMode PlayMode => PlayMode.Catch;
public override FontAwesome Icon => FontAwesome.fa_osu_fruits_o;
public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null; public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null;
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser(); public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();

View File

@ -2,6 +2,7 @@
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Collections.Generic; using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Mania.UI; using osu.Game.Modes.Mania.UI;
using osu.Game.Modes.Objects; using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu; using osu.Game.Modes.Osu;
@ -19,6 +20,8 @@ namespace osu.Game.Modes.Mania
protected override PlayMode PlayMode => PlayMode.Mania; protected override PlayMode PlayMode => PlayMode.Mania;
public override FontAwesome Icon => FontAwesome.fa_osu_mania_o;
public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null; public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null;
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser(); public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();

View File

@ -34,6 +34,8 @@ namespace osu.Game.Modes.Osu
} }
}; };
public override FontAwesome Icon => FontAwesome.fa_osu_osu_o;
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser(); public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => new OsuScoreProcessor(hitObjectCount); public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => new OsuScoreProcessor(hitObjectCount);

View File

@ -3,6 +3,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Objects; using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu.Objects; using osu.Game.Modes.Osu.Objects;
using osu.Game.Modes.Osu.UI; using osu.Game.Modes.Osu.UI;
@ -19,6 +20,8 @@ namespace osu.Game.Modes.Taiko
protected override PlayMode PlayMode => PlayMode.Taiko; protected override PlayMode PlayMode => PlayMode.Taiko;
public override FontAwesome Icon => FontAwesome.fa_osu_taiko_o;
public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null; public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) => null;
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser(); public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();

View File

@ -74,6 +74,8 @@ namespace osu.Game.Beatmaps.Drawables
StartRequested = p => { StartRequested?.Invoke(p.Beatmap); }, StartRequested = p => { StartRequested?.Invoke(p.Beatmap); },
RelativeSizeAxes = Axes.X, RelativeSizeAxes = Axes.X,
}).ToList(); }).ToList();
Header.AddDifficultyIcons(BeatmapPanels);
} }
private void headerGainedSelection(BeatmapSetHeader panel) private void headerGainedSelection(BeatmapSetHeader panel)

View File

@ -17,6 +17,7 @@ using osu.Game.Graphics.UserInterface;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Game.Modes;
namespace osu.Game.Beatmaps.Drawables namespace osu.Game.Beatmaps.Drawables
{ {
@ -83,7 +84,7 @@ namespace osu.Game.Beatmaps.Drawables
Origin = Anchor.CentreLeft, Origin = Anchor.CentreLeft,
Children = new Drawable[] Children = new Drawable[]
{ {
new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)) new DifficultyIcon(beatmap)
{ {
Scale = new Vector2(1.8f), Scale = new Vector2(1.8f),
Anchor = Anchor.CentreLeft, Anchor = Anchor.CentreLeft,

View File

@ -2,6 +2,7 @@
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System; using System;
using System.Collections.Generic;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
@ -23,6 +24,7 @@ namespace osu.Game.Beatmaps.Drawables
private OsuConfigManager config; private OsuConfigManager config;
private Bindable<bool> preferUnicode; private Bindable<bool> preferUnicode;
private WorkingBeatmap beatmap; private WorkingBeatmap beatmap;
private FlowContainer difficultyIcons;
public BeatmapSetHeader(WorkingBeatmap beatmap) public BeatmapSetHeader(WorkingBeatmap beatmap)
{ {
@ -56,15 +58,10 @@ namespace osu.Game.Beatmaps.Drawables
TextSize = 17, TextSize = 17,
Shadow = true, Shadow = true,
}, },
new FlowContainer difficultyIcons = new FlowContainer
{ {
Margin = new MarginPadding { Top = 5 }, Margin = new MarginPadding { Top = 5 },
AutoSizeAxes = Axes.Both, AutoSizeAxes = Axes.Both,
Children = new[]
{
new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(159, 198, 0, 255)),
new DifficultyIcon(FontAwesome.fa_dot_circle_o, new Color4(246, 101, 166, 255)),
}
} }
} }
} }
@ -177,5 +174,11 @@ namespace osu.Game.Beatmaps.Drawables
}); });
} }
} }
public void AddDifficultyIcons(IEnumerable<BeatmapPanel> panels)
{
foreach (var p in panels)
difficultyIcons.Add(new DifficultyIcon(p.Beatmap));
}
} }
} }

View File

@ -3,7 +3,9 @@
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Game.Database;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Modes;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -11,7 +13,7 @@ namespace osu.Game.Beatmaps.Drawables
{ {
class DifficultyIcon : Container class DifficultyIcon : Container
{ {
public DifficultyIcon(FontAwesome icon, Color4 color) public DifficultyIcon(BeatmapInfo beatmap)
{ {
const float size = 20; const float size = 20;
Size = new Vector2(size); Size = new Vector2(size);
@ -21,8 +23,8 @@ namespace osu.Game.Beatmaps.Drawables
{ {
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
TextSize = size, TextSize = size,
Colour = color, Colour = new Color4(159, 198, 0, 255),
Icon = icon Icon = Ruleset.GetRuleset(beatmap.Mode).Icon
} }
}; };
} }

View File

@ -4,11 +4,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using osu.Game.Modes.Objects; using osu.Game.Modes.Objects;
using osu.Game.Modes.UI; using osu.Game.Modes.UI;
using System.Reflection;
using osu.Framework.Extensions;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Linq;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -39,6 +36,8 @@ namespace osu.Game.Modes
protected abstract PlayMode PlayMode { get; } protected abstract PlayMode PlayMode { get; }
public virtual FontAwesome Icon => FontAwesome.fa_question_circle;
public static Ruleset GetRuleset(PlayMode mode) public static Ruleset GetRuleset(PlayMode mode)
{ {
Type type; Type type;

View File

@ -3,7 +3,6 @@
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Game.Graphics;
using osu.Game.Modes; using osu.Game.Modes;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -20,7 +19,7 @@ namespace osu.Game.Overlays.Toolbar
mode = value; mode = value;
TooltipMain = mode.GetDescription(); TooltipMain = mode.GetDescription();
TooltipSub = $"Play some {mode.GetDescription()}"; TooltipSub = $"Play some {mode.GetDescription()}";
Icon = getModeIcon(mode); Icon = Ruleset.GetRuleset(mode).Icon;
} }
} }
@ -48,17 +47,6 @@ namespace osu.Game.Overlays.Toolbar
} }
} }
private FontAwesome getModeIcon(PlayMode mode)
{
switch (mode)
{
default: return FontAwesome.fa_osu_osu_o;
case PlayMode.Taiko: return FontAwesome.fa_osu_taiko_o;
case PlayMode.Catch: return FontAwesome.fa_osu_fruits_o;
case PlayMode.Mania: return FontAwesome.fa_osu_mania_o;
}
}
protected override void LoadComplete() protected override void LoadComplete()
{ {
base.LoadComplete(); base.LoadComplete();