OliBomby
e3b4483872
Refactor PlacementBlueprint to not be hitobject specific
2024-09-24 20:31:00 +02:00
Bartłomiej Dach
f3617eadad
Fix editing juice stream path sometimes changing its duration
...
I'm not *super* sure why this works, but it appears to, and my educated
guess as to why is that it counteracts the effects of a change in the SV
of the juice stream by artificially increasing or decreasing the
velocity when running the appropriate path conversions and expected
distance calculations. The actual SV change takes effect on the next
default application, which is triggered by the `Update()` call at the
end of the method.
2024-07-22 15:14:45 +02:00
Bartłomiej Dach
56af009e77
Fix EditablePath.UpdateHitObjectFromPath()
not automatically updating object
...
This is important because the editable path conversions heavily depend
on the value of `JuiceStream.Velocity` being correct. The value is only
guaranteed to be correct after an `ApplyDefaults()` call, which is
triggered by updating the object via `EditorBeatmap`.
2024-07-22 14:50:25 +02:00
Bartłomiej Dach
6b3c1f4e47
Unify juice stream piece UX with osu! control point pieces
...
- Use same hover state
- Use shift-right click for quick delete rather than shift-left click
2024-07-22 13:30:15 +02:00
Bartłomiej Dach
47964f33d7
Fix catch juice stream vertex remove operation not undoing
2024-07-22 13:21:49 +02:00
Bartłomiej Dach
64381d4087
Fix catch juice stream vertex add operation not undoing
2024-07-22 12:18:53 +02:00
Bartłomiej Dach
659505f711
Adjust calls to GetContainingInputManager()
2024-06-18 07:41:19 +02:00
OliBomby
ec578e1d9f
fix near-zero length sliders n stuff being placeable
2023-12-19 21:20:21 +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
1a37543d28
Rename SliderVelocity
to SliderVelocityMultiplier
to distinguish from Velocity
2023-09-06 19:01:08 +09:00
Dean Herbert
d12845d7b1
Remove no-longer-necessary ReceivePositionalInputAt
overide in CatchPlacementBlueprint
2023-07-12 17:39:54 +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
OliBomby
d2d81bb82c
remove redundant zero check in sv calculation
2023-05-02 12:29:11 +02:00
OliBomby
79f3cfec91
fix 0 velocity juicestream
2023-04-30 16:43:26 +02:00
OliBomby
c44f71a737
remove all regular usage of DifficultyControlPoint
2023-04-26 17:55:38 +02:00
ekrctb
d664a66a37
Remove redundant canBeNull: true
2023-01-15 23:11:59 +09:00
ekrctb
a75fc5108a
Remove #nullable disable from Catch.Edit namespace
2023-01-15 17:29:32 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
105aa01e7d
Update usages of RemoveInternal
2022-08-29 15:57:40 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
c7e9bd7751
Merge branch 'master' into catch-editor-per-object-sv
2022-05-09 19:18:01 +09:00
Dan Balasescu
45c6f5edef
Merge pull request #18158 from ekrctb/fix-banana-shower-placement-negative-duration
...
Fix duration is negative while placing banana shower in catch editor
2022-05-09 11:26:06 +09:00
ekrctb
158f134260
Fix duration is negative while placing banana shower in catch editor.
...
Timeline blueprint is glitched when the hit object has negative duration.
Negative duration is unwanted anyways so placement implementation is fixed instead of supporting it in timline blueprint.
2022-05-09 00:01:05 +09:00
ekrctb
483a611c41
Fix BeginPlacement
location.
2022-05-08 23:10:51 +09:00
ekrctb
7daa3d8eb7
Remove now-redundant velocity calculation
...
Velocity is computed from the up-to-date SV now.
2022-05-08 22:36:33 +09:00
ekrctb
37c9aac49f
Make ScrollingPath
use time instead of distance.
...
This is consistent as other components now use time instead of distance.
2022-05-08 22:36:33 +09:00
ekrctb
0e98bb28bd
Fix wrong resampling times are used for juice stream path
2022-05-08 22:36:33 +09:00
ekrctb
9ffa90602b
Automatically set slider velocity from juice stream path
2022-05-08 22:36:33 +09:00
ekrctb
4e0155fa4b
Make JuiceStreamPath
time based instead of distance based.
...
And remove the "slope limit" feature.
TODO: for a juice stream with a large slope, the slider velocity of the hit object should be changed.
2022-05-08 22:36:33 +09:00
ekrctb
125628dd20
Fix hit object not shown in timline while placement is waiting
2022-05-08 15:52:14 +09:00
Dean Herbert
6dcd9427ac
Remove bindable usage in PathControlPoint
...
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.
I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
ekrctb
bd3386e770
Fix previously placed vertices in juice stream placement
...
A different UX than not fixing vertices.
2021-07-23 10:18:37 +09:00
ekrctb
4509c8bcfb
Use the more consistent lastVertex
, with a comment
2021-07-23 10:13:55 +09:00
ekrctb
d49d303bae
Call GetContainingInputManager
at LoadComplete
2021-07-23 10:10:55 +09:00
ekrctb
64102d2972
Add initial implementation of juice stream placement
2021-07-22 15:47:23 +09:00
ekrctb
2beef89c23
Add empty juice stream placement blueprint (no implementation)
2021-07-22 15:47:23 +09:00
ekrctb
d93bf5be80
Don't handle mouse down at fixed vertices
2021-07-22 12:58:39 +09:00
ekrctb
cd447f0305
Add some doc comment to JuiceStreamSelectionBlueprint
2021-07-21 13:27:07 +09:00
ekrctb
cc0110aa52
Add doc comment to VertexState
2021-07-21 13:17:18 +09:00
ekrctb
97fba5df58
Use existing method for the same code
2021-07-21 12:59:42 +09:00
ekrctb
ca3dfb2498
Fix comment
2021-07-21 12:53:48 +09:00
ekrctb
8586458704
Implement vertex deletion in juice stream selection blueprint
2021-07-19 22:53:32 +09:00
ekrctb
08f8d4e65e
Implement vertex addition in juice stream selection blueprint
2021-07-19 22:53:32 +09:00
ekrctb
8cc1630655
Add initial juice stream editing
2021-07-19 22:53:32 +09:00
ekrctb
c347584851
Use added utility function
2021-07-19 13:33:46 +09:00
ekrctb
f1aa99e103
Fix catch selection blueprint not displayed after copy-pasted
2021-07-07 21:03:26 +09:00
ekrctb
7d76fcf2b6
Fix hit object placement not receiving input when outside playfield
...
The input area is vertical infinite, but horizontally restricted to the playfield due to `CatchPlayfield`'s `ReceivePositionalInputAt` override.
2021-07-07 16:18:21 +09:00
ekrctb
7b21d1ecf9
Fix juice stream outline disappears away when start position is outside the screen.
2021-07-06 19:50:32 +09:00
ekrctb
2ba3003934
Add nested fruit outlines to juice stream selection blueprint
2021-07-06 17:15:51 +09:00
ekrctb
7833a1b09a
Allow FruitOutline
to be used for nested hit objects
2021-07-06 17:15:27 +09:00