1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 04:55:36 +08:00
Commit Graph

320 Commits

Author SHA1 Message Date
Dean Herbert
12606122e3 Fix sliders not correctly taking on full available length after changing curve type 2022-11-17 13:59:07 +09:00
Bartłomiej Dach
23134aea61
Update outdated comment 2022-11-04 19:48:19 +01:00
Dean Herbert
36c08b69fe Fix failing tests 2022-11-04 20:47:49 +09:00
Dean Herbert
20021551bb Fix editor selection behaviour regressions due to new path visualiser optimisation 2022-11-04 19:36:59 +09:00
Dan Balasescu
74f3b9b18d
Merge pull request #20965 from peppy/reduce-slider-blueprint-overhead
Only draw path visualiser when hovered or single slider is selected
2022-10-28 16:01:30 +09:00
Dean Herbert
300ffbb500 Don't bother checking for null editorBeatmap 2022-10-28 14:35:55 +09:00
Dean Herbert
10c658e440
Ensure updateVisualDefinition is called once on load
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-10-28 14:34:24 +09:00
Dean Herbert
7faf5cd1f6 Fix one more null edge case 2022-10-28 01:20:17 +09:00
Dean Herbert
361153f598 Fix nullref in tests due to missing EditorBeatmap dependency 2022-10-27 19:05:50 +09:00
Dean Herbert
0c7672e124 Avoid unnecessarily refreshing SliderBodyPiece's path 2022-10-27 16:02:04 +09:00
Dean Herbert
2f172b66cf Block hover if a multi-selection is made to avoid overlapping path visualisers 2022-10-27 14:52:46 +09:00
Dean Herbert
097d310d74 Only draw path visualiser when hovered or single slider is selected 2022-10-27 14:40:14 +09:00
OliBomby
b22e201289 Fixed stream convert float precision edge case 2022-10-08 23:43:23 +02:00
B3nn1
112bbe2296 Always use Parent.ToScreenSpace() in PathControlPointVisualiser 2022-09-21 18:56:22 +02:00
B3nn1
5d54354588 Add missing ToScreenSpace() call 2022-09-21 18:53:25 +02:00
B3nn1
368229f324 Remove unnecessary brackets 2022-09-21 01:25:01 +02:00
B3nn1
fe9e8635fc Fix snapping of already existing slider control points in the editor 2022-09-21 01:04:39 +02:00
B3nn1
b0a3c9152a Enable snapping for slider control points in the editor 2022-09-19 21:33:38 +02:00
Dean Herbert
c203a030c1
Update osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/Components/PathControlPointPiece.cs
Co-authored-by: apollo <83023433+apollo-dw@users.noreply.github.com>
2022-09-15 04:28:07 +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
89e128c0f3 Fix bindable event binds to HitObject directly 2022-09-12 17:35:56 +09: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
03dcfed384
Merge branch 'master' into slider-splitter 2022-08-26 19:10:33 +09:00
Dean Herbert
47cb163015 Refactor splitting logic and comments slightly 2022-08-26 19:09:03 +09:00
Dean Herbert
f54047d17b Move selection clearing to top 2022-08-26 18:55:20 +09:00
Dean Herbert
3ca4bdc087 Add ToArray() calls to removal iteration for safety 2022-08-25 15:13:38 +09:00
Dean Herbert
091c51e664 Fix SliderPath.Version bindings not being correctly cleaned up on path changes 2022-08-25 15:00:32 +09:00
OliBomby
631ea9a3ed added a gap between objects and made it theoretically possible to retain sample control point 2022-08-23 23:29:59 +02:00
OliBomby
1f9cdff013 remove these lines 2022-08-23 22:19:40 +02:00
Dean Herbert
885ea4270b Reorder context menu items and tidy up surrounding code 2022-08-20 14:03:54 +09:00
OliBomby
d1519343f6 Improved visual tests for slider splitting 2022-08-19 18:29:01 +02:00
OliBomby
89eb0a4079 Added TestScene for slider splitting 2022-08-19 01:10:54 +02:00
OliBomby
cb6339a20b added slider splitting option 2022-08-18 01:29:03 +02:00
Dean Herbert
0ff5547b83 Make changeHandler optional in convertToStream method to match new implementation 2022-08-17 13:35:44 +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
be3d4c9bf5 Add circle overlap marker, bringing back stable-like visibility of circles in the past 2022-05-12 19:27:32 +09:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance 2022-05-05 19:55:55 +09:00
Dean Herbert
977e6d8a80 Add xmldoc for IDistanceSnapProvider and related properties 2022-05-05 16:25:45 +09:00
Dean Herbert
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +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
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
Joseph Madamba
7de43e3aba Fix most open compound words in identifiers being closed 2021-12-27 20:26:28 -08:00
Bartłomiej Dach
c6a5ac1c5f
Fix control point additions without a drag not being undoable 2021-12-23 09:32:52 +01:00
Bartłomiej Dach
cbda637d66
Fix drag after placement moving last placed point sometimes
More specifically, if the left mouse button was just pressed without a
drag, `OnDragEnd()` wouldn't fire, and the next drag would start moving
the last placed control point around regardless of where the mouse was.
2021-12-23 09:25:10 +01:00
Dean Herbert
b0df787b1a Move public method up and add xmldoc to second public method 2021-12-23 14:13:57 +09:00
Bartłomiej Dach
c3fada1926
Replace assertion with soft null check
Surrounding `OnDrag{Start,End}` methods did so already.
2021-12-22 10:33:08 +01:00
Bartłomiej Dach
6330fa5dc5
Select newly created control point 2021-12-22 10:33:07 +01:00
Bartłomiej Dach
e22745397d
Fix right click deselecting clicked path piece with control held 2021-12-22 08:55:26 +01:00
Bartłomiej Dach
e715bff535
Fix selections including head not correctly dragging if not started from head 2021-12-21 12:35:48 +01:00
Bartłomiej Dach
5ef4e23335
Fix selecting control points without control not deselecting other selected points 2021-12-20 22:41:24 +01:00
Bartłomiej Dach
bf8c87e9b7
Fix releasing mouse after drag deselecting dragged point 2021-12-20 22:41:23 +01:00
Bartłomiej Dach
d2417beeac
Implement drag operation for multiple path control points 2021-12-20 21:29:57 +01:00
Bartłomiej Dach
a9408485cc
Change control point piece selection logic to allow dragging multiple 2021-12-20 21:18:38 +01:00
Bartłomiej Dach
b0ca82e1e5
Move slider path point drag handling to visualiser 2021-12-20 20:56:06 +01:00
Bartłomiej Dach
8aa04864ce
Add support for converting sliders with repeats to streams 2021-11-11 23:25:49 +01:00
Bartłomiej Dach
0cd3f98598
Ensure samples & sample points are carried over during conversion 2021-11-11 21:43:06 +01:00
Bartłomiej Dach
27707d52ec
Implement slider-to-stream conversion 2021-11-11 21:01:30 +01:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
ac471a0ec1 Merge branch 'no-more-difficulty-control-points-info' into slider-timeline-velcotiy-adjust-v2 2021-10-01 17:46:58 +09:00
Dean Herbert
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09: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
17f6efc6fe Fix missed cases of incorrect .Value usage
Changing from `Bindable` to `Nullable` comes with its issues...
2021-08-26 14:02:57 +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
1bac471b49 Adapt to PlatformAction type change 2021-07-21 16:12:53 +09:00
Bartłomiej Dach
50c27d2635 Update usages of IHasTooltip in line with framework localisation changes 2021-06-25 19:10:04 +02:00
smoogipoo
3db995c778 Fix sliders jumping around the screen on movement 2021-05-24 17:15:57 +09:00
Dean Herbert
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +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
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
ec1c336b0a Fix a couple of inspections 2021-04-27 13:23:14 +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
fbc6fb8fc5 Split out common logic into private method and add inline comment for future visitors 2021-04-13 15:35:57 +09:00
Naxess
d9e3276d0e Don't update path type once immediately 2021-04-12 19:18: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
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
Naxess
51f0477df4 Move bounding box logic to framework 2021-03-26 04:42:46 +01:00
Naxess
ce9130ca50 Remove determinant limit
This has since been added into the framework through https://github.com/ppy/osu-framework/pull/4302
2021-03-25 17:38:55 +01:00