diff --git a/osu.Game/Rulesets/UI/DrawableRuleset.cs b/osu.Game/Rulesets/UI/DrawableRuleset.cs
index 2c5fce3e86..1a00346d6a 100644
--- a/osu.Game/Rulesets/UI/DrawableRuleset.cs
+++ b/osu.Game/Rulesets/UI/DrawableRuleset.cs
@@ -233,6 +233,13 @@ namespace osu.Game.Rulesets.UI
ResumeOverlay?.Hide();
}
+ ///
+ /// Adds a to this .
+ ///
+ ///
+ /// This does not add the to the beatmap.
+ ///
+ /// The to add.
public void AddHitObject(TObject hitObject)
{
if (PoolHitObjects)
@@ -241,6 +248,13 @@ namespace osu.Game.Rulesets.UI
Playfield.Add(CreateDrawableRepresentation(hitObject));
}
+ ///
+ /// Removes a from this .
+ ///
+ ///
+ /// This does not remove the from the beatmap.
+ ///
+ /// The to remove.
public void RemoveHitObject(TObject hitObject)
{
if (PoolHitObjects)
@@ -380,7 +394,6 @@ namespace osu.Game.Rulesets.UI
/// Displays an interactive ruleset gameplay instance.
///
/// This type is required only for adding non-generic type to the draw hierarchy.
- /// Once IDrawable is a thing, this can also become an interface.
///
///
[Cached(typeof(DrawableRuleset))]
diff --git a/osu.Game/Rulesets/UI/HitObjectContainer.cs b/osu.Game/Rulesets/UI/HitObjectContainer.cs
index 12d78dac2b..ff358e2e75 100644
--- a/osu.Game/Rulesets/UI/HitObjectContainer.cs
+++ b/osu.Game/Rulesets/UI/HitObjectContainer.cs
@@ -100,10 +100,11 @@ namespace osu.Game.Rulesets.UI
public virtual void Add(DrawableHitObject hitObject)
{
bindStartTime(hitObject);
- AddInternal(hitObject);
hitObject.OnNewResult += onNewResult;
hitObject.OnRevertResult += onRevertResult;
+
+ AddInternal(hitObject);
}
public virtual bool Remove(DrawableHitObject hitObject)
@@ -143,7 +144,12 @@ namespace osu.Game.Rulesets.UI
unbindAllStartTimes();
}
- protected override bool CheckChildrenLife() => base.CheckChildrenLife() | lifetimeManager.Update(Time.Current, Time.Current);
+ protected override bool CheckChildrenLife()
+ {
+ bool aliveChanged = base.CheckChildrenLife();
+ aliveChanged |= lifetimeManager.Update(Time.Current, Time.Current);
+ return aliveChanged;
+ }
private void onNewResult(DrawableHitObject d, JudgementResult r) => NewResult?.Invoke(d, r);
private void onRevertResult(DrawableHitObject d, JudgementResult r) => RevertResult?.Invoke(d, r);