Commit Graph

223 Commits

Author SHA1 Message Date
3db995c778 Fix sliders jumping around the screen on movement 2021-05-24 17:15:57 +09:00
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +09:00
532c41c82e Remove nested blueprints from sliders 2021-05-18 14:19:11 +09:00
e621cfc4ea Add Apply() method for applying new DHOs 2021-05-18 14:14:10 +09:00
ffb6135a1b Rework hitobject blueprints to take in hitobject models 2021-05-13 19:53:32 +09:00
01d732bb65 Revert "Refactor SliderSelectionBlueprint to not reference blueprint pieces for input handling"
This reverts commit 54fe10c82a.
2021-05-08 23:33:03 +09:00
63e267a3be Revert "Trim redundant this qualifier"
This reverts commit df630d9428.
2021-05-08 23:32:52 +09:00
df630d9428 Trim redundant this qualifier 2021-05-08 14:53:19 +02:00
54fe10c82a Refactor SliderSelectionBlueprint to not reference blueprint pieces for input handling 2021-05-07 10:36:03 +09:00
39067e6926 Fix slider input handling potentially being offset after composer area resize
Closes https://github.com/ppy/osu/issues/12671.
2021-05-06 17:19:19 +09:00
f2e56bd306 Refactor editor selection/blueprint components to be generic 2021-04-27 19:01:29 +09:00
ec1c336b0a Fix a couple of inspections 2021-04-27 13:23:14 +09:00
89373638be Handle control point deletion when the resulting slider would be too short to be useful 2021-04-16 15:45:24 +09:00
2949a6bbdc Handle control point drag revert 2021-04-16 15:45:24 +09:00
d38e294d96 Centralise length validation function 2021-04-16 15:45:24 +09:00
965a1ead36 Disallow zero-length slider blueprint placements 2021-04-16 14:38:30 +09:00
5c0ef55691 Rename SliderPlacementState to make way for more generic version 2021-04-16 14:09:35 +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
f64b2095bf Carry over the previous path type 2021-04-09 11:04:00 +02:00
9a675a2219 Correct 4+ point perfect curves to Bezier 2021-04-08 12:33:43 +02:00
be4520fe33 Fix index out of range possibility 2021-04-08 11:46:00 +02:00
0341023d13 Improve UX of selecting PerfectCurve 2021-04-08 09:06:28 +02:00
725edfcbf3 Add path type menu change method 2021-04-08 09:05:35 +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
51f0477df4 Move bounding box logic to framework 2021-03-26 04:42:46 +01:00
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
9df059b01d Add bounding box limit 2021-03-24 17:25:28 +01:00
e0240ab9d9 Increase exterior threshold 2021-03-24 05:55:34 +01:00
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
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
e67c759eef Mark control point visualiser as possibly-null 2021-03-19 22:44:31 +01:00
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
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
3aa3692ed4 Disable snaking out when tracking is disabled 2021-02-05 15:56:13 +09:00
02d2b2742b Fix selection box not updating with hitcircles/sliders far in the future or past 2021-01-18 16:57:36 +09:00
245be2c5ed Adjust namespace 2020-12-04 20:21:53 +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
9811c46e35 Rename application method to better describe what it actually does 2020-11-26 19:16:18 +09:00
96abee3fde Fix silent NRE in slider selection blueprint 2020-11-20 22:43:10 +09:00
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