Example #1
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });
        }
Example #2
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            // For non-pooled rulesets, hitobjects are already present in the playfield which allows the blueprints to be loaded in the async context.
            if (Composer != null)
            {
                foreach (var obj in Composer.HitObjects)
                {
                    addBlueprintFor(obj.HitObject);
                }
            }

            selectedHitObjects.BindTo(Beatmap.SelectedHitObjects);
            selectedHitObjects.CollectionChanged += (selectedObjects, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    foreach (var o in args.NewItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Select();
                    }
                    break;

                case NotifyCollectionChangedAction.Remove:
                    foreach (var o in args.OldItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Deselect();
                    }

                    break;
                }
            };
        }
Example #3
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            foreach (var obj in Beatmap.HitObjects)
            {
                AddBlueprintFor(obj);
            }

            selectedHitObjects.BindTo(Beatmap.SelectedHitObjects);
            selectedHitObjects.CollectionChanged += (selectedObjects, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    foreach (var o in args.NewItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Select();
                    }
                    break;

                case NotifyCollectionChangedAction.Remove:
                    foreach (var o in args.OldItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Deselect();
                    }

                    break;
                }
            };
        }