Commit Graph

52 Commits

Author SHA1 Message Date
Dean Herbert fcb226bd20 Add local variable for regular access to `HitObjects` 2021-05-14 16:23:45 +09:00
Naxess 19800f5f7f Move `IBeatmap` arg into context 2021-05-13 11:24:22 +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 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
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
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 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
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
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
Naxess cb41c89935 Don't return low res and too low res at the same time 2021-04-17 20:10:07 +02:00
Naxess 62c54e00cb Add check for background resolution and filesize 2021-04-17 18:01:04 +02:00
Naxess 448574e7e6 Use `WorkingBeatmap` instead of `IBeatmap`
This lets us access things like the background, track, etc. which are necessary for quality and filesize checks.

Also improves the structure of the `CheckBackgroundTest` class in the process.
2021-04-17 17:33:53 +02:00
Dean Herbert cb4f64133e Add xmldoc to interfaces 2021-04-13 23:30:20 +09:00
Naxess 69da804f81 Add missing period 2021-04-13 13:57:56 +02:00
Naxess 6d3f9fa9ce Use `is` class instead of `Equals` with template index
Ensures ordering of `PossibleTemplates` does not affect tests.
2021-04-13 02:29:25 +02:00
Naxess d8088777ea Add `Equals` method to `IssueTemplate`
This will be useful in tests.
2021-04-13 01:21:34 +02:00
Naxess 19a154ddf1 Rename `checkOrigin` -> `check`
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
Naxess bb720c23a0 Remove check ctors and locals 2021-04-12 17:12:37 +02:00
Dean Herbert 62c1812282 Remove redundant parameter naming 2021-04-12 23:37:47 +09:00
Dean Herbert 36bd235021 Move nested classes to bottom of file 2021-04-12 23:36:10 +09:00
Naxess 6d50d01186 Make `IssueTemplate.Check` readonly 2021-04-12 16:23:05 +02:00
Naxess caaaba5950 Rename `Check` -> `ICheck` 2021-04-12 16:20:53 +02:00
Naxess 008dbc7dd6 Reverse `IssueType` ordering
Reversed both in the enum and where it's displayed, so ends up the same in the end.
2021-04-12 15:49:13 +02:00
Naxess 7c4f6d2b62 Rework template usage
Includes moving the origin check back to templates, constructing nested template classes in each check, and making parameterized template usage.
2021-04-12 15:47:26 +02:00
Naxess 65ebdd8f7a Move check origin from `IssueTemplate` to `Issue`
As a result we can also make check an interface, and need to provide the check itself when constructing an issue.
2021-04-12 10:08:08 +02:00
Dean Herbert 8bf85d737c Change Metadata into a get property 2021-04-12 15:52:29 +09:00
Dean Herbert 78bbc8f5c8 Tidy some remaining code 2021-04-12 15:52:18 +09:00
Dean Herbert 8c31e96cdf Change some methods to get properties 2021-04-12 15:52:18 +09:00
Dean Herbert f78239c7f2 Move enums out of nesting 2021-04-12 15:52:18 +09:00
Dean Herbert 3551322f1d Fix formatting of colour getter 2021-04-12 15:52:18 +09:00
Dean Herbert 257acf9cd8 Colour constants to private 2021-04-12 15:52:18 +09:00
Dean Herbert 136627b9ac Wrap xmldoc less and make a few fixes 2021-04-12 15:52:18 +09:00
Naxess 3289bb0379 Merge `Check` and `BeatmapCheck`
We're probably not going to need GeneralChecks or BeatmapsetChecks.

The verify tab is only available to a single difficulty at a time, and we already have access to the rest of the set through `IBeatmap`.
2021-04-10 14:56:30 +02:00