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
Naxess
9df059b01d
Add bounding box limit
2021-03-24 17:25:28 +01:00
Naxess
e0240ab9d9
Increase exterior threshold
2021-03-24 05:55:34 +01:00
Naxess
4ae3eaaac6
Move path type correction
...
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
Naxess
0bcd38e661
Simplify path type maintenance when dragging
2021-03-24 02:57:47 +01:00
Naxess
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
Naxess
067178e537
Maintain path type when dragging/placing
2021-03-22 15:59:06 +01: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
27c38db14d
Add tooltips for slider path nodes which aren't inheriting
2021-03-19 16:58:08 +09:00
Dean Herbert
5f31304d05
Give each type of slider path type a unique colour to help visually distinguish them
2021-03-19 14:00:26 +09:00
smoogipoo
3aa3692ed4
Disable snaking out when tracking is disabled
2021-02-05 15:56:13 +09: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
ekrctb
245be2c5ed
Adjust namespace
2020-12-04 20:21:53 +09:00
Dan Balasescu
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
Dean Herbert
b256c54619
Scale slider control point display in line with circle size
2020-12-01 14:17:36 +09:00
Dean Herbert
c8c1848bb8
Fix slider control point dragging not correctly accounting for drag deadzone
2020-12-01 13:46:30 +09:00
Dean Herbert
9811c46e35
Rename application method to better describe what it actually does
2020-11-26 19:16:18 +09:00
smoogipoo
96abee3fde
Fix silent NRE in slider selection blueprint
2020-11-20 22:43:10 +09:00
Dean Herbert
b547abafb2
Fix slider right click context menus not being shown outside the valid playfield area
...
Closes #10816 .
2020-11-20 13:46:23 +09:00
kamp
2d66423fbd
Simplify inequality
2020-11-17 23:04:38 +01:00
kamp
c8fb49d540
Apply suggestions and remove redundant updateConnectingPath call
2020-11-17 22:23:46 +01:00
kamp
c6618f08aa
Fix slider control point connections not being updated
2020-11-16 21:26:08 +01: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
3f24fabb57
Add change handler support for contorl point deletion
2020-11-05 15:05:43 +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
af30d1201f
Fix slider path control point blueprint not working correctly
2020-05-22 18:57:28 +09:00
Dean Herbert
a9a1c00cf1
Move responsibility placement blueprint's StartTime set to within
2020-05-21 14:50:33 +09:00
Dean Herbert
82d6549161
Pass down snap result and remove local TimeAt usage
2020-05-20 21:01:29 +09:00
Dean Herbert
c46bfc2532
Create SnapResult class to hold various snapping results
2020-05-20 21:00:47 +09:00
Dean Herbert
3354d48a38
Change snapping to be screen space coordinate based
2020-05-20 21:00:29 +09:00
smoogipoo
8d5732aabd
Make placements happen on mouse down
2020-04-23 12:17:11 +09:00
Dean Herbert
2b2ab2bf19
Show new segments as red points even when hovered
2020-04-13 21:59:23 +09:00
smoogipoo
4cfc686683
Fix excption with 0 control points
2020-04-13 21:41:18 +09:00
Dean Herbert
63de493c85
Merge branch 'master' into fix-red-point-placement
2020-04-13 20:56:50 +09:00
Dean Herbert
64422fbf6d
Merge pull request #8697 from smoogipoo/more-change-state-support
...
Add change state support to more Editor components
2020-04-13 20:19:04 +09:00
smoogipoo
9a65aa18d7
Fix connections hidden due to overlapping controlpoints
2020-04-13 16:13:14 +09:00
smoogipoo
2c20328a70
Rework control point placement for better progression
2020-04-13 15:31:46 +09:00
smoogipoo
e17d5bdbaf
Improve red slider control point placement logic
2020-04-13 13:57:40 +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
Dean Herbert
0fe41fd50a
Fix blueprint showing even when mouse outside of container
2020-02-13 09:03:48 +09:00
Dean Herbert
e31d69c749
Add commit status to EndPlacement; call BeginPlacement on initial movement
2020-02-07 18:02:48 +09:00
smoogipoo
811ddb02a4
General refactoring
2020-01-24 17:50:36 +09:00
smoogipoo
6fc6a376ee
Fix incorrect slider selection point
2020-01-24 17:50:09 +09:00
Dean Herbert
7c62cc3ac3
Merge remote-tracking branch 'smoogipoo/void-mouse-up-returns' into update-framework
2020-01-22 22:57:52 +09:00
smoogipoo
7b2f58eb30
Apply OnRelease method signature refactorings
2020-01-22 13:22:34 +09:00
smoogipoo
bfb056c612
Apply input method signature refactorings
2020-01-20 18:17:21 +09:00
Dean Herbert
eed2984bef
Update sdk and InspectCode version ( #7208 )
...
Update sdk and InspectCode version
2019-12-16 19:46:12 +09:00
Huo Yaoyuan
c457571da6
Use index and range expressions
2019-12-15 20:17:35 +08:00
Dean Herbert
42a01a10dd
Merge remote-tracking branch 'upstream/master' into separate-path-connection
2019-12-11 20:14:29 +09:00
Dean Herbert
50377e7286
Add summary xmldoc
2019-12-11 20:14:16 +09:00
Dean Herbert
47b6b01739
Rename class to signify it is a drawable
2019-12-11 20:11:48 +09:00
Dean Herbert
d027c982e4
Merge branch 'master' into separate-path-connection
2019-12-11 19:03:14 +09:00
Dean Herbert
23959f3a3c
Move control point removal to SliderSelectionBlueprint
2019-12-11 18:58:35 +09:00
Dean Herbert
d82ba3e7f7
Curve -> Curve type
2019-12-11 18:20:28 +09:00
Dean Herbert
03040d1750
Don't show inherit menu item when first control point is selected
2019-12-11 18:18:16 +09:00
Dean Herbert
97ca2e2753
Add missing bezier option to menu
2019-12-11 17:58:59 +09:00
Dean Herbert
cda6757f52
Merge branch 'master' into path-type-menuitem
2019-12-11 16:43:55 +09:00
Dean Herbert
f515bdc599
Merge branch 'master' into separate-path-connection
2019-12-11 16:43:04 +09:00
Dean Herbert
632b1b9ee9
Merge branch 'master' into path-visualiser-refactor
2019-12-11 16:24:45 +09:00
Dean Herbert
f593caf0ea
Remove unused class
2019-12-10 18:08:51 +09:00
Dan Balasescu
42a979b495
Merge branch 'master' into path-visualiser-refactor
2019-12-10 16:33:45 +09:00
Dean Herbert
5f3d163772
Merge branch 'master' into segmented-slider-paths-3
2019-12-10 14:28:20 +09:00
smoogipoo
e9ec6591a9
Separate path connections from control points
2019-12-10 11:20:08 +09:00
Dean Herbert
1db218f908
Don't show count when deleting only one control point
...
Reads better.
2019-12-10 03:29:25 +09:00
smoogipoo
1b14b0e5b6
Fix pieces blocking context menu
2019-12-10 00:08:38 +09:00
smoogipoo
9b318d2869
Add right-click menu item to change path type
2019-12-10 00:07:07 +09:00
smoogipoo
0ee303f7d6
Remove unused using
2019-12-09 22:45:44 +09:00
smoogipoo
2c4c190f15
Fix control points not adding to last segment
2019-12-09 22:44:47 +09:00
smoogipoo
bd2b0af269
Consider having only 1 control point as being deleted
2019-12-09 22:36:19 +09:00
smoogipoo
af90b45c40
Refactor path visualisers to use bindables
2019-12-09 20:49:59 +09:00
smoogipoo
2dbf94f3ab
Make placement blueprint add an initial segment
2019-12-09 18:10:40 +09:00
smoogipoo
883d5bc11d
Remove automatic slider path offsetting
2019-12-09 17:54:22 +09:00
smoogipoo
53f7c753fb
General cleanups
2019-12-09 16:44:19 +09:00
smoogipoo
4905709ea4
Remove unused usings
2019-12-09 13:19:21 +09:00
smoogipoo
41437242a2
Add initial path type progression support
2019-12-06 19:39:25 +09:00
smoogipoo
52dd7bf716
Fix deleting the first control point not working
2019-12-06 18:49:14 +09:00
smoogipoo
16f8341a02
Handle control point positional updates within SliderPath
2019-12-06 18:49:01 +09:00
smoogipoo
2b5f9515de
Fix multiple control point deletions
2019-12-06 17:03:54 +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
a89a23fe08
Use linq to simplify some expressions
2019-12-06 13:08:35 +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
Huo Yaoyuan
818553027b
Merge branch 'master' into sharpen
2019-11-21 23:42:46 +08:00
smoogipoo
031b686ee9
Only accept input while hovered
2019-11-13 17:38:34 +09:00
smoogipoo
d835def4ab
Add point count to the menu item text
2019-11-13 17:36:46 +09:00
smoogipoo
c56503ee88
Select single control point on right click
2019-11-13 17:29:00 +09:00
smoogipoo
9c52d239b4
Return null to allow passthrough
2019-11-13 16:56:48 +09:00
smoogipoo
4c0bca5c07
Add ability to delete control points via right-click option
2019-11-13 16:38:15 +09:00
Huo Yaoyuan
7d7b9e36b2
Use compound assignment.
2019-11-12 19:53:50 +08: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
smoogipoo
10fd5ef5a7
Merge context menus
2019-11-12 15:02:27 +09:00
smoogipoo
461f76926f
Add right-click menu to support control point addition
2019-11-12 15:02:01 +09:00
smoogipoo
b1da81571f
Implement slider head control point snapping
2019-11-07 14:00:12 +09:00
Dean Herbert
52dba69a64
Implement slider control point deletion ( #6679 )
...
Implement slider control point deletion
Co-authored-by: Dean Herbert <pe@ppy.sh>
2019-11-05 19:15:15 +09:00
smoogipoo
d77882c21b
Fix slider selection input handled outside path
2019-11-05 17:31:52 +09:00
smoogipoo
7c20a589f2
Remove unused usings
2019-11-05 13:56:21 +09:00
smoogipoo
c8beb5296f
Use PlatformAction.Delete instead of Delete key
2019-11-05 13:26:44 +09:00
smoogipoo
08bd811326
Merge remote-tracking branch 'origin/master' into slider-controlpoint-deletion
...
# Conflicts:
# osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/Components/PathControlPointVisualiser.cs
2019-11-05 13:07:06 +09:00
Dean Herbert
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
Dean Herbert
bcf8a6d514
Fix slider creation regressing with path selection changes
2019-11-03 19:59:37 +09:00
Dean Herbert
f69a641d35
Merge branch 'master' into slider-controlpoint-deletion
2019-11-03 19:32:10 +09:00
Dean Herbert
1155aacd90
Update sliders when control points change ( #6680 )
...
Update sliders when control points change
2019-11-03 19:05:48 +09:00
Dean Herbert
f849926049
Merge branch 'master' into slider-controlpoint-deletion
2019-11-03 19:05:17 +09:00
Dean Herbert
4dbdfcdd3c
Change control to toggle rather than always select
2019-11-03 18:41:29 +09:00
smoogipoo
41ae66d517
Update slider when control points change
2019-10-31 18:24:38 +09:00
smoogipoo
18f374eec6
Deselect deleted control points
2019-10-31 17:58:33 +09:00
smoogipoo
78194cfa6e
Implement slider control point deletions
2019-10-31 17:54:09 +09:00
smoogipoo
43b2cbb865
Implement slider control point deletion
2019-10-31 17:39:57 +09:00
smoogipoo
20aeb7aaff
Implement multiple selection
2019-10-31 17:25:30 +09:00
smoogipoo
8d50b155e8
Make selection happen on click only
2019-10-31 17:13:10 +09:00
smoogipoo
cfdf710676
Add test
2019-10-31 16:51:58 +09:00
smoogipoo
e23a75c64a
Implement control point selection
2019-10-31 16:23:54 +09:00
Dean Herbert
194e501f86
Merge branch 'master' into snapping-refactor
2019-10-26 14:20:08 +09:00
smoogipoo
da6ee05dd6
Fix not being able to drag non-snaked sliders
2019-10-25 18:37:44 +09:00
smoogipoo
607b4d874a
Refactor flow of snapping through HitObjectComposer
2019-10-25 16:40:30 +09:00
smoogipoo
a6458fdeab
Re-use slider type
2019-10-24 19:04:24 +09:00
smoogipoo
b7af4acdbf
Allow not having a composer
2019-10-24 19:04:00 +09:00
smoogipoo
0af5706db6
Snap path during control point movement
2019-10-24 19:02:59 +09:00
smoogipoo
f45f17339c
Implement slider path distance snapping
2019-10-24 18:17:30 +09:00
smoogipoo
436941cda3
Add comment
2019-10-23 17:58:44 +09:00
smoogipoo
b903edca45
Don't snap slider control point placement
2019-10-23 16:03:16 +09:00
smoogipoo
79b2c7b480
Make BeginPlacement() set the hitobject start time
2019-10-16 20:04:15 +09:00
Dean Herbert
179cde917b
Merge branch 'master' into rework-selection-updates
2019-10-06 15:00:56 +08:00
smoogipoo
652acac87f
Move placement movement event to BlueprintContainer
2019-10-03 16:14:42 +09:00
smoogipoo
90ad1c5166
Add more tests for slider selection blueprint
2019-10-01 19:33:27 +09:00
smoogipoo
bddaead72e
Make hitobject pieces able to update dynamically
2019-09-27 18:45:22 +09:00
smoogipoo
4fc37d1137
Remove SliderPiece + HitObjectPiece
2019-09-27 18:01:55 +09:00
smoogipoo
f64fe22f36
Remove bindables from osu! selection blueprints
2019-09-27 18:00:24 +09:00
Dean Herbert
e50b70d615
Centralise osu! circle radius specification
2019-07-22 14:40:02 +09:00
Dean Herbert
c39c37a18d
Apply more missed cases
2019-04-01 12:44:46 +09:00
Dean Herbert
612db31c38
Apply newline additions
2019-04-01 12:16:32 +09:00
Dean Herbert
340997f505
Rename remaining usage of PathWidth naming convention
2019-03-07 20:21:59 +09:00
David Zhao
b3e046c4d1
Rename PathWidth to PathRadius
2019-03-07 17:39:19 +09:00
Dean Herbert
367bc53a06
Revert some more instances of 'e' variable names
2019-02-22 20:15:25 +09:00
smoogipoo
d8c55bc729
Adjust namespaces
2019-02-21 19:05:52 +09:00
smoogipoo
bca347427f
Update with framework bindable changes
2019-02-21 18:56:34 +09:00
ProgrammaticNajel
0797f5d644
Update SliderPlacementBlueprint.cs
2019-01-26 22:56:31 +08:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
smoogipoo
56032a4522
Merge branch 'mania-selection-movement' into inter-column-movements
...
# Conflicts:
# osu.Game.Rulesets.Mania/Edit/Blueprints/ManiaSelectionBlueprint.cs
# osu.Game/Screens/Edit/Compose/Components/SelectionHandler.cs
2018-11-26 11:45:48 +09:00
smoogipoo
f27bd3ef3e
OpenTK -> osuTK
2018-11-20 17:14:59 +09:00
smoogipoo
4cbda97b1e
Move positional adjustment to SelectionBox
2018-11-16 17:12:24 +09:00
smoogipoo
df7515b66f
Pass all selected hitobjects to the selection blueprints
2018-11-15 21:01:09 +09:00
smoogipoo
050af88be9
Fix post-merge issues
2018-11-14 14:29:22 +09:00
smoogipoo
29422345f7
Merge remote-tracking branch 'origin/master' into fix-mask-disposal
...
# Conflicts:
# osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/Components/PathControlPointVisualiser.cs
# osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/Components/SliderCirclePiece.cs
# osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs
# osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSliderHead.cs
# osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSliderTail.cs
# osu.Game.Rulesets.Osu/Objects/Slider.cs
2018-11-14 14:03:25 +09:00
smoogipoo
f3ba429701
Make sure control points is internally initialised
2018-11-12 17:14:06 +09:00
smoogipoo
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
smoogipoo
3b88d94793
Make SliderPath.ControlPoints read-only
2018-11-12 14:03:54 +09:00
smoogipoo
51e4feeda7
Adjust to new path structure
2018-11-12 13:55:14 +09:00
smoogipoo
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
smoogipoo
13279f707b
Cleanups
2018-11-09 14:19:50 +09:00
smoogipoo
cc8531790a
Use bindables for hitobject events
2018-11-09 13:58:46 +09:00
smoogipoo
5d51719572
Make selection blueprints handle position adjustments
2018-11-07 16:21:32 +09:00
smoogipoo
2612fd3099
Adjust ruleset-specific namespaces
2018-11-07 16:10:21 +09:00