1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 06:02:55 +08:00
Commit Graph

581 Commits

Author SHA1 Message Date
ekrctb
cc01b9e639 Extract SliderPath reverse logic to be used in other rulesets 2021-07-22 16:14:43 +09:00
Dean Herbert
adda96ac86
Merge pull request #13962 from ekrctb/platform-action
Adapt to framework `PlatformAction` type change
2021-07-21 18:17:38 +09:00
ekrctb
1bac471b49 Adapt to PlatformAction type change 2021-07-21 16:12:53 +09:00
ekrctb
1bff4373b3 Allow specifying flipping support of selection box different from scaling 2021-07-21 15:59:45 +09:00
Naxess
3a5912e35e Add new checks to verifiers 2021-07-13 10:53:25 +02:00
Naxess
53c0298b5e Add too short spinners check and tests 2021-07-13 10:51:40 +02:00
Naxess
fec9448301 Add too short sliders check and tests 2021-07-13 10:50:41 +02:00
Bartłomiej Dach
50c27d2635 Update usages of IHasTooltip in line with framework localisation changes 2021-06-25 19:10:04 +02:00
Dean Herbert
6c3d2315d0
Merge pull request #13606 from Naxesss/low-diff-checks
Add low difficulty spacing checks
2021-06-22 16:29:37 +09:00
Dean Herbert
e9339d6100 Move some inline comments on consts to xmldoc instead 2021-06-22 15:16:19 +09:00
Naxess
2f3f4f3e4b Add new checks to verifier 2021-06-21 15:30:45 +02:00
Naxess
fcb918d0e1 Add time distance equality check 2021-06-21 15:30:23 +02:00
Naxess
3eb088f89a Add low difficulty overlaps check 2021-06-21 15:30:04 +02:00
Bartłomiej Dach
afc89b39d9 Use StateUpdateTime for transform clearing logic
`MainCirclePiece` specifies a state transform starting at
`StateUpdateTime`, which is earlier than the previously-used
`HitStateUpdateTime`. Change the transform clearing logic to use the
former to ensure that exactly all animation transforms are cleared.
2021-06-18 16:04:11 +02:00
Bartłomiej Dach
e94fbd83e2 Ensure editor ruleset animation disable execution order 2021-06-18 16:04:11 +02:00
Bartłomiej Dach
e2a370f602 Add coverage for hit circle fade-out duration 2021-06-18 16:04:11 +02:00
smoogipoo
3db995c778 Fix sliders jumping around the screen on movement 2021-05-24 17:15:57 +09:00
Dean Herbert
bb2fae55ce Merge branch 'master' into refactor-selection-rotate-logic 2021-05-21 19:19:54 +09:00
Dean Herbert
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +09:00
Dean Herbert
27e81d6504 Implement proper rotation algorithm for skin editor 2021-05-20 18:21:16 +09:00
Dean Herbert
a0f67ef3bc Move scaling logic out of OsuSelectionHandler for reuse 2021-05-19 17:37:28 +09:00
Dean Herbert
d661e98fa6 Move common functionality out of OsuSelectionHandler and implement flip support 2021-05-18 18:34:06 +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
532c41c82e Remove nested blueprints from sliders 2021-05-18 14:19:11 +09:00
smoogipoo
e621cfc4ea Add Apply() method for applying new DHOs 2021-05-18 14:14:10 +09: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
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
Dean Herbert
01d732bb65 Revert "Refactor SliderSelectionBlueprint to not reference blueprint pieces for input handling"
This reverts commit 54fe10c82a.
2021-05-08 23:33:03 +09:00
Dean Herbert
63e267a3be Revert "Trim redundant this qualifier"
This reverts commit df630d9428.
2021-05-08 23:32:52 +09:00
Bartłomiej Dach
df630d9428 Trim redundant this qualifier 2021-05-08 14:53:19 +02:00
Dean Herbert
54fe10c82a Refactor SliderSelectionBlueprint to not reference blueprint pieces for input handling 2021-05-07 10:36:03 +09:00
Dean Herbert
39067e6926 Fix slider input handling potentially being offset after composer area resize
Closes https://github.com/ppy/osu/issues/12671.
2021-05-06 17:19:19 +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
f586bc46e6 Avoid using EditorBeatmap.SelectedHitObjects 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
Dean Herbert
8795c5f082 Update osu! editor transform logic to allow adjustments to DrawableSliderRepeat and DrawableSliderTail 2021-04-26 15:27:10 +09:00
Dean Herbert
e8d83f2f99 Rename "EditRuleset" and "EditPlayfield" to use full "Editor" keyword 2021-04-26 14:33:30 +09:00
Dean Herbert
0f70469d1c Only apply custom editor overrides if hit animations is disabled 2021-04-21 19:44:17 +09:00
Dean Herbert
f2824a222a Adjust existing fades to close match stable editor 2021-04-21 19:41:15 +09: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
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
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
401bf368a7 Merge branch 'fix-slider-scale-crash' into fix-slider-zero-length 2021-04-16 16:58:19 +09:00
Dean Herbert
8de68e0ebf Fix div-by-zero when scaling a 1-dimensional slider 2021-04-16 16:55:26 +09:00
Dean Herbert
ff408b852e Handle scaling a slider below minimum length 2021-04-16 15:45:24 +09:00
Dean Herbert
89373638be Handle control point deletion when the resulting slider would be too short to be useful 2021-04-16 15:45:24 +09:00
Dean Herbert
2949a6bbdc Handle control point drag revert 2021-04-16 15:45:24 +09:00
Dean Herbert
d38e294d96 Centralise length validation function 2021-04-16 15:45:24 +09:00
Dean Herbert
965a1ead36 Disallow zero-length slider blueprint placements 2021-04-16 14:38:30 +09:00
Dean Herbert
5c0ef55691 Rename SliderPlacementState to make way for more generic version 2021-04-16 14:09:35 +09:00
Dean Herbert
1ff4e2076f Merge branch 'master' into verify-tab 2021-04-13 23:05:48 +09:00
Dean Herbert
03ba04e8ce Split out general checks into its own verifier class (and remove static usage) 2021-04-13 19:50:22 +09:00
Naxess
304fe5cd34 Add CheckBackground to OsuBeatmapVerifier 2021-04-13 10:41:02 +02:00
Naxess
60c2494b31 Make BeatmapVerifier an interface 2021-04-13 10:40:56 +02:00
Naxess
c8cb4286f6 Add reference for screen bounding box numbers 2021-04-13 10:35:06 +02:00
Dean Herbert
fbc6fb8fc5 Split out common logic into private method and add inline comment for future visitors 2021-04-13 15:35:57 +09: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
d9e3276d0e Don't update path type once immediately 2021-04-12 19:18:22 +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
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
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
1c553b5d48 Checker -> BeatmapVerifier 2021-04-12 15:29:05 +09:00
Dean Herbert
14bd5bdc77 Merge branch 'master' into verify-tab 2021-04-12 15:14:37 +09:00
Naxess
dac733cced Fix field name and accessibility 2021-04-10 15:49:57 +02: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
Naxess
bc4f3351f3 Replace checks with realistic ones 2021-04-10 13:03:16 +02:00
Naxess
d1007ff26a Move components to more appropriate spot 2021-04-10 13:02:22 +02:00
Naxess
f64b2095bf Carry over the previous path type 2021-04-09 11:04:00 +02:00
Naxess
9a675a2219 Correct 4+ point perfect curves to Bezier 2021-04-08 12:33:43 +02:00
Naxess
be4520fe33 Fix index out of range possibility 2021-04-08 11:46:00 +02:00
Naxess
0341023d13 Improve UX of selecting PerfectCurve 2021-04-08 09:06:28 +02:00
Naxess
725edfcbf3 Add path type menu change method 2021-04-08 09:05:35 +02:00
Naxess
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
Naxess
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
Naxess
b8ab1c7682 Track path type changes for PointsInSegment 2021-04-07 17:19:12 +02:00
Naxess
9c4604e3c5 Add example checks 2021-04-07 14:36:53 +02:00
Naxess
0343ef7f14 Add ruleset-specific checker 2021-04-07 14:36:43 +02:00
Naxess
7e47922fb7
Merge branch 'master' into circular-arc-freeze 2021-04-01 17:09:45 +02:00
Naxess
5022a78e80 Check current point instead of start point
Since each control point will call this when the path updates, the previous would correct the start segment 3 times instead of just once.

This fixes that.
2021-03-31 20:25:46 +02:00
Naxess
75b8f2535f Move updatePathTypes to PathControlPointPiece
Here we produce a local bound copy of the path version, and bind it to update the path type.

This way, if the path version updates (i.e. any control point changes type or position), we check that all control points have a well-defined path.

Additionally, if the control point piece is disposed of, the GB should also swoop up the subscription because of the local bound copy.
2021-03-31 20:09:56 +02:00
Dean Herbert
b82247aabe Add inline comments and use Vector2.Zero 2021-03-30 14:13:16 +09:00
Dean Herbert
eda45e0e28 Merge branch 'master' into scale-breaking-bounds 2021-03-30 14:05:19 +09:00
Naxess
70d5b616f2 Add scaling path type recovery 2021-03-29 15:49:49 +02:00
Leon Gebler
17b16d4f89 Clarify purpose of getClampedScale() 2021-03-29 14:17:30 +02:00
Leon Gebler
1d99a63f17 Limit minimum size for single slider scaling 2021-03-29 14:16:27 +02:00
Dean Herbert
690debe507
Merge pull request #12030 from LeNitrous/editor-platform-clipboard-copy 2021-03-29 19:31:16 +09:00
Nathan Alo
9a02f3868c return a string instead 2021-03-29 17:29:05 +08:00
Leon Gebler
a50c4be8ab Add missing space 2021-03-26 17:41:36 +01:00
Leon Gebler
305c2e31cf Clarify todo comment 2021-03-26 16:53:17 +01:00
Leon Gebler
25ea60cb92 Remove return values from HandleScale submethods 2021-03-26 16:40:10 +01:00
Leon Gebler
5d272bef97 Remember ContolPoint positions instead of recalculating them 2021-03-26 16:31:04 +01:00