Commit Graph

597 Commits

Author SHA1 Message Date
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
f586bc46e6 Avoid using EditorBeatmap.SelectedHitObjects 2021-04-27 19:01:29 +09:00
f2e56bd306 Refactor editor selection/blueprint components to be generic 2021-04-27 19:01:29 +09:00
ec1c336b0a Fix a couple of inspections 2021-04-27 13:23:14 +09:00
8795c5f082 Update osu! editor transform logic to allow adjustments to DrawableSliderRepeat and DrawableSliderTail 2021-04-26 15:27:10 +09:00
e8d83f2f99 Rename "EditRuleset" and "EditPlayfield" to use full "Editor" keyword 2021-04-26 14:33:30 +09:00
0f70469d1c Only apply custom editor overrides if hit animations is disabled 2021-04-21 19:44:17 +09:00
f2824a222a Adjust existing fades to close match stable editor 2021-04-21 19:41:15 +09:00
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
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
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
401bf368a7 Merge branch 'fix-slider-scale-crash' into fix-slider-zero-length 2021-04-16 16:58:19 +09:00
8de68e0ebf Fix div-by-zero when scaling a 1-dimensional slider 2021-04-16 16:55:26 +09:00
ff408b852e Handle scaling a slider below minimum length 2021-04-16 15:45:24 +09:00
89373638be Handle control point deletion when the resulting slider would be too short to be useful 2021-04-16 15:45:24 +09:00
2949a6bbdc Handle control point drag revert 2021-04-16 15:45:24 +09:00
d38e294d96 Centralise length validation function 2021-04-16 15:45:24 +09:00
965a1ead36 Disallow zero-length slider blueprint placements 2021-04-16 14:38:30 +09:00
5c0ef55691 Rename SliderPlacementState to make way for more generic version 2021-04-16 14:09:35 +09:00
1ff4e2076f Merge branch 'master' into verify-tab 2021-04-13 23:05:48 +09:00
03ba04e8ce Split out general checks into its own verifier class (and remove static usage) 2021-04-13 19:50:22 +09:00
304fe5cd34 Add CheckBackground to OsuBeatmapVerifier 2021-04-13 10:41:02 +02:00
60c2494b31 Make BeatmapVerifier an interface 2021-04-13 10:40:56 +02:00
c8cb4286f6 Add reference for screen bounding box numbers 2021-04-13 10:35:06 +02:00
fbc6fb8fc5 Split out common logic into private method and add inline comment for future visitors 2021-04-13 15:35:57 +09:00
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
d9e3276d0e Don't update path type once immediately 2021-04-12 19:18:22 +02:00
19a154ddf1 Rename checkOrigin -> check
More consistent with `Issue.ctor`'s "template".
2021-04-12 17:28:12 +02:00
bb720c23a0 Remove check ctors and locals 2021-04-12 17:12:37 +02:00
62c1812282 Remove redundant parameter naming 2021-04-12 23:37:47 +09:00
36bd235021 Move nested classes to bottom of file 2021-04-12 23:36:10 +09:00
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
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
8bf85d737c Change Metadata into a get property 2021-04-12 15:52:29 +09:00
8c31e96cdf Change some methods to get properties 2021-04-12 15:52:18 +09:00
f78239c7f2 Move enums out of nesting 2021-04-12 15:52:18 +09:00
1c553b5d48 Checker -> BeatmapVerifier 2021-04-12 15:29:05 +09:00
14bd5bdc77 Merge branch 'master' into verify-tab 2021-04-12 15:14:37 +09:00
dac733cced Fix field name and accessibility 2021-04-10 15:49:57 +02:00
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
bc4f3351f3 Replace checks with realistic ones 2021-04-10 13:03:16 +02:00
d1007ff26a Move components to more appropriate spot 2021-04-10 13:02:22 +02:00
f64b2095bf Carry over the previous path type 2021-04-09 11:04:00 +02:00
9a675a2219 Correct 4+ point perfect curves to Bezier 2021-04-08 12:33:43 +02:00
be4520fe33 Fix index out of range possibility 2021-04-08 11:46:00 +02:00
0341023d13 Improve UX of selecting PerfectCurve 2021-04-08 09:06:28 +02:00
725edfcbf3 Add path type menu change method 2021-04-08 09:05:35 +02:00
d6490899e2 Simplify slider path bindings
Adds a slight performance overhead, but solves the memory leak and makes the code much easier to follow.
2021-04-08 03:21:56 +02:00
d1d56c636a Convert pathTypes to local variable
Not entirely sure what holds the reference to pathTypes now (the binding to`slider.Path.ControlPoints` maybe?), but this does seem to work still.
2021-04-08 01:43:06 +02:00
b8ab1c7682 Track path type changes for PointsInSegment 2021-04-07 17:19:12 +02:00