diff --git a/osu.Game/GameModes/Play/Catch/CatchHitRenderer.cs b/osu.Game/GameModes/Play/Catch/CatchHitRenderer.cs index d8e5aaaa35..6862759035 100644 --- a/osu.Game/GameModes/Play/Catch/CatchHitRenderer.cs +++ b/osu.Game/GameModes/Play/Catch/CatchHitRenderer.cs @@ -1,7 +1,6 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Beatmaps.Objects; using osu.Game.Beatmaps.Objects.Catch; @@ -11,9 +10,11 @@ namespace osu.Game.GameModes.Play.Catch { public class CatchHitRenderer : HitRenderer { - protected override Playfield CreatePlayfield() => new CatchPlayfield(); + private static readonly CatchConverter converter = new CatchConverter(); - protected override List Convert(List objects) => new CatchConverter().Convert(objects); + protected override HitObjectConverter Converter => converter; + + protected override Playfield CreatePlayfield() => new CatchPlayfield(); protected override Drawable GetVisualRepresentation(CatchBaseHit h) => new DrawableFruit(h); } diff --git a/osu.Game/GameModes/Play/HitRenderer.cs b/osu.Game/GameModes/Play/HitRenderer.cs index b18d9ebb6d..53cca2072c 100644 --- a/osu.Game/GameModes/Play/HitRenderer.cs +++ b/osu.Game/GameModes/Play/HitRenderer.cs @@ -10,6 +10,7 @@ using osu.Framework; namespace osu.Game.GameModes.Play { public abstract class HitRenderer : Container + where T : HitObject { private List objects; @@ -27,7 +28,9 @@ namespace osu.Game.GameModes.Play protected abstract Playfield CreatePlayfield(); - protected abstract List Convert(List objects); + protected abstract HitObjectConverter Converter { get; } + + protected virtual List Convert(List objects) => Converter.Convert(objects); public override void Load(BaseGame game) { diff --git a/osu.Game/GameModes/Play/Mania/ManiaHitRenderer.cs b/osu.Game/GameModes/Play/Mania/ManiaHitRenderer.cs index 302f40878b..ef74fd4a7a 100644 --- a/osu.Game/GameModes/Play/Mania/ManiaHitRenderer.cs +++ b/osu.Game/GameModes/Play/Mania/ManiaHitRenderer.cs @@ -1,12 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE +using OpenTK; using osu.Framework.Graphics; using osu.Game.Beatmaps.Objects; using osu.Game.Beatmaps.Objects.Mania; -using OpenTK; using osu.Game.Beatmaps.Objects.Mania.Drawable; -using System.Collections.Generic; namespace osu.Game.GameModes.Play.Mania { @@ -17,13 +16,10 @@ namespace osu.Game.GameModes.Play.Mania public ManiaHitRenderer(int columns = 5) { this.columns = columns; + Converter = new ManiaConverter(columns); } - protected override List Convert(List objects) - { - ManiaConverter converter = new ManiaConverter(columns); - return converter.Convert(objects); - } + protected override HitObjectConverter Converter { get; } protected override Playfield CreatePlayfield() => new ManiaPlayfield(columns); diff --git a/osu.Game/GameModes/Play/Osu/OsuHitRenderer.cs b/osu.Game/GameModes/Play/Osu/OsuHitRenderer.cs index 130d6d212f..78532b8f25 100644 --- a/osu.Game/GameModes/Play/Osu/OsuHitRenderer.cs +++ b/osu.Game/GameModes/Play/Osu/OsuHitRenderer.cs @@ -1,7 +1,6 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Beatmaps.Objects; using osu.Game.Beatmaps.Objects.Osu; @@ -11,9 +10,11 @@ namespace osu.Game.GameModes.Play.Osu { public class OsuHitRenderer : HitRenderer { - protected override Playfield CreatePlayfield() => new OsuPlayfield(); + private static readonly OsuConverter converter = new OsuConverter(); - protected override List Convert(List objects) => new OsuConverter().Convert(objects); + protected override HitObjectConverter Converter => converter; + + protected override Playfield CreatePlayfield() => new OsuPlayfield(); protected override Drawable GetVisualRepresentation(OsuBaseHit h) => new DrawableCircle(h); } diff --git a/osu.Game/GameModes/Play/Taiko/TaikoHitRenderer.cs b/osu.Game/GameModes/Play/Taiko/TaikoHitRenderer.cs index 9fab5998f5..54d1eefab1 100644 --- a/osu.Game/GameModes/Play/Taiko/TaikoHitRenderer.cs +++ b/osu.Game/GameModes/Play/Taiko/TaikoHitRenderer.cs @@ -1,7 +1,6 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System.Collections.Generic; using osu.Framework.Graphics; using osu.Game.Beatmaps.Objects; using osu.Game.Beatmaps.Objects.Taiko; @@ -11,10 +10,12 @@ namespace osu.Game.GameModes.Play.Taiko { public class TaikoHitRenderer : HitRenderer { - protected override List Convert(List objects) => new TaikoConverter().Convert(objects); + private static readonly TaikoConverter converter = new TaikoConverter(); + + protected override HitObjectConverter Converter => converter; protected override Playfield CreatePlayfield() => new TaikoPlayfield(); protected override Drawable GetVisualRepresentation(TaikoBaseHit h) => new DrawableTaikoHit(h); } -} \ No newline at end of file +}