Dean Herbert
4d71f2084c
Move individual mask selection logic out of MaskSelection
2018-04-04 18:29:53 +09:00
Dean Herbert
788bfde002
Merge branch 'master' into selectionlayer-rewrite
2018-04-04 15:38:27 +09:00
Huo Yaoyuan
b842f682eb
Use Linq.Append and Prepend.
2018-04-02 12:06:34 +08:00
smoogipoo
1dca1663c3
Handle all selection events within SelectionBox (incl. single-mask)
2018-03-30 15:50:55 +09:00
smoogipoo
6d4f94756e
Rewrite the way drag + click selections happen
...
The general idea here is that we need the masks to handle mouse down events, as they need to handle the drag (mousedown -> drag immediately).
I've rewritten the editor selections to use events, as there are some 3 different components that handle/trigger selections in different ways.
1. All selections/deselections now propagate through `HitObjectMask.Select()`/`HitObjectMask.Deselect()`.
2. Components that react to changes in the selection bind to the masks' `Selected`/`Deselected` events, and track them/change their states locally.
3. Masks provide a `SingleSelectionRequested` event which is invoked on the mouse-down event. Various components bind to this event to perform state changes locally in this scenario.
4. `DragBox` now handles all drag input locally. It triggers `Select`/`Deselect` on the masks it needs to.
5. `SelectionBox` handles the display of itself locally.
6. `SelectionBox` handles movement of groups of masks locally.
7. `HitObjectMasks` handles movement of itself locally.
2018-03-29 22:07:23 +09:00
smoogipoo
6314694557
Make HitObjectMaskLayer always create masks for all objects
2018-03-29 17:13:45 +09:00
smoogipoo
786e6242e1
Make bdl beat divisor nullable
2018-03-20 14:01:06 +09:00
smoogipoo
b1d09500f2
Integrate beat snap divisor into editor seeking
2018-03-19 20:42:06 +09:00
smoogipoo
e25d1f6982
Pass down editor clocks through DI
2018-03-19 16:27:52 +09:00
Dean Herbert
4b83278cf4
Merge branch 'master' into fix-editor-clocks
2018-03-16 23:32:54 +09:00
smoogipoo
6f7163769d
Adjust comment for readability
2018-03-16 19:57:14 +09:00
Dean Herbert
bca4b620b6
Merge branch 'master' into editor-wheel-movement
2018-03-16 15:56:51 +09:00
smoogipoo
fc15c63a88
Re-order methods
2018-03-15 18:28:08 +09:00
smoogipoo
c937ef5d24
Fix not being able to scroll before the first timing point
2018-03-15 18:26:53 +09:00
smoogipoo
c8f6a6980b
Move clock construction to Editor
2018-03-15 17:27:37 +09:00
smoogipoo
9e0aeec574
Use a decoupled clock for accurate clock times
2018-03-15 17:03:33 +09:00
smoogipoo
50f9d810dd
Add more testcases + fix up seeking a bit more
2018-03-15 15:40:52 +09:00
smoogipoo
0da3ae0944
Add some basic tests + fixes to seek/seekforward functionality
2018-03-14 20:52:48 +09:00
Dean Herbert
81f82d98a1
Rework a lot of naming and structure
2018-03-14 15:18:21 +09:00
smoogipoo
299de4b866
Rewrite seeking to better handle timing point boundaries
2018-03-13 16:54:34 +09:00
smoogipoo
df352c98d6
Change wheel direction to match stable
2018-03-13 14:30:50 +09:00
smoogipoo
e580819621
Rename to seekAmount
2018-03-13 14:08:43 +09:00
smoogipoo
6c148930b5
Don't skip beats when scrolling in the direction of the closest beat
2018-03-13 14:02:37 +09:00
smoogipoo
8acba47a2b
Implement mouse wheel movement in the editor
2018-03-13 11:23:44 +09:00
smoogipoo
4103c66cff
Move selection overlay to HitObjectOverlayLayer for extensibility
2018-03-10 00:48:57 +09:00
smoogipoo
ad72d3816b
Allow dragging anywhere in a capture box to move objects
2018-03-09 23:43:50 +09:00
smoogipoo
278b25bcbd
Fix border being the wrong size
2018-02-23 15:29:56 +09:00
smoogipoo
45c579630d
Make selectionLayer handle input below object overlays
2018-02-22 14:34:37 +09:00
smoogipoo
07252254eb
Fix post-merge issues
2018-02-22 14:22:04 +09:00
smoogipoo
99e9eb81f2
Merge remote-tracking branch 'origin/master' into editor-hitobject-overlays
2018-02-22 14:16:01 +09:00
Dean Herbert
7c942eb592
Tidy up layer container logic
2018-02-22 13:42:36 +09:00
smoogipoo
4934ef7429
Add playfield aspect ratio + scaling modifications to composer layers
2018-02-21 11:07:42 +09:00
smoogipoo
ad2f556133
Add hitobject overlays to selected hitobjects
2018-02-20 18:01:45 +09:00
smoogipoo
8f25a5da66
Add playfield aspect ratio + scaling modifications to composer layers
2018-02-20 14:01:33 +09:00
Dean Herbert
37d393bca0
Update licence headers
2018-01-05 20:21:19 +09:00
Dean Herbert
6f5f4f76e5
Use Logger.Error when exceptions are involved
2017-12-25 18:21:15 +09:00
smoogipoo
666dcdbd62
Give HitObjectComposer a SelectionLayer
2017-12-11 22:20:02 +09:00
smoogipoo
a80059032c
Remove PlayfieldOverlay
2017-12-02 20:24:10 +09:00
smoogipoo
5a7c4772bd
Remove PlayfieldUnderlay for now
2017-12-02 19:53:20 +09:00
smoogipoo
c0c051aa32
Remove unused parameter for now
2017-11-30 21:58:41 +09:00
smoogipoo
e8cbde3ae1
Add overlay/underlay
2017-11-30 21:56:19 +09:00
smoogipoo
7e34b0f08d
Remove SelectionTool, make Select the default tool
2017-11-30 19:53:52 +09:00
smoogipoo
677f3653eb
Hide osu! playfield cursor
2017-11-30 19:19:34 +09:00
smoogipoo
efa39f38ca
CI fixes
2017-11-30 18:49:08 +09:00
smoogipoo
e5353bb53e
Add border to playfield, add shadow to toolbox buttons
2017-11-30 17:38:55 +09:00
smoogipoo
456bbe25f3
Implement toolbox into HitObjectComposer
2017-11-30 16:58:14 +09:00
smoogipoo
309eb4edd7
Integrate HitObjectComposer into Compose
...
Also removes the other rulesets' HitObjectComposers for now.
2017-11-29 17:46:21 +09:00
smoogipoo
8c30fd490c
Add HitObjectComposer class
2017-11-29 16:22:11 +09:00