Commit Graph

465 Commits

Author SHA1 Message Date
Dean Herbert 8a76d97b63 Remove replay logic from `DrawableRuleset` (and implement in `DrawableEditorRulesetWrapper`) 2021-06-02 11:06:30 +09:00
Dean Herbert bbfd7ea23f Ensure `RegenerateAutoplay` is only run once per frame 2021-05-23 21:20:08 +09:00
Dean Herbert 6c4709e7b4 Fix `PlacementBlueprint` using the wrong beatmap when applying defaults
Closes #12855.
2021-05-19 18:34:07 +09:00
Dean Herbert a96603f025
Merge pull request #12782 from smoogipoo/rework-hitobject-blueprints
Rename hitobject blueprints and tie them to HitObjects
2021-05-18 16:30:58 +09:00
smoogipoo 882d54a8f8 Remove now unnecessary Apply() method 2021-05-18 14:26:26 +09:00
smoogipoo e621cfc4ea Add Apply() method for applying new DHOs 2021-05-18 14:14:10 +09:00
smoogipoo f1f3606fd0 Fix unresolved xmldocs 2021-05-18 13:11:58 +09:00
Dan Balasescu 9d423245d8
Fix up xmldocs
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-05-18 13:02:23 +09:00
Dean Herbert fcb226bd20 Add local variable for regular access to `HitObjects` 2021-05-14 16:23:45 +09:00
Naxess a447f20095 Fix formatting of `#nullable enable` 2021-05-14 03:38:35 +02:00
Naxess 90e0b3374e
Add `#nullable enable`
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-05-14 03:34:50 +02:00
smoogipoo ffb6135a1b Rework hitobject blueprints to take in hitobject models 2021-05-13 19:53:32 +09:00
Naxess 19800f5f7f Move `IBeatmap` arg into context 2021-05-13 11:24:22 +02:00
Naxess b37cb3bdbe Change interpreted difficulty from bindable to regular value
There's no reason for why checks would need this to be bindable. A 1-directional binding is more appropriate.
2021-05-13 09:00:30 +02:00
Naxess b7bc42e0d3 Rename "playableBeatmap" check arg to "beatmap"
The working beatmap is now in the context, so it's easier to distinguish beatmap type, hence no need for this prefix.
2021-05-12 02:34:16 +02:00
Naxess 64d96b06a6 Add interpreted difficulty info to `BeatmapVerifierContext`
Enables checks to make use of the difficulty level as shown in the settings UI.
2021-05-12 02:30:21 +02:00
Naxess c13b93e6f1 Replace `IWorkingBeatmap` arg with `BeatmapVerifierContext` in checks
This simplifies passing of contextual information by enabling addition without needing to refactor lots of classes.

See next commit for example.
2021-05-12 02:29:18 +02:00
Naxess 75adec57eb Remove negligible default hidden TODO 2021-05-12 01:31:16 +02:00
Salman Ahmed b145f46a0a
Merge branch 'master' into skin-components-list 2021-04-30 21:10:55 +03:00
Dan Balasescu e6eea73b8b
Merge branch 'master' into basic-compose-checks 2021-04-30 23:41:46 +09:00
Dean Herbert a1e64f4e3c Use the existing toolbox design 2021-04-30 14:41:06 +09:00
Dean Herbert 9c62c90cfc Refactor `SelectionBlueprint` and `MoveSelectionEvent` to work in screen-space coordinates
Until now, the implementation of the overrides in `SelectionBlueprint`
have been confusing to the point where I would just implement by
trial-and-error (or copying from an existing implementation). This was
due to a combination of using "object" space coordinates
(ie. the thing the `Blueprint` is operating on) and screen-space coordinates.

This change switches all event related coordinates to screen-space,
which is how we already handle rotation/scale operations. With the
introduction of other editor types where the related objects are
drawables, this also makes a lot more sense.
2021-04-29 16:10:42 +09:00
Dean Herbert f3c7694eeb Rename methods to match generally how these find-methods are named elsewhere 2021-04-28 16:57:52 +09:00
Dean Herbert 48d6c9ac4b Move snap/divisor helper methods to inside `ControlPointInfo` 2021-04-28 16:47:30 +09:00
Naxess 200352b750 Rename unsnap check templates 2021-04-27 13:56:05 +02:00
Dean Herbert 7ec5ea1eb5 Remove hitobject terminology from base classes 2021-04-27 19:01:29 +09:00
Dean Herbert dd3d8e5d03 Make `SelectionHandler` abstract to ensure things get implemented 2021-04-27 19:01:29 +09:00
Dean Herbert f2e56bd306 Refactor editor selection/blueprint components to be generic 2021-04-27 19:01:29 +09:00
Dean Herbert ec1c336b0a Fix a couple of inspections 2021-04-27 13:23:14 +09:00
Naxess 7a6e9e5070 Change category of unsnap check to timing
Makes more sense, as this is typically the result of timing changes.
2021-04-27 02:32:57 +02:00
Naxess 9e49ecb573 Remove unused `virtual` keywords
Added these in a previous iteration, where I had the mania variant inherit this class.

No longer necessary as `IHasColumn` was used to make this check more generic.
2021-04-27 02:23:06 +02:00
Naxess a3c1b1fd52 Fix accessibility of `areConcurrent` 2021-04-27 01:24:38 +02:00
Naxess ce258febf6 Rename `CheckUnsnaps` -> `CheckUnsnappedObjects`
Will potentially have `CheckUnsnappedKiai` or similar later, so this is worth specifying.

Also consistent with `CheckConcurrentObjects`, which will likely have a `CheckConcurrentLines` later.
2021-04-26 20:32:44 +02:00
Naxess b9e4f73f78 Add concurrent objects check to `BeatmapVerifier` 2021-04-26 20:28:59 +02:00
Naxess a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Naxess 9b9c473616 Remove redundant string formatting 2021-04-26 16:17:38 +02:00
Naxess 7b9ed924be Rename snapping methods
Further separates them from `IBeatSnapProvider`'s `SnapTime`, and groups them together more, to prevent confusion between the two interfaces.

Also changes the xmldoc of the reference time to that of `IBeatSnapProvider` for consistency.
2021-04-26 16:07:30 +02:00
smoogipoo fd5fbaf0db Rename ruleset wrapper class 2021-04-26 15:37:42 +09:00
Naxess 049e42fa85 Move snapping responsibility to `IBeatmap`
Seems `EditorBeatmap` already implements a different kind of `SnapTime` from `IBeatSnapProvider`, so method names here aren't great.

This is very similar to what https://github.com/ppy/osu/pull/12558 is doing, so may need to do some duplicate resolution later, especially surrounding `ClosestBeatSnapDivisor`.

Worth noting that this change makes 1/7, 1/5, etc unsupported for now, as we now rely on `BindableBeatDivisor.VALID_DIVISORS`.
2021-04-26 05:07:24 +02:00
Naxess 6fd77e536d Add unsnap check 2021-04-25 05:34:54 +02:00
Dean Herbert 9a7bf8109f Allow certain mouse input to pass through `PlacementBlueprints` to the selection logic 2021-04-22 15:44:12 +09:00
Naxess 4510e795e1 Fix category of audio quality check 2021-04-20 02:13:26 +02:00
Naxess c633f15565 Add audio quality check 2021-04-20 01:36:03 +02:00
Naxess 40ae856dfc Show 2 decimals for background filesize 2021-04-20 01:34:05 +02:00
Naxess 14c626ffcb Use the playable beatmap for file presence checks 2021-04-20 01:33:19 +02:00
Naxess 8656176ab8 Add the playable beatmap as check argument
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.

So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.

This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
Naxess 9a69ca34a6 Add audio presence check 2021-04-18 02:07:57 +02:00
Naxess 010720de74 Factor out general file presence checking
This allows us to use the same method of checking for other files that should exist, for example the audio file.

By using the same method, they all share test cases too.
2021-04-18 02:07:33 +02:00
Naxess 56bf49c85c Take `IWorkingBeatmap` instead of `WorkingBeatmap`
This makes testing much easier, and allows for checking of any class deriving from that interface, including `WorkingBeatmap`.
2021-04-18 01:21:20 +02:00
Naxess abf512532e Clean up check logic
Makes use of the new `BeatmapSet.GetPathForFile` method and removes dependency on `WorkingBeatmap` specifically, allowing us to switch to `IWorkingBeatmap` later.
2021-04-18 01:19:25 +02:00