From 3905a9105c5bc1e563bd2a02704ee47015cc6914 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Tue, 17 Jul 2018 15:51:10 +0900 Subject: [PATCH] Add a playfield method to retrieve all hitobjects --- osu.Game/Rulesets/Edit/HitObjectComposer.cs | 3 +-- osu.Game/Rulesets/UI/Playfield.cs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/osu.Game/Rulesets/Edit/HitObjectComposer.cs b/osu.Game/Rulesets/Edit/HitObjectComposer.cs index 1c55f0a09f..8b199c7e02 100644 --- a/osu.Game/Rulesets/Edit/HitObjectComposer.cs +++ b/osu.Game/Rulesets/Edit/HitObjectComposer.cs @@ -28,8 +28,7 @@ namespace osu.Game.Rulesets.Edit private RulesetContainer rulesetContainer; private readonly List layerContainers = new List(); - public IEnumerable HitObjects => rulesetContainer.Playfield.HitObjects.Objects; - public IEnumerable AliveHitObjects => rulesetContainer.Playfield.HitObjects.AliveObjects; + public IEnumerable HitObjects => rulesetContainer.Playfield.AllHitObjects; private readonly IBindable beatmap = new Bindable(); diff --git a/osu.Game/Rulesets/UI/Playfield.cs b/osu.Game/Rulesets/UI/Playfield.cs index 43999e3d29..7a7360afe2 100644 --- a/osu.Game/Rulesets/UI/Playfield.cs +++ b/osu.Game/Rulesets/UI/Playfield.cs @@ -14,13 +14,22 @@ namespace osu.Game.Rulesets.UI public abstract class Playfield : ScalableContainer { /// - /// The HitObjects contained in this Playfield. + /// The contained in this Playfield. /// public HitObjectContainer HitObjects { get; private set; } - private readonly Lazy> nestedPlayfields = new Lazy>(); + /// + /// All the s contained in this and all . + /// + public IEnumerable AllHitObjects => HitObjects?.Objects.Concat(NestedPlayfields.SelectMany(p => p.AllHitObjects)) ?? Enumerable.Empty(); + + /// + /// All s nested inside this . + /// public IEnumerable NestedPlayfields => nestedPlayfields.IsValueCreated ? nestedPlayfields.Value : Enumerable.Empty(); + private readonly Lazy> nestedPlayfields = new Lazy>(); + /// /// A container for keeping track of DrawableHitObjects. ///