diff --git a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs index 74f59f3fdb..ecd6fe813e 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs @@ -73,6 +73,16 @@ private void addMissJudgement() }); } + private void addSwell() + { + playfield.Add(new DrawableSwell(new Swell + { + StartTime = Time.Current + 1000, + EndTime = Time.Current + 5000, + PreEmpt = 1000 + })); + } + private void addDrumRoll(bool strong) { var d = new DrumRoll @@ -85,16 +95,6 @@ private void addDrumRoll(bool strong) playfield.Add(strong ? new DrawableStrongDrumRoll(d) : new DrawableDrumRoll(d)); } - private void addSwell() - { - playfield.Add(new DrawableSwell(new Swell - { - StartTime = Time.Current + 1000, - EndTime = Time.Current + 5000, - PreEmpt = 1000 - })); - } - private void addCentreHit(bool strong) { Hit h = new Hit diff --git a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs index e70e2d3811..5640e1df30 100644 --- a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs +++ b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs @@ -2,15 +2,17 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using osu.Game.Beatmaps; +using osu.Framework.Graphics; using osu.Game.Modes.Objects.Drawables; -using osu.Game.Modes.Replays; using osu.Game.Modes.Scoring; using osu.Game.Modes.Taiko.Beatmaps; using osu.Game.Modes.Taiko.Judgements; using osu.Game.Modes.Taiko.Objects; -using osu.Game.Modes.Taiko.Replays; +using osu.Game.Modes.Taiko.Objects.Drawable; using osu.Game.Modes.Taiko.Scoring; using osu.Game.Modes.UI; +using osu.Game.Modes.Replays; +using osu.Game.Modes.Taiko.Replays; namespace osu.Game.Modes.Taiko.UI { @@ -27,9 +29,44 @@ public TaikoHitRenderer(WorkingBeatmap beatmap) protected override IBeatmapProcessor CreateBeatmapProcessor() => new TaikoBeatmapProcessor(); - protected override Playfield CreatePlayfield() => new TaikoPlayfield(); + protected override Playfield CreatePlayfield() => new TaikoPlayfield + { + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft + }; - protected override DrawableHitObject GetVisualRepresentation(TaikoHitObject h) => null; + protected override DrawableHitObject GetVisualRepresentation(TaikoHitObject h) + { + var centreHit = h as CentreHit; + if (centreHit != null) + { + if (h.IsStrong) + return new DrawableStrongCentreHit(centreHit); + return new DrawableCentreHit(centreHit); + } + + var rimHit = h as RimHit; + if (rimHit != null) + { + if (h.IsStrong) + return new DrawableStrongRimHit(rimHit); + return new DrawableRimHit(rimHit); + } + + var drumRoll = h as DrumRoll; + if (drumRoll != null) + { + if (h.IsStrong) + return new DrawableStrongDrumRoll(drumRoll); + return new DrawableDrumRoll(drumRoll); + } + + var swell = h as Swell; + if (swell != null) + return new DrawableSwell(swell); + + return null; + } protected override FramedReplayInputHandler CreateReplayInputHandler(Replay replay) => new TaikoFramedReplayInputHandler(replay); } diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index 5bdb629393..c678e9bf37 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -64,7 +64,7 @@ private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuConfigManager { var beatmap = Beatmap.Beatmap; - if (beatmap.BeatmapInfo?.Mode > PlayMode.Osu) + if (beatmap.BeatmapInfo?.Mode > PlayMode.Taiko) { //we only support osu! mode for now because the hitobject parsing is crappy and needs a refactor. Exit();