From 2e0d100a226823ee7279fc455325df5eb4f4d352 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Fri, 17 Mar 2017 15:19:56 +0900 Subject: [PATCH 01/15] Add base DrawableTaikoHitObject, remove DrawableTaikoHit. --- .../Objects/Drawable/DrawableTaikoHit.cs | 39 ------------------- .../Drawable/DrawableTaikoHitObject.cs | 34 ++++++++++++++++ .../osu.Game.Modes.Taiko.csproj | 2 +- 3 files changed, 35 insertions(+), 40 deletions(-) delete mode 100644 osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHit.cs create mode 100644 osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHit.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHit.cs deleted file mode 100644 index 760977ef5b..0000000000 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHit.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2007-2017 ppy Pty Ltd . -// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE - -using osu.Framework.Allocation; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.Textures; -using osu.Framework.Graphics.Transforms; -using OpenTK; - -namespace osu.Game.Modes.Taiko.Objects.Drawable -{ - internal class DrawableTaikoHit : Sprite - { - private TaikoHitObject h; - - public DrawableTaikoHit(TaikoHitObject h) - { - this.h = h; - - Origin = Anchor.Centre; - Scale = new Vector2(0.2f); - RelativePositionAxes = Axes.Both; - Position = new Vector2(1.1f, 0.5f); - } - - [BackgroundDependencyLoader] - private void load(TextureStore textures) - { - Texture = textures.Get(@"Menu/logo"); - - double duration = 0; - - Transforms.Add(new TransformPositionX { StartTime = h.StartTime - 200, EndTime = h.StartTime, StartValue = 1.1f, EndValue = 0.1f }); - Transforms.Add(new TransformAlpha { StartTime = h.StartTime + duration + 200, EndTime = h.StartTime + duration + 400, StartValue = 1, EndValue = 0 }); - Expire(true); - } - } -} diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs new file mode 100644 index 0000000000..e29caf3f49 --- /dev/null +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -0,0 +1,34 @@ +// Copyright (c) 2007-2017 ppy Pty Ltd . +// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using osu.Game.Modes.Objects.Drawables; +using osu.Game.Modes.Taiko.Judgements; + +namespace osu.Game.Modes.Taiko.Objects.Drawable +{ + public class DrawableTaikoHitObject : DrawableHitObject + { + public DrawableTaikoHitObject(TaikoHitObject hitObject) + : base(hitObject) + { + LifetimeStart = HitObject.StartTime - HitObject.PreEmpt; + LifetimeEnd = HitObject.StartTime + HitObject.PreEmpt; + } + + protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); + + protected override void UpdateState(ArmedState state) + { + } + + protected void UpdateScrollPosition(double time) + { + MoveToX((float)((HitObject.StartTime - time) / HitObject.PreEmpt)); + } + + protected override void Update() + { + UpdateScrollPosition(Time.Current); + } + } +} diff --git a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj index 0e9e6a56b4..aab9a17276 100644 --- a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj +++ b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj @@ -50,9 +50,9 @@ + - From cdfe95c15930ac6e0072699d7f7ab2c0725fccaf Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Fri, 17 Mar 2017 16:05:16 +0900 Subject: [PATCH 02/15] Add AcentColour and xmldoc. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index e29caf3f49..4adbf2cb33 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -1,6 +1,7 @@ // Copyright (c) 2007-2017 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE +using OpenTK.Graphics; using osu.Game.Modes.Objects.Drawables; using osu.Game.Modes.Taiko.Judgements; @@ -8,6 +9,11 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable { public class DrawableTaikoHitObject : DrawableHitObject { + /// + /// The colour used for various elements of this DrawableHitObject. + /// + public virtual Color4 AccentColour { get; } + public DrawableTaikoHitObject(TaikoHitObject hitObject) : base(hitObject) { @@ -21,6 +27,11 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable { } + /// + /// Sets the scroll position of the DrawableHitObject relative to the offset between + /// a time value and the HitObject's StartTime. + /// + /// protected void UpdateScrollPosition(double time) { MoveToX((float)((HitObject.StartTime - time) / HitObject.PreEmpt)); From 35f63cb2aa774daec62fc13fb7085cb9f05aef9f Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Fri, 17 Mar 2017 16:10:40 +0900 Subject: [PATCH 03/15] Set Anchor/Origin and RelativePositionAxes. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 4adbf2cb33..321a1beea7 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -2,6 +2,7 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using OpenTK.Graphics; +using osu.Framework.Graphics; using osu.Game.Modes.Objects.Drawables; using osu.Game.Modes.Taiko.Judgements; @@ -17,7 +18,12 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable public DrawableTaikoHitObject(TaikoHitObject hitObject) : base(hitObject) { - LifetimeStart = HitObject.StartTime - HitObject.PreEmpt; + Anchor = Anchor.CentreLeft; + Origin = Anchor.Centre; + + RelativePositionAxes = Axes.X; + + LifetimeStart = HitObject.StartTime - HitObject.PreEmpt * 2; LifetimeEnd = HitObject.StartTime + HitObject.PreEmpt; } From 0e4ed829f2d148558d2f9a671ea4118ea1ab3965 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Fri, 17 Mar 2017 18:55:54 +0900 Subject: [PATCH 04/15] Make DrawableTaikoHitObject generic. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 321a1beea7..5e8aeb4844 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -8,14 +8,15 @@ using osu.Game.Modes.Taiko.Judgements; namespace osu.Game.Modes.Taiko.Objects.Drawable { - public class DrawableTaikoHitObject : DrawableHitObject + public class DrawableTaikoHitObject : DrawableHitObject + where TTaikoObject : TaikoHitObject { /// /// The colour used for various elements of this DrawableHitObject. /// public virtual Color4 AccentColour { get; } - public DrawableTaikoHitObject(TaikoHitObject hitObject) + public DrawableTaikoHitObject(TTaikoObject hitObject) : base(hitObject) { Anchor = Anchor.CentreLeft; From 5136064cb35b706985d50a564ec079e98fd544f5 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Fri, 17 Mar 2017 19:23:18 +0900 Subject: [PATCH 05/15] Revert "Make DrawableTaikoHitObject generic." This reverts commit 0e4ed829f2d148558d2f9a671ea4118ea1ab3965. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 5e8aeb4844..321a1beea7 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -8,15 +8,14 @@ using osu.Game.Modes.Taiko.Judgements; namespace osu.Game.Modes.Taiko.Objects.Drawable { - public class DrawableTaikoHitObject : DrawableHitObject - where TTaikoObject : TaikoHitObject + public class DrawableTaikoHitObject : DrawableHitObject { /// /// The colour used for various elements of this DrawableHitObject. /// public virtual Color4 AccentColour { get; } - public DrawableTaikoHitObject(TTaikoObject hitObject) + public DrawableTaikoHitObject(TaikoHitObject hitObject) : base(hitObject) { Anchor = Anchor.CentreLeft; From 75fb7a3eb34577f302e05547b5feb5be7704a248 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Mon, 20 Mar 2017 18:10:09 +0900 Subject: [PATCH 06/15] Suppress Resharper. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 321a1beea7..bc52be63c6 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -25,6 +25,9 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable LifetimeStart = HitObject.StartTime - HitObject.PreEmpt * 2; LifetimeEnd = HitObject.StartTime + HitObject.PreEmpt; + + // Todo: Remove (suppresses Resharper) + AccentColour = Color4.White; } protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); From 24e78d015e40b633cdbd5b326aab94f82c504465 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Wed, 22 Mar 2017 01:46:06 +0900 Subject: [PATCH 07/15] Make UpdateScrollPosition virtual. --- osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index bc52be63c6..1cd02e8292 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -41,7 +41,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable /// a time value and the HitObject's StartTime. /// /// - protected void UpdateScrollPosition(double time) + protected virtual void UpdateScrollPosition(double time) { MoveToX((float)((HitObject.StartTime - time) / HitObject.PreEmpt)); } From aa8780797ebd3e6df63a6a9d1e2a96204348829a Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Wed, 22 Mar 2017 15:22:02 +0900 Subject: [PATCH 08/15] Abstract class + move AccentColour to base. --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 17 ++--------------- .../Objects/Drawables/DrawableHitObject.cs | 6 ++++++ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 1cd02e8292..864a7b80a6 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -1,21 +1,15 @@ // Copyright (c) 2007-2017 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using OpenTK.Graphics; using osu.Framework.Graphics; using osu.Game.Modes.Objects.Drawables; using osu.Game.Modes.Taiko.Judgements; namespace osu.Game.Modes.Taiko.Objects.Drawable { - public class DrawableTaikoHitObject : DrawableHitObject + public abstract class DrawableTaikoHitObject : DrawableHitObject { - /// - /// The colour used for various elements of this DrawableHitObject. - /// - public virtual Color4 AccentColour { get; } - - public DrawableTaikoHitObject(TaikoHitObject hitObject) + protected DrawableTaikoHitObject(TaikoHitObject hitObject) : base(hitObject) { Anchor = Anchor.CentreLeft; @@ -25,17 +19,10 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable LifetimeStart = HitObject.StartTime - HitObject.PreEmpt * 2; LifetimeEnd = HitObject.StartTime + HitObject.PreEmpt; - - // Todo: Remove (suppresses Resharper) - AccentColour = Color4.White; } protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); - protected override void UpdateState(ArmedState state) - { - } - /// /// Sets the scroll position of the DrawableHitObject relative to the offset between /// a time value and the HitObject's StartTime. diff --git a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs index 3ff30bd90e..f3bb07d2d8 100644 --- a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs @@ -11,6 +11,7 @@ using osu.Game.Beatmaps.Samples; using osu.Game.Modes.Judgements; using Container = osu.Framework.Graphics.Containers.Container; using osu.Game.Modes.Objects.Types; +using OpenTK.Graphics; namespace osu.Game.Modes.Objects.Drawables { @@ -73,6 +74,11 @@ namespace osu.Game.Modes.Objects.Drawables public TObject HitObject; + /// + /// The colour used for various elements of this DrawableHitObject. + /// + public Color4 AccentColour { get; protected set; } + protected DrawableHitObject(TObject hitObject) { HitObject = hitObject; From 5daa5745517eba9a7afc5595ba562b70aa9bd289 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Thu, 23 Mar 2017 11:05:58 +0900 Subject: [PATCH 09/15] Don't set lifetime until LoadComplete (fixes possible clock nullref if added without a clock). --- .../Objects/Drawable/DrawableTaikoHitObject.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index 864a7b80a6..ebad53e787 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -16,9 +16,14 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable Origin = Anchor.Centre; RelativePositionAxes = Axes.X; + } + protected override void LoadComplete() + { LifetimeStart = HitObject.StartTime - HitObject.PreEmpt * 2; LifetimeEnd = HitObject.StartTime + HitObject.PreEmpt; + + base.LoadComplete(); } protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); From 2c76a2350c94b554a632b8b9e55739a1352efc2c Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Thu, 23 Mar 2017 15:37:16 +0900 Subject: [PATCH 10/15] Use AccentColour everywhere in drawable osu! hit objects. --- .../Beatmaps/OsuBeatmapConverter.cs | 6 --- .../Objects/Drawables/DrawableHitCircle.cs | 20 ++++---- .../Objects/Drawables/DrawableOsuHitObject.cs | 3 +- .../Objects/Drawables/DrawableSlider.cs | 1 + .../Objects/Drawables/DrawableSliderTick.cs | 2 +- .../Objects/Drawables/DrawableSpinner.cs | 2 +- .../Objects/Drawables/Pieces/SliderBall.cs | 24 ++++++++-- .../Objects/Drawables/Pieces/SliderBody.cs | 48 ++++++++++++++----- osu.Game.Modes.Osu/Objects/OsuHitObject.cs | 2 +- 9 files changed, 70 insertions(+), 38 deletions(-) diff --git a/osu.Game.Modes.Osu/Beatmaps/OsuBeatmapConverter.cs b/osu.Game.Modes.Osu/Beatmaps/OsuBeatmapConverter.cs index 0a4490eac3..fec675be54 100644 --- a/osu.Game.Modes.Osu/Beatmaps/OsuBeatmapConverter.cs +++ b/osu.Game.Modes.Osu/Beatmaps/OsuBeatmapConverter.cs @@ -44,11 +44,8 @@ namespace osu.Game.Modes.Osu.Beatmaps { StartTime = original.StartTime, Sample = original.Sample, - CurveObject = curveData, - Position = positionData?.Position ?? Vector2.Zero, - NewCombo = comboData?.NewCombo ?? false }; } @@ -60,7 +57,6 @@ namespace osu.Game.Modes.Osu.Beatmaps StartTime = original.StartTime, Sample = original.Sample, Position = new Vector2(512, 384) / 2, - EndTime = endTimeData.EndTime }; } @@ -69,9 +65,7 @@ namespace osu.Game.Modes.Osu.Beatmaps { StartTime = original.StartTime, Sample = original.Sample, - Position = positionData?.Position ?? Vector2.Zero, - NewCombo = comboData?.NewCombo ?? false }; } diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableHitCircle.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableHitCircle.cs index fe5b2f9859..3ed3124e14 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableHitCircle.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableHitCircle.cs @@ -13,8 +13,6 @@ namespace osu.Game.Modes.Osu.Objects.Drawables { public class DrawableHitCircle : DrawableOsuHitObject, IDrawableHitObjectWithProxiedApproach { - private readonly OsuHitObject osuObject; - public ApproachCircle ApproachCircle; private readonly CirclePiece circle; private readonly RingPiece ring; @@ -27,20 +25,18 @@ namespace osu.Game.Modes.Osu.Objects.Drawables { Origin = Anchor.Centre; - osuObject = h; - - Position = osuObject.StackedPosition; - Scale = new Vector2(osuObject.Scale); + Position = HitObject.StackedPosition; + Scale = new Vector2(HitObject.Scale); Children = new Drawable[] { glow = new GlowPiece { - Colour = osuObject.ComboColour + Colour = AccentColour }, circle = new CirclePiece { - Colour = osuObject.ComboColour, + Colour = AccentColour, Hit = () => { if (Judgement.Result.HasValue) return false; @@ -58,11 +54,11 @@ namespace osu.Game.Modes.Osu.Objects.Drawables flash = new FlashPiece(), explode = new ExplodePiece { - Colour = osuObject.ComboColour, + Colour = AccentColour, }, ApproachCircle = new ApproachCircle { - Colour = osuObject.ComboColour, + Colour = AccentColour, } }; @@ -115,8 +111,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables ApproachCircle.FadeOut(); - double endTime = (osuObject as IHasEndTime)?.EndTime ?? osuObject.StartTime; - double duration = endTime - osuObject.StartTime; + double endTime = (HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime; + double duration = endTime - HitObject.StartTime; glow.Delay(duration); glow.FadeOut(400); diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs index b2af678cae..8593430f80 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs @@ -13,9 +13,10 @@ namespace osu.Game.Modes.Osu.Objects.Drawables public const float TIME_FADEIN = 400; public const float TIME_FADEOUT = 500; - public DrawableOsuHitObject(OsuHitObject hitObject) + protected DrawableOsuHitObject(OsuHitObject hitObject) : base(hitObject) { + AccentColour = HitObject.ComboColour; } protected override OsuJudgementInfo CreateJudgementInfo() => new OsuJudgementInfo { MaxScore = OsuScoreResult.Hit300 }; diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs index f730d55e21..78ec817aa9 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs @@ -56,6 +56,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables ball = new SliderBall(s) { Scale = new Vector2(s.Scale), + AccentColour = AccentColour }, initialCircle = new DrawableHitCircle(new HitCircle { diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs index 988eab45b5..1af9a2b7a2 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs @@ -48,7 +48,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables new Box { RelativeSizeAxes = Axes.Both, - Colour = sliderTick.ComboColour, + Colour = AccentColour, Alpha = 0.3f, } }; diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSpinner.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSpinner.cs index 8f36321efd..81bf9f0bf1 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSpinner.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSpinner.cs @@ -48,7 +48,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables Alpha = 0, Anchor = Anchor.Centre, Origin = Anchor.Centre, - DiscColour = s.ComboColour + DiscColour = AccentColour }, circleContainer = new Container { diff --git a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBall.cs b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBall.cs index cccd10469d..73a01dfce2 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBall.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBall.cs @@ -12,10 +12,26 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces { public class SliderBall : CircularContainer, ISliderProgress { + private const float width = 128; + + private Color4 accentColour = Color4.Black; + /// + /// The colour that is used for the slider ball. + /// + public Color4 AccentColour + { + get { return accentColour; } + set + { + accentColour = value; + if (ball != null) + ball.Colour = value; + } + } + private readonly Slider slider; private readonly Box follow; - - private const float width = 128; + private readonly Box ball; public SliderBall(Slider slider) { @@ -49,9 +65,9 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces Alpha = 1, Children = new[] { - new Box + ball = new Box { - Colour = slider.ComboColour, + Colour = AccentColour, Alpha = 0.4f, Width = width, Height = width, diff --git a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs index c541a861d4..1f95be1761 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs @@ -13,6 +13,7 @@ using osu.Framework.Graphics.Textures; using osu.Game.Configuration; using OpenTK; using OpenTK.Graphics.ES30; +using OpenTK.Graphics; namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces { @@ -24,15 +25,31 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces public float PathWidth { get { return path.PathWidth; } - set - { - path.PathWidth = value; - } + set { path.PathWidth = value; } } public double? SnakedStart { get; private set; } public double? SnakedEnd { get; private set; } + private Color4 accentColour; + /// + /// Used to colour the path. + /// + public Color4 AccentColour + { + get { return accentColour; } + set + { + if (accentColour == value) + return; + accentColour = value; + + reloadTexture(); + } + } + + private int textureWidth => (int)PathWidth * 2; + private readonly Slider slider; public SliderBody(Slider s) { @@ -82,7 +99,15 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces snakingIn = config.GetBindable(OsuConfig.SnakingInSliders); snakingOut = config.GetBindable(OsuConfig.SnakingOutSliders); - int textureWidth = (int)PathWidth * 2; + path.Texture = new Texture(textureWidth, 1); + + reloadTexture(); + } + + private void reloadTexture() + { + if (path.Texture == null) + return; //initialise background var upload = new TextureUpload(textureWidth * 4); @@ -110,16 +135,15 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces { progress -= border_portion; - bytes[i * 4] = (byte)(slider.ComboColour.R * 255); - bytes[i * 4 + 1] = (byte)(slider.ComboColour.G * 255); - bytes[i * 4 + 2] = (byte)(slider.ComboColour.B * 255); - bytes[i * 4 + 3] = (byte)((opacity_at_edge - (opacity_at_edge - opacity_at_centre) * progress / gradient_portion) * (slider.ComboColour.A * 255)); + bytes[i * 4] = (byte)(AccentColour.R * 255); + bytes[i * 4 + 1] = (byte)(AccentColour.G * 255); + bytes[i * 4 + 2] = (byte)(AccentColour.B * 255); + bytes[i * 4 + 3] = (byte)((opacity_at_edge - (opacity_at_edge - opacity_at_centre) * progress / gradient_portion) * (AccentColour.A * 255)); } } - var texture = new Texture(textureWidth, 1); - texture.SetData(upload); - path.Texture = texture; + path.Texture.SetData(upload); + path.Invalidate(Invalidation.DrawNode, this); } private readonly List currentCurve = new List(); diff --git a/osu.Game.Modes.Osu/Objects/OsuHitObject.cs b/osu.Game.Modes.Osu/Objects/OsuHitObject.cs index 2af669b4ef..78b0e20e3a 100644 --- a/osu.Game.Modes.Osu/Objects/OsuHitObject.cs +++ b/osu.Game.Modes.Osu/Objects/OsuHitObject.cs @@ -36,7 +36,7 @@ namespace osu.Game.Modes.Osu.Objects public float Scale { get; set; } = 1; - public Color4 ComboColour { get; set; } + public Color4 ComboColour { get; set; } = Color4.Black; public virtual bool NewCombo { get; set; } public int ComboIndex { get; set; } From 4644f6afdb1a95504146b9759de157c0ee0853e5 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Mar 2017 17:11:51 +0900 Subject: [PATCH 11/15] Fix SliderBody's accent colour and thread-safety. --- .../Objects/Drawables/DrawableSlider.cs | 1 + .../Objects/Drawables/Pieces/SliderBody.cs | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs index 78ec817aa9..e8f2154d7f 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs @@ -39,6 +39,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables { body = new SliderBody(s) { + AccentColour = AccentColour, Position = s.StackedPosition, PathWidth = s.Scale * 64, }, diff --git a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs index 1f95be1761..e7837471ee 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/Pieces/SliderBody.cs @@ -44,7 +44,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces return; accentColour = value; - reloadTexture(); + if (LoadState == LoadState.Loaded) + Schedule(reloadTexture); } } @@ -99,15 +100,12 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces snakingIn = config.GetBindable(OsuConfig.SnakingInSliders); snakingOut = config.GetBindable(OsuConfig.SnakingOutSliders); - path.Texture = new Texture(textureWidth, 1); - reloadTexture(); } private void reloadTexture() { - if (path.Texture == null) - return; + var texture = new Texture(textureWidth, 1); //initialise background var upload = new TextureUpload(textureWidth * 4); @@ -142,8 +140,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces } } - path.Texture.SetData(upload); - path.Invalidate(Invalidation.DrawNode, this); + texture.SetData(upload); + path.Texture = texture; } private readonly List currentCurve = new List(); From 0785dd8528894bdef3d5f295c6438df4c22ad7d5 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Mar 2017 17:15:39 +0900 Subject: [PATCH 12/15] Change default OsuHitObject combo colour to gray This makes it easier to see additive elements in testcases. --- osu.Game.Modes.Osu/Objects/OsuHitObject.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Modes.Osu/Objects/OsuHitObject.cs b/osu.Game.Modes.Osu/Objects/OsuHitObject.cs index 78b0e20e3a..fa422834db 100644 --- a/osu.Game.Modes.Osu/Objects/OsuHitObject.cs +++ b/osu.Game.Modes.Osu/Objects/OsuHitObject.cs @@ -36,7 +36,7 @@ namespace osu.Game.Modes.Osu.Objects public float Scale { get; set; } = 1; - public Color4 ComboColour { get; set; } = Color4.Black; + public Color4 ComboColour { get; set; } = Color4.Gray; public virtual bool NewCombo { get; set; } public int ComboIndex { get; set; } From a61cb078e36e37d97ef65277171bf856b5fdab2f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Mar 2017 17:32:57 +0900 Subject: [PATCH 13/15] Increase timeout on IPC wait. --- osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs index ae936f3f49..39fb1bfa8a 100644 --- a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs +++ b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs @@ -70,7 +70,7 @@ namespace osu.Game.Tests.Beatmaps.IO Assert.IsTrue(File.Exists(temp)); var importer = new BeatmapIPCChannel(client); - if (!importer.ImportAsync(temp).Wait(1000)) + if (!importer.ImportAsync(temp).Wait(5000)) Assert.Fail(@"IPC took too long to send"); ensureLoaded(osu); From 93915ba5270629dba09a0ff88b24fbb0cb5ca075 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Mar 2017 18:56:22 +0900 Subject: [PATCH 14/15] Fix regression of osu! judgement animation. --- .../Objects/Drawables/DrawableOsuJudgementInfo.cs | 7 +------ osu.Game/Modes/Judgements/DrawableJudgementInfo.cs | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs index 15832bcb75..9cc09ff8d6 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs @@ -17,15 +17,10 @@ namespace osu.Game.Modes.Osu.Objects.Drawables protected override void LoadComplete() { - base.LoadComplete(); - if (Judgement.Result != HitResult.Miss) - { JudgementText.TransformSpacingTo(new Vector2(14, 0), 1800, EasingTypes.OutQuint); - FadeOut(500); - } - Expire(); + base.LoadComplete(); } } } \ No newline at end of file diff --git a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs b/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs index 85b357a995..ae51287599 100644 --- a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs +++ b/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs @@ -83,8 +83,8 @@ namespace osu.Game.Modes.Judgements ScaleTo(0.9f); ScaleTo(1, 500, EasingTypes.OutElastic); - Delay(250); - FadeOut(250, EasingTypes.OutQuint); + Delay(100); + FadeOut(400); break; } From 2cb801317dc62030bdb655847fe55696a7718cb3 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Mar 2017 19:00:18 +0900 Subject: [PATCH 15/15] JudgementInfo -> Judgement. There is no case where we use the term "Judgement" without the suffix, so deemed it unnecessary. --- osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs | 2 +- .../Tests/TestCaseTaikoPlayfield.cs | 8 ++++---- osu.Game.Modes.Catch/CatchScoreProcessor.cs | 6 +++--- .../{CatchJudgementInfo.cs => CatchJudgement.cs} | 2 +- osu.Game.Modes.Catch/UI/CatchHitRenderer.cs | 6 +++--- osu.Game.Modes.Catch/UI/CatchPlayfield.cs | 2 +- osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj | 2 +- .../{ManiaJudgementInfo.cs => ManiaJudgement.cs} | 2 +- osu.Game.Modes.Mania/ManiaScoreProcessor.cs | 6 +++--- osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs | 6 +++--- osu.Game.Modes.Mania/UI/ManiaPlayfield.cs | 2 +- osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj | 2 +- .../{OsuJudgementInfo.cs => OsuJudgement.cs} | 2 +- .../Objects/Drawables/DrawableOsuHitObject.cs | 4 ++-- ...leOsuJudgementInfo.cs => DrawableOsuJudgement.cs} | 4 ++-- .../Objects/Drawables/DrawableSliderTick.cs | 2 +- osu.Game.Modes.Osu/OsuScoreProcessor.cs | 9 ++++----- osu.Game.Modes.Osu/UI/OsuHitRenderer.cs | 6 +++--- osu.Game.Modes.Osu/UI/OsuPlayfield.cs | 8 ++++---- osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj | 4 ++-- .../{TaikoJudgementInfo.cs => TaikoJudgement.cs} | 2 +- .../Objects/Drawable/DrawableTaikoHitObject.cs | 4 ++-- osu.Game.Modes.Taiko/TaikoScoreProcessor.cs | 6 +++--- ...ikoJudgementInfo.cs => DrawableTaikoJudgement.cs} | 4 ++-- osu.Game.Modes.Taiko/UI/HitExplosion.cs | 4 ++-- osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs | 6 +++--- osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs | 12 ++++++------ osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj | 4 ++-- ...DrawableJudgementInfo.cs => DrawableJudgement.cs} | 10 +++++----- .../Judgements/{JudgementInfo.cs => Judgement.cs} | 2 +- .../Modes/Objects/Drawables/DrawableHitObject.cs | 8 ++++---- osu.Game/Modes/ScoreProcessor.cs | 4 ++-- osu.Game/Modes/UI/HitRenderer.cs | 2 +- osu.Game/Modes/UI/Playfield.cs | 2 +- osu.Game/osu.Game.csproj | 4 ++-- 35 files changed, 79 insertions(+), 80 deletions(-) rename osu.Game.Modes.Catch/Judgements/{CatchJudgementInfo.cs => CatchJudgement.cs} (84%) rename osu.Game.Modes.Mania/Judgements/{ManiaJudgementInfo.cs => ManiaJudgement.cs} (84%) rename osu.Game.Modes.Osu/Judgements/{OsuJudgementInfo.cs => OsuJudgement.cs} (93%) rename osu.Game.Modes.Osu/Objects/Drawables/{DrawableOsuJudgementInfo.cs => DrawableOsuJudgement.cs} (76%) rename osu.Game.Modes.Taiko/Judgements/{TaikoJudgementInfo.cs => TaikoJudgement.cs} (95%) rename osu.Game.Modes.Taiko/UI/{DrawableTaikoJudgementInfo.cs => DrawableTaikoJudgement.cs} (87%) rename osu.Game/Modes/Judgements/{DrawableJudgementInfo.cs => DrawableJudgement.cs} (89%) rename osu.Game/Modes/Judgements/{JudgementInfo.cs => Judgement.cs} (93%) diff --git a/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs b/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs index f302330346..2a20cad2db 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs @@ -136,7 +136,7 @@ namespace osu.Desktop.VisualTests.Tests if (auto) { h.State = ArmedState.Hit; - h.Judgement = new OsuJudgementInfo { Result = HitResult.Hit }; + h.Judgement = new OsuJudgement { Result = HitResult.Hit }; } playfieldContainer.Add(h); diff --git a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs index 3087b90e36..395a0cab13 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs @@ -36,7 +36,7 @@ namespace osu.Desktop.VisualTests.Tests playfield.OnJudgement(new DrawableTestHit(new Hit()) { X = RNG.NextSingle(hitResult == TaikoHitResult.Good ? -0.1f : -0.05f, hitResult == TaikoHitResult.Good ? 0.1f : 0.05f), - Judgement = new TaikoJudgementInfo + Judgement = new TaikoJudgement { Result = HitResult.Hit, TaikoResult = hitResult, @@ -51,7 +51,7 @@ namespace osu.Desktop.VisualTests.Tests { playfield.OnJudgement(new DrawableTestHit(new Hit()) { - Judgement = new TaikoJudgementInfo + Judgement = new TaikoJudgement { Result = HitResult.Miss, TimeOffset = 0, @@ -60,14 +60,14 @@ namespace osu.Desktop.VisualTests.Tests }); } - private class DrawableTestHit : DrawableHitObject + private class DrawableTestHit : DrawableHitObject { public DrawableTestHit(TaikoHitObject hitObject) : base(hitObject) { } - protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); + protected override TaikoJudgement CreateJudgement() => new TaikoJudgement(); protected override void UpdateState(ArmedState state) { diff --git a/osu.Game.Modes.Catch/CatchScoreProcessor.cs b/osu.Game.Modes.Catch/CatchScoreProcessor.cs index be4ae8b799..6563949fbc 100644 --- a/osu.Game.Modes.Catch/CatchScoreProcessor.cs +++ b/osu.Game.Modes.Catch/CatchScoreProcessor.cs @@ -7,18 +7,18 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Catch { - internal class CatchScoreProcessor : ScoreProcessor + internal class CatchScoreProcessor : ScoreProcessor { public CatchScoreProcessor() { } - public CatchScoreProcessor(HitRenderer hitRenderer) + public CatchScoreProcessor(HitRenderer hitRenderer) : base(hitRenderer) { } - protected override void UpdateCalculations(CatchJudgementInfo newJudgement) + protected override void UpdateCalculations(CatchJudgement newJudgement) { } } diff --git a/osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs b/osu.Game.Modes.Catch/Judgements/CatchJudgement.cs similarity index 84% rename from osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs rename to osu.Game.Modes.Catch/Judgements/CatchJudgement.cs index 53e0c6c0bf..8e18c68153 100644 --- a/osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs +++ b/osu.Game.Modes.Catch/Judgements/CatchJudgement.cs @@ -5,7 +5,7 @@ using osu.Game.Modes.Judgements; namespace osu.Game.Modes.Catch.Judgements { - public class CatchJudgementInfo : JudgementInfo + public class CatchJudgement : Judgement { public override string ScoreString => string.Empty; diff --git a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs index c02b6b6c49..751a8291d4 100644 --- a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs +++ b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs @@ -10,7 +10,7 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Catch.UI { - public class CatchHitRenderer : HitRenderer + public class CatchHitRenderer : HitRenderer { public CatchHitRenderer(WorkingBeatmap beatmap) : base(beatmap) @@ -23,8 +23,8 @@ namespace osu.Game.Modes.Catch.UI protected override IBeatmapProcessor CreateBeatmapProcessor() => new CatchBeatmapProcessor(); - protected override Playfield CreatePlayfield() => new CatchPlayfield(); + protected override Playfield CreatePlayfield() => new CatchPlayfield(); - protected override DrawableHitObject GetVisualRepresentation(CatchBaseHit h) => null; + protected override DrawableHitObject GetVisualRepresentation(CatchBaseHit h) => null; } } diff --git a/osu.Game.Modes.Catch/UI/CatchPlayfield.cs b/osu.Game.Modes.Catch/UI/CatchPlayfield.cs index eba8734eaf..cf1a665470 100644 --- a/osu.Game.Modes.Catch/UI/CatchPlayfield.cs +++ b/osu.Game.Modes.Catch/UI/CatchPlayfield.cs @@ -10,7 +10,7 @@ using osu.Game.Modes.Catch.Judgements; namespace osu.Game.Modes.Catch.UI { - public class CatchPlayfield : Playfield + public class CatchPlayfield : Playfield { public CatchPlayfield() { diff --git a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj index a32416173d..717e9175e4 100644 --- a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj +++ b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj @@ -51,7 +51,7 @@ - + diff --git a/osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs b/osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs similarity index 84% rename from osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs rename to osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs index c65bd87b6b..07c5fcbfef 100644 --- a/osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs +++ b/osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs @@ -5,7 +5,7 @@ using osu.Game.Modes.Judgements; namespace osu.Game.Modes.Mania.Judgements { - public class ManiaJudgementInfo : JudgementInfo + public class ManiaJudgement : Judgement { public override string ScoreString => string.Empty; diff --git a/osu.Game.Modes.Mania/ManiaScoreProcessor.cs b/osu.Game.Modes.Mania/ManiaScoreProcessor.cs index 60ed336c8e..c694717edb 100644 --- a/osu.Game.Modes.Mania/ManiaScoreProcessor.cs +++ b/osu.Game.Modes.Mania/ManiaScoreProcessor.cs @@ -7,18 +7,18 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Mania { - internal class ManiaScoreProcessor : ScoreProcessor + internal class ManiaScoreProcessor : ScoreProcessor { public ManiaScoreProcessor() { } - public ManiaScoreProcessor(HitRenderer hitRenderer) + public ManiaScoreProcessor(HitRenderer hitRenderer) : base(hitRenderer) { } - protected override void UpdateCalculations(ManiaJudgementInfo newJudgement) + protected override void UpdateCalculations(ManiaJudgement newJudgement) { } } diff --git a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs index 0f26c944a0..2a6629e25b 100644 --- a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs +++ b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs @@ -10,7 +10,7 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Mania.UI { - public class ManiaHitRenderer : HitRenderer + public class ManiaHitRenderer : HitRenderer { private readonly int columns; @@ -26,8 +26,8 @@ namespace osu.Game.Modes.Mania.UI protected override IBeatmapProcessor CreateBeatmapProcessor() => new ManiaBeatmapProcessor(); - protected override Playfield CreatePlayfield() => new ManiaPlayfield(columns); + protected override Playfield CreatePlayfield() => new ManiaPlayfield(columns); - protected override DrawableHitObject GetVisualRepresentation(ManiaBaseHit h) => null; + protected override DrawableHitObject GetVisualRepresentation(ManiaBaseHit h) => null; } } diff --git a/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs b/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs index 3984fce626..670d18f71f 100644 --- a/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs +++ b/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs @@ -11,7 +11,7 @@ using osu.Game.Modes.Mania.Judgements; namespace osu.Game.Modes.Mania.UI { - public class ManiaPlayfield : Playfield + public class ManiaPlayfield : Playfield { public ManiaPlayfield(int columns) { diff --git a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj index 8b78929510..d9af517eee 100644 --- a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj +++ b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj @@ -49,7 +49,7 @@ - + diff --git a/osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs b/osu.Game.Modes.Osu/Judgements/OsuJudgement.cs similarity index 93% rename from osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs rename to osu.Game.Modes.Osu/Judgements/OsuJudgement.cs index b945bad8a1..bbb1754ce6 100644 --- a/osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs +++ b/osu.Game.Modes.Osu/Judgements/OsuJudgement.cs @@ -8,7 +8,7 @@ using osu.Framework.Extensions; namespace osu.Game.Modes.Osu.Judgements { - public class OsuJudgementInfo : JudgementInfo + public class OsuJudgement : Judgement { /// /// The positional hit offset. diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs index 8593430f80..816faa0d98 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs @@ -7,7 +7,7 @@ using osu.Game.Modes.Osu.Judgements; namespace osu.Game.Modes.Osu.Objects.Drawables { - public class DrawableOsuHitObject : DrawableHitObject + public class DrawableOsuHitObject : DrawableHitObject { public const float TIME_PREEMPT = 600; public const float TIME_FADEIN = 400; @@ -19,7 +19,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables AccentColour = HitObject.ComboColour; } - protected override OsuJudgementInfo CreateJudgementInfo() => new OsuJudgementInfo { MaxScore = OsuScoreResult.Hit300 }; + protected override OsuJudgement CreateJudgement() => new OsuJudgement { MaxScore = OsuScoreResult.Hit300 }; protected override void UpdateState(ArmedState state) { diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs similarity index 76% rename from osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs rename to osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs index 9cc09ff8d6..13937e3c39 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs @@ -9,9 +9,9 @@ using osu.Game.Modes.Judgements; namespace osu.Game.Modes.Osu.Objects.Drawables { - public class DrawableOsuJudgementInfo : DrawableJudgementInfo + public class DrawableOsuJudgement : DrawableJudgement { - public DrawableOsuJudgementInfo(OsuJudgementInfo judgement) : base(judgement) + public DrawableOsuJudgement(OsuJudgement judgement) : base(judgement) { } diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs index 1af9a2b7a2..1c9f1e617c 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs @@ -27,7 +27,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables public override bool RemoveWhenNotAlive => false; - protected override OsuJudgementInfo CreateJudgementInfo() => new OsuJudgementInfo { MaxScore = OsuScoreResult.SliderTick }; + protected override OsuJudgement CreateJudgement() => new OsuJudgement { MaxScore = OsuScoreResult.SliderTick }; public DrawableSliderTick(SliderTick sliderTick) : base(sliderTick) { diff --git a/osu.Game.Modes.Osu/OsuScoreProcessor.cs b/osu.Game.Modes.Osu/OsuScoreProcessor.cs index 50eb685ecd..f473a578bd 100644 --- a/osu.Game.Modes.Osu/OsuScoreProcessor.cs +++ b/osu.Game.Modes.Osu/OsuScoreProcessor.cs @@ -8,13 +8,13 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Osu { - internal class OsuScoreProcessor : ScoreProcessor + internal class OsuScoreProcessor : ScoreProcessor { public OsuScoreProcessor() { } - public OsuScoreProcessor(HitRenderer hitRenderer) + public OsuScoreProcessor(HitRenderer hitRenderer) : base(hitRenderer) { } @@ -27,7 +27,7 @@ namespace osu.Game.Modes.Osu Accuracy.Value = 1; } - protected override void UpdateCalculations(OsuJudgementInfo judgement) + protected override void UpdateCalculations(OsuJudgement judgement) { if (judgement != null) { @@ -47,9 +47,8 @@ namespace osu.Game.Modes.Osu int score = 0; int maxScore = 0; - foreach (var judgementInfo in Judgements) + foreach (var j in Judgements) { - var j = judgementInfo; score += j.ScoreValue; maxScore += j.MaxScoreValue; } diff --git a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs index 7a1e83d3a5..18f8fbb8b9 100644 --- a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs +++ b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs @@ -12,7 +12,7 @@ using osu.Game.Screens.Play; namespace osu.Game.Modes.Osu.UI { - public class OsuHitRenderer : HitRenderer + public class OsuHitRenderer : HitRenderer { public OsuHitRenderer(WorkingBeatmap beatmap) : base(beatmap) @@ -25,11 +25,11 @@ namespace osu.Game.Modes.Osu.UI protected override IBeatmapProcessor CreateBeatmapProcessor() => new OsuBeatmapProcessor(); - protected override Playfield CreatePlayfield() => new OsuPlayfield(); + protected override Playfield CreatePlayfield() => new OsuPlayfield(); protected override KeyConversionInputManager CreateKeyConversionInputManager() => new OsuKeyConversionInputManager(); - protected override DrawableHitObject GetVisualRepresentation(OsuHitObject h) + protected override DrawableHitObject GetVisualRepresentation(OsuHitObject h) { var circle = h as HitCircle; if (circle != null) diff --git a/osu.Game.Modes.Osu/UI/OsuPlayfield.cs b/osu.Game.Modes.Osu/UI/OsuPlayfield.cs index 8924fe71e7..8090263fe1 100644 --- a/osu.Game.Modes.Osu/UI/OsuPlayfield.cs +++ b/osu.Game.Modes.Osu/UI/OsuPlayfield.cs @@ -15,7 +15,7 @@ using osu.Game.Modes.Osu.Judgements; namespace osu.Game.Modes.Osu.UI { - public class OsuPlayfield : Playfield + public class OsuPlayfield : Playfield { private readonly Container approachCircles; private readonly Container judgementLayer; @@ -65,7 +65,7 @@ namespace osu.Game.Modes.Osu.UI AddInternal(new GameplayCursor()); } - public override void Add(DrawableHitObject h) + public override void Add(DrawableHitObject h) { h.Depth = (float)h.HitObject.StartTime; @@ -83,9 +83,9 @@ namespace osu.Game.Modes.Osu.UI .OrderBy(h => h.StartTime); } - public override void OnJudgement(DrawableHitObject judgedObject) + public override void OnJudgement(DrawableHitObject judgedObject) { - DrawableOsuJudgementInfo explosion = new DrawableOsuJudgementInfo(judgedObject.Judgement) + DrawableOsuJudgement explosion = new DrawableOsuJudgement(judgedObject.Judgement) { Origin = Anchor.Centre, Position = judgedObject.HitObject.StackedEndPosition + judgedObject.Judgement.PositionOffset diff --git a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj index 1c1add8b94..a56bb799c4 100644 --- a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj +++ b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj @@ -48,7 +48,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs b/osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs similarity index 95% rename from osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs rename to osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs index 3312661e2a..d715fd0183 100644 --- a/osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs +++ b/osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs @@ -6,7 +6,7 @@ using osu.Framework.Extensions; namespace osu.Game.Modes.Taiko.Judgements { - public class TaikoJudgementInfo : JudgementInfo + public class TaikoJudgement : Judgement { /// /// The maximum score value. diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs index ebad53e787..c77c7762e3 100644 --- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs +++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs @@ -7,7 +7,7 @@ using osu.Game.Modes.Taiko.Judgements; namespace osu.Game.Modes.Taiko.Objects.Drawable { - public abstract class DrawableTaikoHitObject : DrawableHitObject + public abstract class DrawableTaikoHitObject : DrawableHitObject { protected DrawableTaikoHitObject(TaikoHitObject hitObject) : base(hitObject) @@ -26,7 +26,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable base.LoadComplete(); } - protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo(); + protected override TaikoJudgement CreateJudgement() => new TaikoJudgement(); /// /// Sets the scroll position of the DrawableHitObject relative to the offset between diff --git a/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs b/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs index 849c0fa894..fc414c3382 100644 --- a/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs +++ b/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs @@ -7,18 +7,18 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Taiko { - internal class TaikoScoreProcessor : ScoreProcessor + internal class TaikoScoreProcessor : ScoreProcessor { public TaikoScoreProcessor() { } - public TaikoScoreProcessor(HitRenderer hitRenderer) + public TaikoScoreProcessor(HitRenderer hitRenderer) : base(hitRenderer) { } - protected override void UpdateCalculations(TaikoJudgementInfo newJudgement) + protected override void UpdateCalculations(TaikoJudgement newJudgement) { } } diff --git a/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs b/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs similarity index 87% rename from osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs rename to osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs index 87f321d557..78c9657b40 100644 --- a/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs +++ b/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs @@ -12,13 +12,13 @@ namespace osu.Game.Modes.Taiko.UI /// /// Text that is shown as judgement when a hit object is hit or missed. /// - public class DrawableTaikoJudgementInfo : DrawableJudgementInfo + public class DrawableTaikoJudgement : DrawableJudgement { /// /// Creates a new judgement text. /// /// The judgement to visualise. - public DrawableTaikoJudgementInfo(TaikoJudgementInfo judgement) + public DrawableTaikoJudgement(TaikoJudgement judgement) : base(judgement) { } diff --git a/osu.Game.Modes.Taiko/UI/HitExplosion.cs b/osu.Game.Modes.Taiko/UI/HitExplosion.cs index 3aa7977617..adc6a77c5d 100644 --- a/osu.Game.Modes.Taiko/UI/HitExplosion.cs +++ b/osu.Game.Modes.Taiko/UI/HitExplosion.cs @@ -19,10 +19,10 @@ namespace osu.Game.Modes.Taiko.UI /// internal class HitExplosion : CircularContainer { - private readonly TaikoJudgementInfo judgement; + private readonly TaikoJudgement judgement; private readonly Box innerFill; - public HitExplosion(TaikoJudgementInfo judgement) + public HitExplosion(TaikoJudgement judgement) { this.judgement = judgement; diff --git a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs index 80e42cb976..21ee3434d3 100644 --- a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs +++ b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs @@ -10,7 +10,7 @@ using osu.Game.Modes.UI; namespace osu.Game.Modes.Taiko.UI { - public class TaikoHitRenderer : HitRenderer + public class TaikoHitRenderer : HitRenderer { public TaikoHitRenderer(WorkingBeatmap beatmap) : base(beatmap) @@ -23,8 +23,8 @@ namespace osu.Game.Modes.Taiko.UI protected override IBeatmapProcessor CreateBeatmapProcessor() => new TaikoBeatmapProcessor(); - protected override Playfield CreatePlayfield() => new TaikoPlayfield(); + protected override Playfield CreatePlayfield() => new TaikoPlayfield(); - protected override DrawableHitObject GetVisualRepresentation(TaikoHitObject h) => null; + protected override DrawableHitObject GetVisualRepresentation(TaikoHitObject h) => null; } } diff --git a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs index b322e167df..b7fac507d6 100644 --- a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs @@ -17,7 +17,7 @@ using osu.Framework.Graphics.Primitives; namespace osu.Game.Modes.Taiko.UI { - public class TaikoPlayfield : Playfield + public class TaikoPlayfield : Playfield { /// /// The default play field height. @@ -48,7 +48,7 @@ namespace osu.Game.Modes.Taiko.UI private readonly Container hitExplosionContainer; //private Container barLineContainer; - private readonly Container judgementContainer; + private readonly Container judgementContainer; private readonly Container hitObjectContainer; //private Container topLevelHitContainer; @@ -117,7 +117,7 @@ namespace osu.Game.Modes.Taiko.UI { RelativeSizeAxes = Axes.Both, }, - judgementContainer = new Container + judgementContainer = new Container { RelativeSizeAxes = Axes.Both, BlendingMode = BlendingMode.Additive @@ -170,21 +170,21 @@ namespace osu.Game.Modes.Taiko.UI rightBackground.Colour = colours.Gray0; } - public override void Add(DrawableHitObject h) + public override void Add(DrawableHitObject h) { h.Depth = (float)h.HitObject.StartTime; base.Add(h); } - public override void OnJudgement(DrawableHitObject judgedObject) + public override void OnJudgement(DrawableHitObject judgedObject) { bool wasHit = judgedObject.Judgement.Result == HitResult.Hit; if (wasHit) hitExplosionContainer.Add(new HitExplosion(judgedObject.Judgement)); - judgementContainer.Add(new DrawableTaikoJudgementInfo(judgedObject.Judgement) + judgementContainer.Add(new DrawableTaikoJudgement(judgedObject.Judgement) { Anchor = wasHit ? Anchor.TopLeft : Anchor.CentreLeft, Origin = wasHit ? Anchor.BottomCentre : Anchor.Centre, diff --git a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj index 312bde5f04..7b96651e0d 100644 --- a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj +++ b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj @@ -49,7 +49,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs b/osu.Game/Modes/Judgements/DrawableJudgement.cs similarity index 89% rename from osu.Game/Modes/Judgements/DrawableJudgementInfo.cs rename to osu.Game/Modes/Judgements/DrawableJudgement.cs index ae51287599..ef67d07310 100644 --- a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs +++ b/osu.Game/Modes/Judgements/DrawableJudgement.cs @@ -15,21 +15,21 @@ using osu.Game.Modes.Objects.Drawables; namespace osu.Game.Modes.Judgements { /// - /// A drawable object which visualises the hit result of a . + /// A drawable object which visualises the hit result of a . /// /// The type of judgement to visualise. - public class DrawableJudgementInfo : Container - where TJudgement : JudgementInfo + public class DrawableJudgement : Container + where TJudgement : Judgement { protected readonly TJudgement Judgement; protected readonly SpriteText JudgementText; /// - /// Creates a drawable which visualises a . + /// Creates a drawable which visualises a . /// /// The judgement to visualise. - public DrawableJudgementInfo(TJudgement judgement) + public DrawableJudgement(TJudgement judgement) { Judgement = judgement; diff --git a/osu.Game/Modes/Judgements/JudgementInfo.cs b/osu.Game/Modes/Judgements/Judgement.cs similarity index 93% rename from osu.Game/Modes/Judgements/JudgementInfo.cs rename to osu.Game/Modes/Judgements/Judgement.cs index a3cb9ba51f..45f40647ca 100644 --- a/osu.Game/Modes/Judgements/JudgementInfo.cs +++ b/osu.Game/Modes/Judgements/Judgement.cs @@ -5,7 +5,7 @@ using osu.Game.Modes.Objects.Drawables; namespace osu.Game.Modes.Judgements { - public abstract class JudgementInfo + public abstract class Judgement { /// /// Whether this judgement is the result of a hit or a miss. diff --git a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs index 277e65c1b1..3998a3e385 100644 --- a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs +++ b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs @@ -16,7 +16,7 @@ using OpenTK.Graphics; namespace osu.Game.Modes.Objects.Drawables { public abstract class DrawableHitObject : Container, IStateful - where TJudgement : JudgementInfo + where TJudgement : Judgement { public override bool HandleInput => Interactive; @@ -24,7 +24,7 @@ namespace osu.Game.Modes.Objects.Drawables public TJudgement Judgement; - protected abstract TJudgement CreateJudgementInfo(); + protected abstract TJudgement CreateJudgement(); protected abstract void UpdateState(ArmedState state); @@ -62,7 +62,7 @@ namespace osu.Game.Modes.Objects.Drawables //we may be setting a custom judgement in test cases or what not. if (Judgement == null) - Judgement = CreateJudgementInfo(); + Judgement = CreateJudgement(); //force application of the state that was set before we loaded. UpdateState(State); @@ -71,7 +71,7 @@ namespace osu.Game.Modes.Objects.Drawables public abstract class DrawableHitObject : DrawableHitObject where TObject : HitObject - where TJudgement : JudgementInfo + where TJudgement : Judgement { public event Action> OnJudgement; diff --git a/osu.Game/Modes/ScoreProcessor.cs b/osu.Game/Modes/ScoreProcessor.cs index a6e29d53e1..0886f34d55 100644 --- a/osu.Game/Modes/ScoreProcessor.cs +++ b/osu.Game/Modes/ScoreProcessor.cs @@ -105,7 +105,7 @@ namespace osu.Game.Modes public abstract class ScoreProcessor : ScoreProcessor where TObject : HitObject - where TJudgement : JudgementInfo + where TJudgement : Judgement { /// /// All judgements held by this ScoreProcessor. @@ -158,7 +158,7 @@ namespace osu.Game.Modes /// /// Update any values that potentially need post-processing on a judgement change. /// - /// A new JudgementInfo that triggered this calculation. May be null. + /// A new Judgement that triggered this calculation. May be null. protected abstract void UpdateCalculations(TJudgement newJudgement); } } \ No newline at end of file diff --git a/osu.Game/Modes/UI/HitRenderer.cs b/osu.Game/Modes/UI/HitRenderer.cs index 05b02a77b3..d53c65ec16 100644 --- a/osu.Game/Modes/UI/HitRenderer.cs +++ b/osu.Game/Modes/UI/HitRenderer.cs @@ -143,7 +143,7 @@ namespace osu.Game.Modes.UI /// The type of Judgement of DrawableHitObjects contained by this HitRenderer. public abstract class HitRenderer : HitRenderer where TObject : HitObject - where TJudgement : JudgementInfo + where TJudgement : Judgement { public event Action OnJudgement; diff --git a/osu.Game/Modes/UI/Playfield.cs b/osu.Game/Modes/UI/Playfield.cs index 4e4e1ed2fa..eff06ce80f 100644 --- a/osu.Game/Modes/UI/Playfield.cs +++ b/osu.Game/Modes/UI/Playfield.cs @@ -13,7 +13,7 @@ namespace osu.Game.Modes.UI { public abstract class Playfield : Container where TObject : HitObject - where TJudgement : JudgementInfo + where TJudgement : Judgement { /// /// The HitObjects contained in this Playfield. diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index 378dfec57b..bcae668e9f 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -96,7 +96,7 @@ - + @@ -113,7 +113,7 @@ - +