mirror of
https://github.com/osukey/osukey.git
synced 2025-08-04 15:16:38 +09:00
Reduce pollution in DrawableHitObject in favor of a loosely-coupled IScrollingHitObject.
This commit is contained in:
@ -51,6 +51,13 @@ namespace osu.Game.Rulesets.Timing
|
||||
this.scrollingAxes = scrollingAxes;
|
||||
}
|
||||
|
||||
public override void Add(SpeedAdjustmentContainer speedAdjustment)
|
||||
{
|
||||
speedAdjustment.VisibleTimeRange.BindTo(VisibleTimeRange);
|
||||
speedAdjustment.ScrollingAxes = scrollingAxes;
|
||||
base.Add(speedAdjustment);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a hit object to this <see cref="SpeedAdjustmentCollection"/>. The hit objects will be kept in a queue
|
||||
/// and will be processed when new <see cref="SpeedAdjustmentContainer"/>s are added to this <see cref="SpeedAdjustmentCollection"/>.
|
||||
@ -58,14 +65,10 @@ namespace osu.Game.Rulesets.Timing
|
||||
/// <param name="hitObject">The hit object to add.</param>
|
||||
public void Add(DrawableHitObject hitObject)
|
||||
{
|
||||
queuedHitObjects.Enqueue(hitObject);
|
||||
}
|
||||
if (!(hitObject is IScrollingHitObject))
|
||||
throw new InvalidOperationException($"Hit objects added to a {nameof(SpeedAdjustmentCollection)} must implement {nameof(IScrollingHitObject)}.");
|
||||
|
||||
public override void Add(SpeedAdjustmentContainer speedAdjustment)
|
||||
{
|
||||
speedAdjustment.VisibleTimeRange.BindTo(VisibleTimeRange);
|
||||
speedAdjustment.ScrollingAxes = scrollingAxes;
|
||||
base.Add(speedAdjustment);
|
||||
queuedHitObjects.Enqueue(hitObject);
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
|
@ -82,7 +82,9 @@ namespace osu.Game.Rulesets.Timing
|
||||
|
||||
public override void Add(DrawableHitObject drawable)
|
||||
{
|
||||
drawable.LifetimeOffset.BindTo(VisibleTimeRange);
|
||||
var scrollingHitObject = drawable as IScrollingHitObject;
|
||||
scrollingHitObject?.LifetimeOffset.BindTo(VisibleTimeRange);
|
||||
|
||||
base.Add(drawable);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user