mirror of
https://github.com/ppy/osu.git
synced 2025-02-21 20:53:04 +08:00
Add back/obsolete old AddNested() method
This commit is contained in:
parent
d8f3678c3c
commit
f429a8f7c2
@ -25,19 +25,19 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
|
|||||||
AddInternal(bananaContainer = new Container { RelativeSizeAxes = Axes.Both });
|
AddInternal(bananaContainer = new Container { RelativeSizeAxes = Axes.Both });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
bananaContainer.Add(hitObject);
|
bananaContainer.Add(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
bananaContainer.Clear();
|
bananaContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -45,7 +45,7 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
|
|||||||
return createDrawableRepresentation?.Invoke(banana)?.With(o => ((DrawableCatchHitObject)o).CheckPosition = p => CheckPosition?.Invoke(p) ?? false);
|
return createDrawableRepresentation?.Invoke(banana)?.With(o => ((DrawableCatchHitObject)o).CheckPosition = p => CheckPosition?.Invoke(p) ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,19 +25,19 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
|
|||||||
AddInternal(dropletContainer = new Container { RelativeSizeAxes = Axes.Both, });
|
AddInternal(dropletContainer = new Container { RelativeSizeAxes = Axes.Both, });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
dropletContainer.Add(hitObject);
|
dropletContainer.Add(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
dropletContainer.Clear();
|
dropletContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -45,7 +45,7 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
|
|||||||
return createDrawableRepresentation?.Invoke(catchObject)?.With(o => ((DrawableCatchHitObject)o).CheckPosition = p => CheckPosition?.Invoke(p) ?? false);
|
return createDrawableRepresentation?.Invoke(catchObject)?.With(o => ((DrawableCatchHitObject)o).CheckPosition = p => CheckPosition?.Invoke(p) ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,9 +59,9 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
|
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -79,15 +79,15 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
headContainer.Clear();
|
headContainer.Clear();
|
||||||
tailContainer.Clear();
|
tailContainer.Clear();
|
||||||
tickContainer.Clear();
|
tickContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -115,7 +115,7 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDirectionChanged(ValueChangedEvent<ScrollingDirection> e)
|
protected override void OnDirectionChanged(ValueChangedEvent<ScrollingDirection> e)
|
||||||
|
@ -93,9 +93,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
|
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -117,9 +117,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
|
|
||||||
headContainer.Clear();
|
headContainer.Clear();
|
||||||
tailContainer.Clear();
|
tailContainer.Clear();
|
||||||
@ -127,7 +127,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
tickContainer.Clear();
|
tickContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -144,7 +144,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
return new DrawableRepeatPoint(repeat, this) { Position = repeat.Position - slider.Position };
|
return new DrawableRepeatPoint(repeat, this) { Position = repeat.Position - slider.Position };
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateInitialTransforms()
|
protected override void UpdateInitialTransforms()
|
||||||
|
@ -55,9 +55,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
OnNewResult += onNewResult;
|
OnNewResult += onNewResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
|
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -67,13 +67,13 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
tickContainer.Clear();
|
tickContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -81,7 +81,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
return new DrawableDrumRollTick(tick);
|
return new DrawableDrumRollTick(tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override TaikoPiece CreateMainPiece() => new ElongatedCirclePiece();
|
protected override TaikoPiece CreateMainPiece() => new ElongatedCirclePiece();
|
||||||
|
@ -128,9 +128,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
Width *= Parent.RelativeChildSize.X;
|
Width *= Parent.RelativeChildSize.X;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
|
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -140,13 +140,13 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
ticks.Clear();
|
ticks.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -154,7 +154,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
return new DrawableSwellTick(tick);
|
return new DrawableSwellTick(tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void CheckForResult(bool userTriggered, double timeOffset)
|
protected override void CheckForResult(bool userTriggered, double timeOffset)
|
||||||
|
@ -134,9 +134,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
AddInternal(strongHitContainer = new Container<DrawableStrongNestedHit>());
|
AddInternal(strongHitContainer = new Container<DrawableStrongNestedHit>());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void AddNested(DrawableHitObject hitObject)
|
protected override void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
base.AddNested(hitObject);
|
base.AddNestedHitObject(hitObject);
|
||||||
|
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -146,13 +146,13 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ClearNested()
|
protected override void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
base.ClearNested();
|
base.ClearNestedHitObjects();
|
||||||
strongHitContainer.Clear();
|
strongHitContainer.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DrawableHitObject CreateNested(HitObject hitObject)
|
protected override DrawableHitObject CreateNestedHitObject(HitObject hitObject)
|
||||||
{
|
{
|
||||||
switch (hitObject)
|
switch (hitObject)
|
||||||
{
|
{
|
||||||
@ -160,7 +160,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
|
|||||||
return CreateStrongHit(strong);
|
return CreateStrongHit(strong);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.CreateNested(hitObject);
|
return base.CreateNestedHitObject(hitObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normal and clap samples are handled by the drum
|
// Normal and clap samples are handled by the drum
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Extensions.TypeExtensions;
|
using osu.Framework.Extensions.TypeExtensions;
|
||||||
@ -138,34 +139,65 @@ namespace osu.Game.Rulesets.Objects.Drawables
|
|||||||
|
|
||||||
protected void Apply(HitObject hitObject)
|
protected void Apply(HitObject hitObject)
|
||||||
{
|
{
|
||||||
|
#pragma warning disable 618 // can be removed 20200417
|
||||||
|
if (GetType().GetMethod(nameof(AddNested), BindingFlags.NonPublic | BindingFlags.Instance)?.DeclaringType != typeof(DrawableHitObject))
|
||||||
|
return;
|
||||||
|
#pragma warning restore 618
|
||||||
|
|
||||||
if (nestedHitObjects.IsValueCreated)
|
if (nestedHitObjects.IsValueCreated)
|
||||||
{
|
{
|
||||||
nestedHitObjects.Value.Clear();
|
nestedHitObjects.Value.Clear();
|
||||||
ClearNested();
|
ClearNestedHitObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var h in hitObject.NestedHitObjects)
|
foreach (var h in hitObject.NestedHitObjects)
|
||||||
{
|
{
|
||||||
var drawableNested = CreateNested(h) ?? throw new InvalidOperationException($"{nameof(CreateNested)} returned null for {h.GetType().ReadableName()}.");
|
var drawableNested = CreateNestedHitObject(h) ?? throw new InvalidOperationException($"{nameof(CreateNestedHitObject)} returned null for {h.GetType().ReadableName()}.");
|
||||||
|
|
||||||
drawableNested.OnNewResult += (d, r) => OnNewResult?.Invoke(d, r);
|
drawableNested.OnNewResult += (d, r) => OnNewResult?.Invoke(d, r);
|
||||||
drawableNested.OnRevertResult += (d, r) => OnRevertResult?.Invoke(d, r);
|
drawableNested.OnRevertResult += (d, r) => OnRevertResult?.Invoke(d, r);
|
||||||
drawableNested.ApplyCustomUpdateState += (d, j) => ApplyCustomUpdateState?.Invoke(d, j);
|
drawableNested.ApplyCustomUpdateState += (d, j) => ApplyCustomUpdateState?.Invoke(d, j);
|
||||||
|
|
||||||
nestedHitObjects.Value.Add(drawableNested);
|
nestedHitObjects.Value.Add(drawableNested);
|
||||||
AddNested(drawableNested);
|
AddNestedHitObject(drawableNested);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void AddNested(DrawableHitObject hitObject)
|
/// <summary>
|
||||||
|
/// Invoked by the base <see cref="DrawableHitObject"/> to add nested <see cref="DrawableHitObject"/>s to the hierarchy.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hitObject">The <see cref="DrawableHitObject"/> to be added.</param>
|
||||||
|
protected virtual void AddNestedHitObject(DrawableHitObject hitObject)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void ClearNested()
|
/// <summary>
|
||||||
|
/// Adds a nested <see cref="DrawableHitObject"/>. This should not be used except for legacy nested <see cref="DrawableHitObject"/> usages.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="h"></param>
|
||||||
|
[Obsolete("Use AddNestedHitObject() / ClearNestedHitObjects() / CreateNestedHitObject() instead.")] // can be removed 20200417
|
||||||
|
protected virtual void AddNested(DrawableHitObject h)
|
||||||
|
{
|
||||||
|
h.OnNewResult += (d, r) => OnNewResult?.Invoke(d, r);
|
||||||
|
h.OnRevertResult += (d, r) => OnRevertResult?.Invoke(d, r);
|
||||||
|
h.ApplyCustomUpdateState += (d, j) => ApplyCustomUpdateState?.Invoke(d, j);
|
||||||
|
|
||||||
|
nestedHitObjects.Value.Add(h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Invoked by the base <see cref="DrawableHitObject"/> to remove all previously-added nested <see cref="DrawableHitObject"/>s.
|
||||||
|
/// </summary>
|
||||||
|
protected virtual void ClearNestedHitObjects()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual DrawableHitObject CreateNested(HitObject hitObject) => null;
|
/// <summary>
|
||||||
|
/// Creates the drawable representation for a nested <see cref="HitObject"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hitObject">The <see cref="HitObject"/>.</param>
|
||||||
|
/// <returns>The drawable representation for <paramref name="hitObject"/>.</returns>
|
||||||
|
protected virtual DrawableHitObject CreateNestedHitObject(HitObject hitObject) => null;
|
||||||
|
|
||||||
#region State / Transform Management
|
#region State / Transform Management
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user