1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-19 06:02:56 +08:00
Commit Graph

67 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
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
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
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
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
smoogipoo
3db995c778 Fix sliders jumping around the screen on movement 2021-05-24 17:15:57 +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
89373638be Handle control point deletion when the resulting slider would be too short to be useful 2021-04-16 15:45:24 +09:00
Bartłomiej Dach
e67c759eef Mark control point visualiser as possibly-null 2021-03-19 22:44:31 +01:00
Bartłomiej Dach
9634560d4b Fix control point visualiser crashing after deselections
`SliderSelectionBlueprint.OnDeselected()` would expire the
`ControlPointVisualiser` on deselection, leading to its removal from the
blueprint and eventual disposal, but still kept a separate reference to
said visualiser in another field.

This could lead to that stale reference to a disposed child getting read
in `ReceivePositionalInputAt()`, crashing quite a ways down over at the
framework side on futilely trying to compute the bounding box of a
drawable with no parent.
2021-03-19 21:40:22 +01:00
Dean Herbert
02d2b2742b Fix selection box not updating with hitcircles/sliders far in the future or past 2021-01-18 16:57:36 +09:00
smoogipoo
96abee3fde Fix silent NRE in slider selection blueprint 2020-11-20 22:43:10 +09:00
kamp
42c543472d Remove unnecessary null coalesce 2020-11-07 01:56:41 +01:00
kamp
b47a2a03d5 Fix nullref when quickdeleting slider that hasn't been selected yet 2020-11-07 01:53:14 +01:00
Dan Balasescu
f230250faf
Merge branch 'master' into editor-slider-control-point-quick-delete 2020-11-06 21:47:37 +09:00
Dean Herbert
242ec1ca82 Don't override PathControlPointVisualiser's positional handling
It turns out it was relying on this to deselect control points on
clicking away from them.
2020-11-05 14:58:30 +09:00
Dean Herbert
eed9894d3a Remove usage of case-when (caught me off-gaurd) 2020-11-05 13:58:41 +09:00
smoogipoo
9a7fcadabc Use BDL for top-level osu! DHOs 2020-11-05 13:51:46 +09:00
Dean Herbert
9f333ac58a Add the ability to delete slider control points using shift+right click
Closes https://github.com/ppy/osu/issues/10672.

In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Dan Balasescu
ecfb7e94c5
Merge branch 'master' into fix-editor-batch-handling 2020-10-09 20:06:06 +09:00
Dean Herbert
a0af2eb6c8 Private protect setters 2020-10-09 16:54:43 +09:00
Dean Herbert
6b9e94ae93 Avoid retaining slider selection blueprints FBO backing textures after deselection 2020-10-09 14:05:00 +09:00
Dean Herbert
34d1439f8e Only update slider selection blueprints paths when visible 2020-10-09 14:04:26 +09:00
Dean Herbert
afed832b19 Tidy up EditorBeatmap slightly 2020-10-08 18:06:49 +09:00
Dean Herbert
63b5b8b841 Fix sliders not dragging correctly after snaking has begun
Closes #10278.
2020-09-28 17:33:00 +09:00
Dean Herbert
3354d48a38 Change snapping to be screen space coordinate based 2020-05-20 21:00:29 +09:00
smoogipoo
575b061dd7 Add change state support to more editor components 2020-04-09 22:02:42 +09:00
smoogipoo
ee6ea08cf8 Cleanup handling of hitobject updates 2020-04-09 20:16:44 +09:00
smoogipoo
6fc6a376ee Fix incorrect slider selection point 2020-01-24 17:50:09 +09:00
smoogipoo
bfb056c612 Apply input method signature refactorings 2020-01-20 18:17:21 +09:00
Dean Herbert
23959f3a3c Move control point removal to SliderSelectionBlueprint 2019-12-11 18:58:35 +09:00
smoogipoo
2c4c190f15 Fix control points not adding to last segment 2019-12-09 22:44:47 +09:00
smoogipoo
4905709ea4 Remove unused usings 2019-12-09 13:19:21 +09:00
smoogipoo
d29ccdc25e Fix selection blueprint not re-snapping the path 2019-12-06 16:36:08 +09:00
smoogipoo
b4e1b5fa98 Explose + use the full calculated length of the path 2019-12-06 15:53:19 +09:00
smoogipoo
247609388f Clean up unused/unnecessary properties 2019-12-06 12:31:22 +09:00
smoogipoo
3ebbf62b2a Initial game-wide update with the new SliderPath 2019-12-05 19:53:36 +09:00
smoogipoo
a0884fe9d4 Fix being able to add while not selected 2019-11-12 15:07:54 +09:00
smoogipoo
93d8cd38ca Implement addition via ctrl+click 2019-11-12 15:02:27 +09:00
smoogipoo
407ca41ba4 Simplify using existing tools 2019-11-12 15:02:27 +09:00
smoogipoo
316dcae614 Use squared distance 2019-11-12 15:02:27 +09:00
smoogipoo
13b11996e0 Improve closest segment algorithm 2019-11-12 15:02:27 +09:00