1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 13:07:24 +08:00
Commit Graph

84 Commits

Author SHA1 Message Date
cs
95b12082ae Update to respect distance snap
This will cause freehand drawing to respect distance snap, instead
changing the drawn path to start from the sliders start position
and "snap" in a linear fashion to the cursor position from the
position indicated by distance snap
2023-11-22 10:14:44 +01:00
cs
f7fce1d714 Fix freehand-drawn sliders with distance snap 2023-11-22 09:55:32 +01:00
Dean Herbert
cc33e12125
Fix dragging after one point already placed incorrectly entering drawing mode 2023-11-21 15:38:12 +09:00
Dean Herbert
a210469956
Reorder methods 2023-11-21 15:38:12 +09:00
Dean Herbert
016de7be6a
Simplify drag handling code in SliderPlacementBlueprint 2023-11-21 15:38:12 +09:00
Dean Herbert
cf6f66b84f
Remove redundant Clear() call 2023-11-21 15:38:12 +09:00
Dean Herbert
e69e78ad41
Refactor b-spline path conversion code to better handle linear segments 2023-11-21 15:38:12 +09:00
Dean Herbert
0a5444d091
Fix using the incorrect position for the first point 2023-11-21 15:38:12 +09:00
Dean Herbert
314a7bf6f1
Simplify AddOnce call to avoid self argument 2023-11-21 15:38:12 +09:00
Dean Herbert
3680024e31
Fix tolerance not being transferred to blueprint in all cases 2023-11-21 11:15:00 +09:00
Dean Herbert
e9f371a581
Refactor slider settings class 2023-11-21 09:59:49 +09:00
Dean Herbert
6f5c468a83
Rename settings class 2023-11-21 00:21:44 +09:00
Bartłomiej Dach
affef85f25
Remove ISliderDrawingSettingsProvider
Seems like excessive abstraction.
2023-11-20 13:02:51 +09:00
Bartłomiej Dach
831884a64b
Remove unused enum member 2023-11-20 13:00:12 +09:00
Bartłomiej Dach
f46945a294
Avoid one unnecessary path update from B-spline builder 2023-11-20 12:42:16 +09:00
Bartłomiej Dach
518dcc567b
Null-check drawingSettingsProvider
As it's annotated as an optional dependency.
2023-11-20 12:41:24 +09:00
cs
ceeaf5b67c CI fixes and small tweaks 2023-11-15 07:09:33 +01:00
Thomas Müller-Höhne
90ec6895d1 Automatic red control point generation & corner threshold 2023-11-14 16:53:01 +09:00
cs
fa976a5aa0 Fix code style/quality issues 2023-11-13 08:25:27 +01:00
Thomas Müller-Höhne
e6b4dfba36 Fix doubled control point at beginning of drawn slider 2023-11-13 12:49:59 +09:00
Thomas Müller-Höhne
c24b3543ab Fix OnDragStart on macOS 2023-11-13 12:47:12 +09:00
cs
54b8244a18 CI Fixup 2023-11-11 15:02:06 +01:00
cs
3f85aa79c5 Add free-hand drawing of sliders to the editor 2023-11-11 13:33:25 +01:00
Thomas Müller-Höhne
926636cc03 Generalize Bezier curves to BSplines of Nth degree 2023-11-11 13:32:53 +01:00
Bartłomiej Dach
3ab083b696
Split IPositionSnapProvider from IDistanceSnapProvider
In preparation to remove `DistancedHitObjectComposer`, split off
`IPositionSnapProvider` from `IDistanceSnapProvider`.

`DistancedHitObjectComposer` was not touching `IPositionSnapProvider`'s
only interface member at all, it was just forwarding it for subclasses
to override to their own leisure.
2023-10-19 11:45:24 +02:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Bartłomiej Dach
e35201cb99
Don't snap non-head slider nodes to distance grid during placement either
1cd69220ef only disabled snapping the
aforementioned nodes to distance grid for already-placed sliders.
`SliderPlacementBlueprint` has its own logic for placement, so the fix
needs to be mirrored there too.
2023-05-26 19:51:20 +02:00
Dean Herbert
f443cfb93e Move blueprint validity conditions to allow more correct external usage of EndPlacement
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
10b5900710 made PathControlPointVisualiser generic 2022-12-07 10:13:40 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
B3nn1
b0a3c9152a Enable snapping for slider control points in the editor 2022-09-19 21:33:38 +02:00
Dean Herbert
f1d9b225a7
Remove probably pointless comment 2022-09-05 16:40:10 +09:00
Dean Herbert
8af8adf22d Fix incorrect slider length in timeline when non-default velocity is inherited from previous object 2022-09-05 16:17:26 +09:00
Dean Herbert
06ae30a7d2 Fix slider velocity not using previous value if slider is not adjacent 2022-07-19 22:54:11 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
977e6d8a80 Add xmldoc for IDistanceSnapProvider and related properties 2022-05-05 16:25:45 +09:00
Salman Ahmed
59cf3ff50f Move distancing methods from IPositionSnapProvider to IDistanceSnapProvider 2022-04-28 05:48:45 +03:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dean Herbert
2114a4729c Set a sane default for new slider blueprints 2021-09-14 18:28:27 +09:00
Dean Herbert
d4e5a612ea Update IPositionalSnapProvider to take a HitObject as reference, rather than raw time
This allows fetching the correct `DifficultyControlPoint` from the
hitobject. Nothing more.
2021-09-03 17:11:12 +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
Dean Herbert
ec1c336b0a Fix a couple of inspections 2021-04-27 13:23:14 +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
Naxess
067178e537 Maintain path type when dragging/placing 2021-03-22 15:59:06 +01:00
Dean Herbert
9811c46e35 Rename application method to better describe what it actually does 2020-11-26 19:16:18 +09:00
Dean Herbert
a9a1c00cf1 Move responsibility placement blueprint's StartTime set to within 2020-05-21 14:50:33 +09:00
Dean Herbert
82d6549161 Pass down snap result and remove local TimeAt usage 2020-05-20 21:01:29 +09:00