1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 09:27:29 +08:00
Commit Graph

906 Commits

Author SHA1 Message Date
OliBomby
8a331057b0 Make it actually possible to change grid type 2024-01-01 15:13:10 +01:00
OliBomby
040fd5ef9c Add option to change grid type 2024-01-01 15:13:10 +01:00
OliBomby
8ef9bdf861 clarify comment 2024-01-01 15:13:10 +01:00
OliBomby
351cfbff3e Fix snapping going out of bounds 2024-01-01 15:13:10 +01:00
OliBomby
f223487e1c improve code 2024-01-01 15:13:10 +01:00
OliBomby
b16c232490 add basic control by grid tool box 2024-01-01 15:13:10 +01:00
Bartłomiej Dach
288ac930e4
Use new icons in editor
Some that exist on figma are purposefully not used due to an editorial
request from @peppy.
2023-12-27 17:42:18 +01:00
Dean Herbert
c2d3dcdd9c
Fix slider tests and incorrect nullability handling around freehandToolboxGroup 2023-12-13 15:15:49 +09:00
OliBomby
7b49db05d1 Update default parameters to be slightly better 2023-12-07 01:15:42 +01:00
OliBomby
a2ec75d824 Fix illegal circle arc with center out of polygon 2023-12-07 00:57:29 +01:00
OliBomby
89859b85b7 add controllable leniency 2023-12-07 00:43:34 +01:00
OliBomby
1930476192 Add circle arc segments 2023-12-07 00:26:13 +01:00
OliBomby
22287f3a7f decrease max tolerance 2023-12-06 16:36:24 +01:00
OliBomby
a8f3a0533a Use 4th order BSpline by default 2023-12-06 16:35:59 +01:00
OliBomby
060141866c Update SliderPlacementBlueprint.cs 2023-12-03 22:06:07 +01:00
OliBomby
b3d1a9ee2e Dont snap expected distance while drawing
This makes it 10 billion times smoother to draw, very nice
2023-12-03 22:03:51 +01:00
OliBomby
ca55a7b2bf call builder finish before ending curve 2023-12-03 21:43:37 +01:00
OliBomby
bcf2effae9 Remove the Linear segment simplification because it just makes things harder to edit afterwards if it made some segment linear type when you actually intended there to be some curve 2023-12-03 21:22:04 +01:00
OliBomby
34b5264616 fix the linear segment 2023-12-03 21:13:27 +01:00
OliBomby
ba2cc0243c update comment 2023-12-03 21:10:01 +01:00
OliBomby
8873824107 fix control points being cleared 2023-12-03 20:53:25 +01:00
OliBomby
4cd6efc8f7 update default parameters 2023-12-03 20:53:05 +01:00
OliBomby
595bc9398a update to new builder control point signature 2023-12-03 20:14:00 +01:00
Bartłomiej Dach
63481e8e60
Merge pull request #25539 from default0/fix-slider-drawing-with-snap
Fix freehand-drawn sliders with distance snap
2023-11-27 11:25:50 +09:00
Bartłomiej Dach
3da8a0cbed
Fix undo being broken when ctrl-click and dragging new point 2023-11-23 14:01:17 +09:00
Bartłomiej Dach
e8d3d26d16
Fix slider length not updating when adding new anchor via ctrl-click 2023-11-23 10:07:40 +09:00
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
21bf288277
Merge pull request #25520 from peppy/context-menu-spacers
Allow context menus to have visible spacers
2023-11-21 16:56:36 +09:00
Bartłomiej Dach
bf972a04ee
Merge pull request #25409 from Tom94/bspline-sliders
Add free-hand drawing of sliders to the editor
2023-11-21 16:28:14 +09:00
Bartłomiej Dach
ed38746823
Fix spacer appearing on top of menu 2023-11-21 16:14:41 +09:00
Bartłomiej Dach
d83b2e24e7
Merge pull request #25371 from RatinFX/open-editor-timestamp
Implement opening editor timestamp links
2023-11-21 15:48:36 +09: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
92728ea564
Simplify toolbox initialisation 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
9718a80249
Add visible spacer between "inherit" and other curve types 2023-11-21 14:24:19 +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
638c8f1adc
Get rid of weird cruft and non-standard flow 2023-11-21 00:25:23 +09:00
Dean Herbert
6f5c468a83
Rename settings class 2023-11-21 00:21:44 +09:00
Dean Herbert
750bbc8a19
Simplify null checks 2023-11-21 00:18:36 +09:00
Bartłomiej Dach
364a3f75e1
Compile regexes 2023-11-20 22:03:25 +09:00
Bartłomiej Dach
b6215b2809
Rename and document SelectFromTimestamp 2023-11-20 21:57:14 +09:00
Dean Herbert
492fd06c62
Remove unnecessary null override 2023-11-20 19:21:23 +09:00
Bartłomiej Dach
4061417ac8
Decrease default value for slider tolerance
Highly subjective change, but at 50 the drawing just did not feel
responsive enough to input.
2023-11-20 15:54:46 +09:00
Bartłomiej Dach
43dbd65708
Show Catmull as a control point type option if selection already contains it 2023-11-20 15:53:25 +09:00
Bartłomiej Dach
5d1bac6d7a
Remove IToolboxAttachment for now
The interface doesn't really do anything useful right now because
it enforces a common contract, but all usages of the contract
go through the concrete implementation, and it inflates
the already-huge diff.
2023-11-20 13:17:43 +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
Bartłomiej Dach
b6e3e42445
Merge branch 'master' into bspline-sliders 2023-11-20 12:03:29 +09:00
cs
360864fd7b Hide catmull curve type when possible 2023-11-15 07:45:28 +01:00
cs
520642975b Fix control point hover text and context menu 2023-11-15 07:45:09 +01: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
ratinfx
fab6fc9adb Updated comments, renamed method 2023-11-12 15:09:15 +01:00
ratinfx
4e7c40f1d7 Do Split and Parse before checking HitObjects 2023-11-12 14:58:46 +01:00
cs
54b8244a18 CI Fixup 2023-11-11 15:02:06 +01:00
ratinfx
4e1e19728c Refactor HitObject selection in Composer 2023-11-11 14:02:42 +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
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
ratinfx
aa87e0a44d HitObject Selection logic and separation for gamemodes
+ moved time_regex into EditorTimestampParser
2023-11-07 01:36:58 +01:00
Bartłomiej Dach
dcfd6a0a8a
Remove DistancedHitObjectComposer inheritance from osu! composer 2023-10-19 11:46:30 +02: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
5341a335a6
Bypass Parent nullability checks for now 2023-10-17 17:48:45 +09:00
Dean Herbert
81485c548c Move LegacyLastTickOffset specification to generation code and stop passing everywhere 2023-09-29 14:32:29 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions 2023-09-26 16:40:32 +09:00
Dean Herbert
41a8239e49 Remvoe null default for mods which can't be null 2023-09-20 15:27:50 +09:00
Dean Herbert
8e16b1d507 Simplify some maximum size specs 2023-09-20 12:48:15 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Bartłomiej Dach
3c191ff9ea
Expand allowable rotation range to [-360, 360] 2023-08-19 15:09:59 +02:00
Dean Herbert
63080d049f Adjust icons slightly 2023-08-17 19:08:18 +09:00
Bartłomiej Dach
19f892687a
Add precise rotation control to osu! editor 2023-08-16 11:37:52 +02:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler a Component 2023-07-30 20:18:33 +02:00
Bartłomiej Dach
821cd08f34
Merge branch 'master' into selection-operations-refactor 2023-07-30 19:29:06 +02:00
Dean Herbert
eac6271bd0 Add new property to avoid overlapping usages 2023-07-25 18:14:03 +09:00
Dean Herbert
2f7d38d98b Merge branch 'master' into fix-editor-blueprint-input-extension 2023-07-25 18:14:02 +09: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
Dean Herbert
b58354ac64 Fix playfield getting cut off (again) at tall aspect ratios 2023-07-21 15:20:20 +09:00
Dean Herbert
4a6a5b174a Fix editor blueprints being selectable for too long when hit markers are enabled
Addresses https://github.com/ppy/osu/discussions/24163.
2023-07-19 14:59:22 +09:00
Dean Herbert
dd8774a640 Vertically centre the editor osu! playfield 2023-07-14 13:21:28 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
95ad18ed2e Reduce the radius of note-to-note snapping in osu! editor
Stable uses `0.15f`, but for whatever reason that feels too large still.

I've ballparked this.

Addresses https://github.com/ppy/osu/discussions/23806.
2023-06-08 17:44:33 +09:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03: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
1cd69220ef Fix slider path placement snapping non-head nodes to distanced snapping grid
As discussed at https://github.com/ppy/osu/discussions/23531.
2023-05-25 21:41:43 +09:00
Dean Herbert
804671ca74 Split out grid snapping modes into "relative" and "global" types 2023-05-25 21:41:19 +09:00
Dean Herbert
b58ab28765 Make EditorClock non-nullable in PlacementBlueprint 2023-05-17 21:40:52 +09: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
Dean Herbert
6b017ac05f
Merge pull request #23308 from OliBomby/sample-control-points
Remove SampleControlPoint and DifficultyControlPoint from HitObject
2023-05-03 14:21:51 +09:00
Dean Herbert
67f83f246b Add more padding around playfield in editor to avoid overlap with tool areas
Closes #23130.
2023-05-02 15:37:02 +09:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
9f8d7bccba fix usings 2023-04-26 17:34:02 +02:00
OliBomby
d97daee96b remove all non-test usage of SampleControlPoint 2023-04-26 13:55:39 +02:00
Dean Herbert
45e3e3623b Fix spinners being selectable for too long after they fade in the editor
The actual visual extension is only applied to `HitCircle`s (which does include slider
start / end), and should not be applied to spinners in the first place.

Addresses https://github.com/ppy/osu/discussions/22949.
2023-03-28 18:49:59 +09:00
Bartłomiej Dach
49443f0b55
Inline temporary variable 2023-02-04 14:36:30 +01:00
Bartłomiej Dach
a1343dacc1
Merge branch 'master' into SnapToReverseSlider 2023-02-04 14:14:37 +01:00
Wleter
60f6484073 fix spaces 2023-02-03 16:13:37 +01:00
Wleter
f7f13cb9d9 fix formatting 2023-02-03 16:13:04 +01:00
Wleter
20e220df56 prioritize closest snap position 2023-02-03 16:05:16 +01:00
Wleter
23e9bdd554 check every snap position in blueprint 2023-02-02 14:22:30 +01:00
Dean Herbert
7344d34d5b Move where class specs to next line 2023-01-26 17:12:41 +09:00
Dean Herbert
13937cf555
Merge branch 'master' into stream-tool-2 2023-01-26 16:08:20 +09:00
Dean Herbert
73f083a316 Refactor how additional points are provided to avoid confusion 2023-01-23 14:13:46 +09:00
Wleter
f8d8a627b8 change property name 2023-01-18 22:00:39 +01:00
Wleter
ab78dd0436 add collection of selection points. 2023-01-18 21:34:23 +01:00
Dean Herbert
ecb4727aec Fix formatting issues 2023-01-18 17:33:14 +09:00
Wleter
00f15d19f9 fix double newlines 2023-01-17 21:11:21 +01:00
Wleter
e5863fbaf1 add ScreenSpaceEndPoint field 2023-01-10 21:20:09 +01:00
Wleter
38bb7ac0c7 add fields for path's end location 2023-01-10 21:16:34 +01:00
Dean Herbert
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
OliBomby
d458c3a012 Fix variable which didnt get renamed 2022-12-07 10:13:40 +01:00
OliBomby
10b5900710 made PathControlPointVisualiser generic 2022-12-07 10:13:40 +01:00
Dan Balasescu
ee62f3c0d3 Fix test failure
Similar to SliderPlacementBlueprint.
2022-12-02 18:32:43 +09:00
Dean Herbert
45ea183cc3 Fix being able to place zero-length spinners
Also always snap a spinner's end time using beat snap (matches stable).
2022-12-02 17:57:15 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
12606122e3 Fix sliders not correctly taking on full available length after changing curve type 2022-11-17 13:59:07 +09:00
Dean Herbert
ada039151b Add the ability to toggle off hit marker displays in the editor 2022-11-08 18:07:06 +09:00
Dean Herbert
e02c477008
Merge pull request #21017 from andy840119/remove-nullable-disable-in-the-checks
Remove nullable disable in the checks.
2022-11-06 18:39:03 +09:00
andy840119
b0673636ca Remove nullable disable annotation in the osu ruleset. 2022-11-05 16:49:55 +08: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
Bartłomiej Dach
d657005ffa
Merge branch 'master' into avoid-unnecessary-path-updates 2022-10-27 20:07:46 +02:00
Dean Herbert
7faf5cd1f6 Fix one more null edge case 2022-10-28 01:20:17 +09:00
Dean Herbert
e582d9d5a8 Remove unused using statements 2022-10-28 01:17:09 +09:00
Dean Herbert
361153f598 Fix nullref in tests due to missing EditorBeatmap dependency 2022-10-27 19:05:50 +09:00
Dean Herbert
39e0362db1 Reduce size of spinner blueprint to better represent gameplay size 2022-10-27 16:15:22 +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
Bartłomiej Dach
4db01fc970
Merge branch 'master' into fix-time-snapping-when-nearby-objects 2022-10-26 23:31:17 +02:00
Bartłomiej Dach
8b8d0c2293
Fix typo in comment 2022-10-26 23:30:14 +02:00