1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-30 07:52:56 +08:00
Commit Graph

69 Commits

Author SHA1 Message Date
Salman Ahmed
59cf3ff50f Move distancing methods from IPositionSnapProvider to IDistanceSnapProvider 2022-04-28 05:48:45 +03:00
Bartłomiej Dach
c09f6ee052
Use slider snapping more liberally to match user expectations
Previously the slider path length would be snapped using the current
beat snap setting on *every* change of the slider path. As it turns out
this is unexpected behaviour in some situations (e.g. when reversing a
path, which is expected to preserve the previous duration, even though
the slider may be technically "unsnapped" at that point in time due to a
different beat snap setting being selected afterwards).
2022-01-07 16:02:04 +01:00
Dean Herbert
ee24713002 Fix single sliders not being flippable due to incorrect precondition 2022-01-06 14:37:13 +09:00
Dean Herbert
6779503e57 Refactor logic to avoid TimelineSelectionHandler having to block base calls 2022-01-05 16:56:54 +09:00
Dean Herbert
866ae3472b Add global flip hotkeys 2022-01-05 16:48:07 +09:00
Dean Herbert
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
ekrctb
cc01b9e639 Extract SliderPath reverse logic to be used in other rulesets 2021-07-22 16:14:43 +09:00
ekrctb
1bff4373b3 Allow specifying flipping support of selection box different from scaling 2021-07-21 15:59:45 +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
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
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
Naxess
7e47922fb7
Merge branch 'master' into circular-arc-freeze 2021-04-01 17:09:45 +02:00
Dean Herbert
b82247aabe Add inline comments and use Vector2.Zero 2021-03-30 14:13:16 +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
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
Leon Gebler
e67ab3cca7 Change single slider scaling to a method that works 2021-03-24 12:24:11 +01:00
Leon Gebler
3d471d239f Clamp multi-object scale instead of cancelling it 2021-03-24 12:24:11 +01:00
Leon Gebler
def0e5c42e Fix off-by-one error in isQuadInBounds 2021-03-24 12:24:11 +01:00
Leon Gebler
877e19421b Refactor movement while scaling 2021-02-23 21:02:00 +01:00
Leon Gebler
2a4139a207 Refactor isQuadInBounds 2021-02-23 21:02:00 +01:00
Leon Gebler
71b30bdbbb Adjust tuple usage 2021-02-23 21:02:00 +01:00
Leon Gebler
3491021f72 Move moveSelection into HandleMovement 2021-02-23 21:02:00 +01:00
Leon Gebler
33985d9e7c Rewrite scaling bounds check to behave more intuively 2021-02-21 18:11:32 +01:00
Leon Gebler
2c6f92d12f Move bounds check from moveSelection to HandleMovement 2021-02-21 17:38:50 +01:00
Leon Gebler
562a4cefdb Simplify HandleScale by extracting methods 2021-02-21 12:12:32 +01:00
Leon Gebler
0b8009938a Prevent selection from breaking playfield bounds when scaling 2021-02-21 00:14:39 +01:00
Leon Gebler
cc4c5f72d8 Move logic to keep selection in bounds into it's own method 2021-02-21 00:14:39 +01:00
Dean Herbert
2f1d4bf51b Add missing braces 2021-01-18 17:13:47 +09:00
Dean Herbert
c79ab63743 Fix sliders with an even number of repeats not allowing rotation/scale transforms 2021-01-18 16:59:16 +09:00
Dean Herbert
87176edca1 Fix crash when attempting to scale two hitobjects on the same axis 2020-12-22 12:52:57 +09:00
kamp
268bbcf77d Clamp selection movement instead of refusing to move on borders 2020-11-15 14:22:46 +01:00
kamp
66544544d3
Merge branch 'master' into allow-reversing-spinners 2020-11-13 00:40:49 +01:00
kamp
45ce6cc82d Allow spinners to be reversed 2020-11-13 00:36:47 +01:00
kamp
1439c0f392 Prevent SelectionBox handles from appearing when a stack of circles is selected 2020-11-12 23:19:29 +01:00
Dean Herbert
681e88af40
Merge branch 'master' into editor-fix-button-states-after-paste 2020-10-09 20:51:09 +09:00
Dean Herbert
3838f405dd Fix missed usages 2020-10-09 18:50:05 +09:00
Dean Herbert
2a790c76d5 Add reverse implementation for osu! 2020-10-09 06:32:33 +09:00
Dan Balasescu
6d50a1ed7d
Merge branch 'master' into osu-selection-flip-rotate-buttons 2020-10-05 19:17:33 +09:00
Dean Herbert
b6dc8bb2d3 Fix remaining manual degree-to-radian conversions 2020-10-01 18:10:05 +09:00