Commit Graph

49 Commits

Author SHA1 Message Date
2949a6bbdc Handle control point drag revert 2021-04-16 15:45:24 +09:00
fbc6fb8fc5 Split out common logic into private method and add inline comment for future visitors 2021-04-13 15:35:57 +09:00
d9e3276d0e Don't update path type once immediately 2021-04-12 19:18:22 +02:00
9a675a2219 Correct 4+ point perfect curves to Bezier 2021-04-08 12:33:43 +02:00
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
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
b8ab1c7682 Track path type changes for PointsInSegment 2021-04-07 17:19:12 +02:00
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
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
0bcd38e661 Simplify path type maintenance when dragging 2021-03-24 02:57:47 +01:00
5ee280f941 Update PointsInSegment when adding/removing points
There was a bug where if you created a slider, moved the last point, and then added a point such that it became a PerfectCurve, it would fail to recover after becoming a Bezier.

This fixes that.
2021-03-24 02:56:32 +01:00
067178e537 Maintain path type when dragging/placing 2021-03-22 15:59:06 +01:00
27c38db14d Add tooltips for slider path nodes which aren't inheriting 2021-03-19 16:58:08 +09:00
5f31304d05 Give each type of slider path type a unique colour to help visually distinguish them 2021-03-19 14:00:26 +09:00
be3fed3072 Merge pull request #11024 from peppy/fix-slider-point-drag-offset
Fix slider control point dragging not correctly accounting for drag deadzone
2020-12-02 11:10:06 +09:00
b256c54619 Scale slider control point display in line with circle size 2020-12-01 14:17:36 +09:00
c8c1848bb8 Fix slider control point dragging not correctly accounting for drag deadzone 2020-12-01 13:46:30 +09:00
af30d1201f Fix slider path control point blueprint not working correctly 2020-05-22 18:57:28 +09:00
c46bfc2532 Create SnapResult class to hold various snapping results 2020-05-20 21:00:47 +09:00
3354d48a38 Change snapping to be screen space coordinate based 2020-05-20 21:00:29 +09:00
8d5732aabd Make placements happen on mouse down 2020-04-23 12:17:11 +09:00
2b2ab2bf19 Show new segments as red points even when hovered 2020-04-13 21:59:23 +09:00
575b061dd7 Add change state support to more editor components 2020-04-09 22:02:42 +09:00
bfb056c612 Apply input method signature refactorings 2020-01-20 18:17:21 +09:00
50377e7286 Add summary xmldoc 2019-12-11 20:14:16 +09:00
e9ec6591a9 Separate path connections from control points 2019-12-10 11:20:08 +09:00
1b14b0e5b6 Fix pieces blocking context menu 2019-12-10 00:08:38 +09:00
0ee303f7d6 Remove unused using 2019-12-09 22:45:44 +09:00
af90b45c40 Refactor path visualisers to use bindables 2019-12-09 20:49:59 +09:00
247609388f Clean up unused/unnecessary properties 2019-12-06 12:31:22 +09:00
3ebbf62b2a Initial game-wide update with the new SliderPath 2019-12-05 19:53:36 +09:00
c56503ee88 Select single control point on right click 2019-11-13 17:29:00 +09:00
4c0bca5c07 Add ability to delete control points via right-click option 2019-11-13 16:38:15 +09:00
b1da81571f Implement slider head control point snapping 2019-11-07 14:00:12 +09:00
66253a0bd4 Handle selection on mouse down instead of click
This is how other elements work, and feels better with drag preselection
2019-11-05 02:21:50 +09:00
bcf8a6d514 Fix slider creation regressing with path selection changes 2019-11-03 19:59:37 +09:00
4dbdfcdd3c Change control to toggle rather than always select 2019-11-03 18:41:29 +09:00
8d50b155e8 Make selection happen on click only 2019-10-31 17:13:10 +09:00
e23a75c64a Implement control point selection 2019-10-31 16:23:54 +09:00
0af5706db6 Snap path during control point movement 2019-10-24 19:02:59 +09:00
bddaead72e Make hitobject pieces able to update dynamically 2019-09-27 18:45:22 +09:00
b3e046c4d1 Rename PathWidth to PathRadius 2019-03-07 17:39:19 +09:00
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
f3ba429701 Make sure control points is internally initialised 2018-11-12 17:14:06 +09:00
d594ce3530 Revert "Make SliderPath.ControlPoints read-only"
This reverts commit 3b88d94793.

# Conflicts:
#	osu.Game/Rulesets/Objects/SliderPath.cs
2018-11-12 16:20:38 +09:00
3b88d94793 Make SliderPath.ControlPoints read-only 2018-11-12 14:03:54 +09:00
54ab256c8e Instantiate a new path rather than setting properties on it
# Conflicts:
#	osu.Game.Rulesets.Catch/Beatmaps/CatchBeatmapConverter.cs
#	osu.Game.Rulesets.Catch/Objects/JuiceStream.cs
#	osu.Game.Rulesets.Osu/Beatmaps/OsuBeatmapConverter.cs
#	osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/SliderPath.cs
2018-11-12 13:50:19 +09:00
2612fd3099 Adjust ruleset-specific namespaces 2018-11-07 16:10:21 +09:00