Bartłomiej Dach
8423d9de9b
Fix distance snap grid colours being off-by-one in certain cases
...
Closes https://github.com/ppy/osu/issues/31909 .
Previously: https://github.com/ppy/osu/pull/30062 .
Happening because of rounding errors - in this case the beat index
pre-flooring was something like a 0.003 off of a full beat, which would
get floored down rather than rounded up which created the discrepancy.
But also we don't want to round *too* far, which is why this
frankenstein solution has to exist I think. This is probably all
exacerbated by stable not handling decimal control point start times.
Would add tests if not for the fact that this is like extremely annoying
to test.
2025-02-17 10:11:23 +01:00
Bartłomiej Dach
a1185df2eb
Refactor IDistanceSnapProvider
to accept slider velocity objects as a reference
...
Method signatures are also changed to be a lot more explicit as to what
inputs they expect.
2025-02-03 14:00:57 +01:00
Bartłomiej Dach
8718483c70
Avoid moving already placed objects temporally when "limit distance snap to current time" is active
2025-01-31 09:51:13 +01:00
Bartłomiej Dach
11fc1f9a1c
Fix distance snap grid using wrong colour when reference object is unsnapped
2024-09-30 13:36:51 +02:00
Bartłomiej Dach
28696f595f
Privatise setter
2023-06-16 16:24:07 +02:00
Dean Herbert
78b2e6f3df
Add setting to limit distance snapping to current time
...
As discussed in https://github.com/ppy/osu/discussions/23815#discussioncomment-6124116 .
2023-06-09 15:54:33 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
2a88409dfe
Fix time snap of sliders not matching when SV is not 1.0x
...
This regressed with https://github.com/ppy/osu/pull/20850 because the
function was used in other places which expect it to factor slider
velocity into the equation.
Rather than reverting, I've added a new argument, as based on the method
naming alone it was hard to discern whether SV should actually be
considered.
The reason for the change in #20850 was to avoid the SV coming in from a
reference object which may not have a correct SV in the first place. In
such cases, passing `false` to the function will give the expected
behaviour.
2022-11-01 15:12:58 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
69592722f8
Highlight distance snap grid rings that are close to the current time value
2022-05-06 18:30:46 +09:00
Dean Herbert
684fef7f8c
Fix MaxIntervals
incorrectly factoring distance spacing multipiler into snap calculation
2022-05-06 17:09:02 +09:00
Dean Herbert
32b40bdabf
Rename DistanceBetweenTick
to be plural
2022-05-06 15:45:36 +09:00
Dean Herbert
b9d8b7e413
Fix end time extent not being accounted for in new snap implementation
2022-05-05 18:49:12 +09:00
Dean Herbert
786c7f14d3
Expose DistanceSpacingMultiplier
to distance
2022-05-05 17:08:53 +09:00
Dean Herbert
de9b3d33eb
Rename misleading DistanceSpacing
variable
2022-05-05 17:08:09 +09:00
Salman Ahmed
173a6188eb
Add back float
cast to distance spacing computation
2022-04-29 08:41:37 +03:00
Salman Ahmed
fef94d49f4
Revert "Convert data type of DistanceSpacing
to float"
...
This reverts commit 7aaa88cac2be239dcc778a1082585f8e8d5a7e55.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907
Move distance spacing application to DistanceSnapGrid
2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2
Convert data type of DistanceSpacing
to float
2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90
Minor cleanup
...
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
70a93c0e7e
Move DistanceSpacingMultiplier
bindable to its own IDistanceSnapProvider
interface
2022-04-24 08:33:00 +03:00
Salman Ahmed
0992bec2c8
Change "distance spacing" multipler type to double
...
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.
Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true ).
2022-02-16 03:28:12 +03:00
Salman Ahmed
528dc03b8c
Expose distance spacing in IPositionSnapProvider
for updating distance grid
...
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +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
9be7981e0d
Adjust timeline ticks to be more visible
2021-03-19 19:45:00 +09:00
Dean Herbert
3354d48a38
Change snapping to be screen space coordinate based
2020-05-20 21:00:29 +09:00
smoogipoo
6c28fd21c7
osu-side changes
2020-02-24 20:52:15 +09:00
smoogipoo
391681b7af
Separate calculation to follow other examples
2020-01-29 15:16:48 +09:00
Dean Herbert
29daabb40a
Fix distance snap grid showing incorrect colouring
...
Now matches timeline colours (based on timing point).
2020-01-28 11:59:21 +09:00
Dean Herbert
df665c3a3c
Move beat index colour retrieval to static function
2020-01-27 17:34:40 +09:00
smoogipoo
8c378dc625
Move EditorBeatmap construction/conversion to Editor
2019-12-30 14:51:14 +09:00
smoogipoo
94a298a82d
Refactor distance snap grid to not require hitobjects
2019-12-10 16:00:09 +09:00
Dean Herbert
709ec1404f
Centralise End/StartTime retrieval to extension method
2019-11-25 19:09:14 +09:00
smoogipoo
020b08b450
Initial implementation of limited distance snap
2019-11-06 15:27:48 +09:00
smoogipoo
ae011e8ee8
Fix distance snap grid test scenes
2019-10-25 17:25:46 +09:00
smoogipoo
4ca6a5a0cc
Interface the distance snap provider
2019-10-25 16:50:21 +09:00
smoogipoo
607b4d874a
Refactor flow of snapping through HitObjectComposer
2019-10-25 16:40:30 +09:00
smoogipoo
a969914d6e
Mention coordinate space
2019-10-24 18:24:22 +09:00
smoogipoo
d83b9ef0e4
Rename grid snapping methods
2019-10-24 18:18:04 +09:00
smoogipoo
f45f17339c
Implement slider path distance snapping
2019-10-24 18:17:30 +09:00
smoogipoo
97383b4a37
Show centre point of distance snap grid
2019-10-23 16:58:56 +09:00
Dean Herbert
f92331531c
Rename grid to DistanceSnap to be more in line with its purpose
2019-10-17 15:32:02 +09:00