/// <summary> /// Remove a DrawableHitObject from this Playfield. /// </summary> /// <param name="h">The DrawableHitObject to remove.</param> public virtual bool Remove(DrawableHitObject h) { if (!HitObjectContainer.Remove(h)) { return(false); } OnHitObjectRemoved(h.HitObject); return(false); }
public virtual bool Remove(HitObject hitObject) { if (lifetimeEntryMap.Remove(hitObject, out var entry)) { HitObjectContainer.Remove(entry); OnHitObjectRemoved(hitObject); return(true); } return(nestedPlayfields.Any(p => p.Remove(hitObject))); }
/// <summary> /// Removes a <see cref="HitObjectLifetimeEntry"/> for a pooled <see cref="HitObject"/> from this <see cref="Playfield"/>. /// </summary> /// <param name="hitObject"></param> /// <returns>Whether the <see cref="HitObject"/> was successfully removed.</returns> public virtual bool Remove(HitObject hitObject) { if (lifetimeEntryMap.Remove(hitObject, out var entry)) { HitObjectContainer.Remove(entry); OnHitObjectRemoved(hitObject); return(true); } bool removedFromNested = false; if (nestedPlayfields.IsValueCreated) { removedFromNested = nestedPlayfields.Value.Any(p => p.Remove(hitObject)); } return(removedFromNested); }
/// <summary> /// Remove a DrawableHitObject from this Playfield. /// </summary> /// <param name="h">The DrawableHitObject to remove.</param> public virtual bool Remove(DrawableHitObject h) => HitObjectContainer.Remove(h);