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
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Salman Ahmed
b6d2ca7709
Clarify TODO comment
2022-04-28 10:57:14 +03:00
Salman Ahmed
bfc6bfc91b
Let CatchHitObjectComposer
inherit from DistancedHitObjectComposer
and hide control
2022-04-28 06:44:50 +03:00
Salman Ahmed
8ed39009fd
Encapsulate distance spacing control handling to a "distance toolbox composite"
...
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
Salman Ahmed
19ee05c232
Add "distance spacing" multiplier for osu! ruleset
...
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
Dean Herbert
5c0494f3ba
Remove unnecessary precondition check and disallow vertical catch flips for now
2022-01-06 14:39:29 +09:00
Dean Herbert
6779503e57
Refactor logic to avoid TimelineSelectionHandler
having to block base calls
2022-01-05 16:56:54 +09:00
Dean Herbert
866ae3472b
Add global flip hotkeys
2022-01-05 16:48:07 +09:00
Darius Wattimena
d370f64ac3
Changed finding the spinner gaps via a dictionary instead of getting the thresholds via an array
2021-11-10 19:58:36 +01:00
Darius Wattimena
bd5caceeb1
Fixed typo in banana shower gap check message
2021-11-10 00:23:14 +01:00
Darius Wattimena
5d8f35f3c9
Code cleanup and added tests for the spinner check
2021-11-10 00:16:29 +01:00
Darius Wattimena
fbfed16756
Started on implementing a spinner gap check for catch
2021-11-09 23:05:25 +01:00
ekrctb
393d118eef
Fix compilation failure overlooked in merge
2021-10-26 20:20:43 +09:00
ekrctb
e5050b90a5
Don't assume catcher dash speed is 2x the walk speed
2021-10-26 20:09:48 +09:00
ekrctb
de7a908be2
Cut distance snap lines at playfield border in catch editor
2021-10-26 14:51:52 +09:00
ekrctb
c5d765029c
Don't compute source object for distance snap grid when it is not enabled
2021-10-26 11:17:04 +09:00
ekrctb
b7a719de71
Rename method
2021-10-26 11:14:12 +09:00
ekrctb
068217557e
Add doc comment on catch distance snap grid
2021-10-26 11:12:10 +09:00
ekrctb
9f49a1df8b
Handle the case of cursor below the start time of distance snap
2021-10-26 11:00:55 +09:00
ekrctb
865be5a10b
Fix distance snap grid rendering inverted when out of bounds
2021-10-26 11:00:44 +09:00
ekrctb
2c92f1a0b7
Use array for fixed-size list
2021-10-26 10:41:17 +09:00
ekrctb
6d1cd0a3a1
Add distance snapping to catch editor
2021-10-25 16:37:44 +09:00
ekrctb
60df0151c0
Add very basic distance snap grid for catch editor
2021-10-25 15:25:59 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +09:00
Dean Herbert
a92d499d7a
Convert usages of BeatmapDifficulty
to IBeatmapDifficultyInfo
2021-10-01 16:55:50 +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
Dean Herbert
a7d6c682de
Merge pull request #13983 from ekrctb/juice-stream-placement
...
Add initial implementation of juice stream placement
2021-07-23 13:52:25 +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
9fff304554
Implement reversing of selected pattern in catch editor
2021-07-22 17:00:08 +09:00
ekrctb
dc90e4d24c
EditorBeatmap.SelectedHitObjects
-> SelectedItems
(same thing)
2021-07-22 16:52:47 +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
Dean Herbert
e8aaf4df16
Merge pull request #13961 from ekrctb/catch-editor-flip
...
Implement horizontal flipping of hit objects in catch editor
2021-07-22 15:27:59 +09:00
Dean Herbert
1d2fdd9841
Merge pull request #13937 from ekrctb/selection-editable-path
...
Add initial implementation of juice stream path editing
2021-07-22 14:48:02 +09:00
Dean Herbert
2151c1863e
Rename variables for catch-specific casting to avoid any confusion
2021-07-22 14:07:32 +09:00
ekrctb
19657cd00e
Guard against empty range in PositionRange
2021-07-22 13:29:32 +09:00
ekrctb
7b6981c632
Don't show the flip button when flipping is a no-op
2021-07-22 13:29:32 +09:00
ekrctb
d93bf5be80
Don't handle mouse down at fixed vertices
2021-07-22 12:58:39 +09:00
Dean Herbert
73866c2837
Merge branch 'master' into catch-editor-flip
2021-07-21 19:54:39 +09:00
ekrctb
d2d3214d47
Implement horizontal flipping of hit objects in catch editor
2021-07-21 16:07:02 +09:00
ekrctb
4c8b9c168e
Use added position range computation in hit object move handling
2021-07-21 16:06:34 +09:00
ekrctb
60f876511d
Add function of computing position range occupied by hit objects
2021-07-21 16:06:34 +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
50f9e5f362
Replace usage of CatcherArea.MovableCatcher
with Catcher
2021-07-19 19:52:40 +09:00
ekrctb
c347584851
Use added utility function
2021-07-19 13:33:46 +09:00
ekrctb
70c9d7105f
Add a function to compute hit object position in catch editor
2021-07-19 13:33:22 +09:00
Bartłomiej Dach
c5011865fc
Invert strangely negated condition
2021-07-10 11:23:38 +02:00
Bartłomiej Dach
494089e402
Fix up English in comment
2021-07-10 11:22:54 +02:00
ekrctb
995ef953c6
Modify comment
2021-07-09 15:13:54 +09:00
ekrctb
7e14679606
Expand the selection movement limiting code with detailed comments
2021-07-09 12:58:08 +09:00
ekrctb
c937c45360
Don't move selected objects outside the playfield in catch editor
2021-07-08 18:49:32 +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
115376c538
Add playfield border to catch editor
2021-07-07 16:14:45 +09:00
Dean Herbert
fd46d30f29
Merge pull request #13795 from ekrctb/juice-stream-selection-1
...
Add path visualization to juice stream selection blueprint
2021-07-07 15:24:39 +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
ekrctb
0fa7716ced
Show path of juice stream in selection blueprint
2021-07-06 16:46:12 +09:00
ekrctb
7ef7c5148f
Add ScrollingPath
for visualization of the real path of a JuiceStream
2021-07-06 16:41:53 +09:00
ekrctb
175d666906
Use getters of OriginalX
and XOffset
2021-07-06 15:32:32 +09:00
ekrctb
125e143401
Fix banana shower placement outline initial opacity
2021-06-23 10:27:40 +09:00
ekrctb
5a5cb39c9f
Add some comments about logic
2021-06-23 10:27:40 +09:00
ekrctb
69c8865a04
Use more consistent method names
2021-06-23 10:19:25 +09:00
ekrctb
a9b8736f70
Order field and properties consistently
2021-06-23 10:18:44 +09:00
ekrctb
e96814bb86
Remove comment about using skin for blueprint
...
As the current game-wise direction is not using skin elements in blueprints.
The design of the blueprint could be improved somehow, though.
2021-06-23 09:37:30 +09:00
ekrctb
1a7bfafc69
Add icon for composition tools
2021-06-23 09:34:11 +09:00
ekrctb
21331d3a13
Disable caught object stacking in editor
2021-06-22 17:20:13 +09:00
ekrctb
e8907b53a8
Add basic banana shower placement tool
2021-06-22 17:20:13 +09:00
ekrctb
4d7a877795
Add basic fruit placement tool
2021-06-22 17:20:13 +09:00
ekrctb
0078d7dc18
Add outline to selected fruit
2021-06-22 17:20:13 +09:00
ekrctb
c28cd5dd75
Add basic juice stream selection blueprint
2021-06-22 17:20:13 +09:00
ekrctb
b8ccfe6ea7
Add basic selection blueprint movement logic
2021-06-22 17:20:13 +09:00
ekrctb
fbe44dac34
Add empty catch hit object composer
2021-06-22 17:20:13 +09:00