1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-28 08:02:55 +08:00

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
using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Catch.UI;
using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu.Objects;
@ -18,6 +19,8 @@ namespace osu.Game.Modes.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 HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();

View File

@ -2,6 +2,7 @@
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Mania.UI;
using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu;
@ -19,6 +20,8 @@ namespace osu.Game.Modes.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 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 ScoreProcessor CreateScoreProcessor(int hitObjectCount) => new OsuScoreProcessor(hitObjectCount);

View File

@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using osu.Game.Graphics;
using osu.Game.Modes.Objects;
using osu.Game.Modes.Osu.Objects;
using osu.Game.Modes.Osu.UI;
@ -19,6 +20,8 @@ namespace osu.Game.Modes.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 HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();

View File

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

View File

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

View File

@ -2,6 +2,7 @@
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
using System.Collections.Generic;
using osu.Framework.Allocation;
using osu.Framework.Configuration;
using osu.Framework.Graphics;
@ -23,6 +24,7 @@ namespace osu.Game.Beatmaps.Drawables
private OsuConfigManager config;
private Bindable<bool> preferUnicode;
private WorkingBeatmap beatmap;
private FlowContainer difficultyIcons;
public BeatmapSetHeader(WorkingBeatmap beatmap)
{
@ -56,15 +58,10 @@ namespace osu.Game.Beatmaps.Drawables
TextSize = 17,
Shadow = true,
},
new FlowContainer
difficultyIcons = new FlowContainer
{
Margin = new MarginPadding { Top = 5 },
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.Containers;
using osu.Game.Database;
using osu.Game.Graphics;
using osu.Game.Modes;
using OpenTK;
using OpenTK.Graphics;
@ -11,7 +13,7 @@ namespace osu.Game.Beatmaps.Drawables
{
class DifficultyIcon : Container
{
public DifficultyIcon(FontAwesome icon, Color4 color)
public DifficultyIcon(BeatmapInfo beatmap)
{
const float size = 20;
Size = new Vector2(size);
@ -21,8 +23,8 @@ namespace osu.Game.Beatmaps.Drawables
{
Anchor = Anchor.Centre,
TextSize = size,
Colour = color,
Icon = icon
Colour = new Color4(159, 198, 0, 255),
Icon = Ruleset.GetRuleset(beatmap.Mode).Icon
}
};
}

View File

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

View File

@ -3,7 +3,6 @@
using osu.Framework.Extensions;
using osu.Framework.Graphics.Containers;
using osu.Game.Graphics;
using osu.Game.Modes;
using OpenTK.Graphics;
@ -20,7 +19,7 @@ namespace osu.Game.Overlays.Toolbar
mode = value;
TooltipMain = 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()
{
base.LoadComplete();