Bartłomiej Dach
37a296ba4c
Limit per-frame movement hitobject processing to stacking updates
2024-07-11 13:36:14 +02:00
Bartłomiej Dach
ec9040798f
Run stacking when performing movement in osu! composer
...
Closes https://github.com/ppy/osu/issues/28635 .
2024-07-09 13:52:36 +02:00
OliBomby
8df5f22b4e
Merge remote-tracking branch 'upstream/master' into scaling
2024-05-15 23:05:19 +02:00
Bartłomiej Dach
2f786ffc32
Simplify implementation
2024-03-28 10:12:27 +01:00
Arthur Araujo
01a72d5afa
Fix combo not reversing properly depending on the order of selection
2024-03-26 12:10:40 -03:00
Arthur Araujo
10683de578
Use order of new combo flags instead of StartTime
2024-03-26 04:59:47 -03:00
Arthur Araujo
78037fa477
Handle new combo on HandleReverse
2024-03-25 04:19:14 -03:00
OliBomby
a4f771ec08
refactor CanScale properties
2024-01-20 01:13:01 +01:00
OliBomby
26c0d1077a
Refactor scale handling in editor to facilitate reuse
2024-01-20 00:22:53 +01:00
Bartłomiej Dach
b6e3e42445
Merge branch 'master' into bspline-sliders
2023-11-20 12:03:29 +09:00
Thomas Müller-Höhne
926636cc03
Generalize Bezier curves to BSplines of Nth degree
2023-11-11 13:32:53 +01:00
Dean Herbert
35e11c7c63
Rename diagonal scale variable and update xmldoc
2023-11-10 17:55:02 +09:00
Dean Herbert
ec3b6e47fb
Change selection handling to adjust Size
instead of Scale
for edge nodes
2023-11-10 14:22:28 +09:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler
a Component
2023-07-30 20:18:33 +02:00
Bartłomiej Dach
aec3ca250c
Migrate SelectionHandler
to use SelectionRotationHandler
2023-07-23 20:56:22 +02:00
Bartłomiej Dach
ba904fd77b
Migrate osu! rotation handling to SelectionRotationHandler
2023-07-23 20:56:22 +02:00
Bartłomiej Dach
4622255cc7
Move out helper methods to static class
2023-07-23 18:24:20 +02:00
OliBomby
d97daee96b
remove all non-test usage of SampleControlPoint
2023-04-26 13:55:39 +02:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
4af76b9f48
Apply the same change to HandleFlip
2022-09-15 19:55:18 +09:00
Dean Herbert
87384db872
Fix slider rotation causing thousands of new drawables to be created
2022-09-15 00:51:08 +09:00
Dean Herbert
a15ea71aed
Merge branch 'master' into fix-merge-crash
2022-08-31 13:28:57 +09:00
OliBomby
44916c51d7
Updated canMerge check to be totally accurate
2022-08-30 00:18:55 +02:00
Dean Herbert
2e5770be4e
Move helper method to bottom of class
2022-08-30 02:51:42 +09:00
OliBomby
d50e9caa11
Moved guards to separate canMerge method
2022-08-29 18:58:29 +02:00
OliBomby
a296c1ec81
remove call to changeHandler BeginChange
2022-08-29 16:05:35 +02:00
OliBomby
ff2eac79d1
fix same time merge causing crash
2022-08-27 17:43:32 +02:00
OliBomby
16e0ec2f88
Fixed 0 length merge being allowed
2022-08-27 13:53:50 +02:00
nanashi-1
2d2bfac5e9
used firstHitObject.Samples
as samples for mergedHitObject
2022-08-25 17:49:38 +08:00
Dean Herbert
36e202c70e
Add inline comment explaining necessity to use AddRange
for slider transform operations
2022-08-20 11:38:43 +09:00
OliBomby
65f7ecec83
moving all controlpoints at once for slider
2022-08-20 00:26:04 +02:00
Dean Herbert
0833a6fb9a
Avoid multiple iteration of LINQ query using a local
2022-08-16 15:39:23 +09:00
Dean Herbert
7cc9fdbaa0
Simplify context menu check by using existing mergeable object list
2022-08-16 15:39:23 +09:00
Dean Herbert
ecb9351bab
Remove unnecessary null pre-checks
2022-08-16 15:36:43 +09:00
Dean Herbert
e636fcd9b8
Use DI'd components from parent class rather than fetching locally
2022-08-16 15:35:32 +09:00
OliBomby
3abc333813
added hotkey for merging selection
2022-08-15 17:18:55 +02:00
OliBomby
3525dfb0f1
added merging feature
2022-08-12 01:17:33 +02:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
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