Dean Herbert
9a6857bfad
Merge pull request #25530 from yesseruser/FlagHUD
...
Fix skin element "PlayerFlag" responding to clicks/hovers
2023-11-23 16:51:09 +09:00
Dean Herbert
191e8c5487
Add note about skin editor reload jank
2023-11-23 16:39:05 +09:00
Bartłomiej Dach
abbcdaa7f7
Fix skin editor crashing when pasting with nothing in clipboard
2023-11-23 09:55:27 +09:00
Dean Herbert
aa749aeb73
Save any unsaved changes in the skin editor when game changes screens
...
Closes https://github.com/ppy/osu/issues/25494 .
2023-11-21 17:49:57 +09:00
Dean Herbert
405ab499e9
Allow context menus to have visible spacers
2023-11-21 14:24:10 +09:00
Bartłomiej Dach
ccfdf1ffd6
Merge pull request #25402 from peppy/skin-size-editing
...
Add support for adjusting size of skin elements
2023-11-12 07:31:51 +09:00
Dean Herbert
b0aa4a4257
Add "export" item to skin editor menu
2023-11-11 20:34:35 +09:00
Bartłomiej Dach
8d7539ab70
Merge branch 'master' into skin-size-editing
2023-11-11 19:56:09 +09:00
Bartłomiej Dach
2428a97d44
Fix editor not clearing undo history on skin change
2023-11-11 18:49:44 +09:00
Dean Herbert
35e11c7c63
Rename diagonal scale variable and update xmldoc
2023-11-10 17:55:02 +09:00
Dean Herbert
f25489cc7b
Check X/Y sizing available separately to fix weird edge cases
2023-11-10 17:54:43 +09:00
Dean Herbert
175dae49c6
Reset scale per axis
2023-11-10 14:43:51 +09:00
Dean Herbert
fb361a4e0a
Reset size along with scale for relative items
2023-11-10 14:25:55 +09:00
Dean Herbert
ec3b6e47fb
Change selection handling to adjust Size
instead of Scale
for edge nodes
2023-11-10 14:22:28 +09:00
Dean Herbert
1f0b914251
Add skin editor dropdown items to reset rotation and scale
2023-11-06 16:18:33 +09:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Bartłomiej Dach
a200d043be
Merge pull request #24698 from Wleter/skin-editor-closest-anchor
...
Fix closest anchor for rotated/flipped selections in skin editor
2023-09-04 10:29:05 +02:00
Wleter
fc4069f794
let SelectionBox perform flip with scale handles
2023-09-01 13:01:51 +02:00
Wleter
47160f7744
make getClosestAnchor work with rotated drawable
2023-08-31 20:24:26 +02:00
Wleter
f277909470
maintain rotated selection's centre position
2023-08-30 09:16:16 +02:00
Wleter
ce1bc71567
formatting
2023-08-29 18:41:56 +02:00
Wleter
586ce6e8d3
fix multiple selected
2023-08-29 17:47:42 +02:00
Wleter
d56ab0fe9a
change names
2023-08-29 17:25:52 +02:00
Wleter
3c575516ab
add correct scaling for 90 degrees rotation
2023-08-29 17:06:23 +02:00
Wleter
07e126241d
working negative scaling
2023-08-28 16:41:55 +02:00
Wleter
9f4f81c150
accumulating negative scaling
2023-08-21 19:36:11 +02:00
Wleter
d2798c7a1c
don't allow negative scaling
2023-08-20 17:55:19 +02:00
Bartłomiej Dach
dde03b7d46
Merge branch 'master' into playfield-skin-layer
2023-08-03 20:42:15 +02:00
Bartłomiej Dach
d65f08a048
Merge pull request #24427 from peppy/fix-skin-editor-crash-multi-spectator
...
Fix game crashing when entering skin editor in multiplayer spectator
2023-08-01 18:25:11 +02:00
Dean Herbert
72005bef7c
Fix skin editor crashing if the same component is provided twice
2023-07-31 15:10:58 +09:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler
a Component
2023-07-30 20:18:33 +02:00
Dean Herbert
5bd06832d0
Fix skin component toolbox not working correctly for ruleset matching
...
Until now, the only usage of ruleset layers was where there is both a
ruleset specific and non-ruleset-specific layer present. The matching
code was making assumptions about this.
As I tried to add a new playfield layer which breaks this assumption,
non-ruleset-specifc components were not being displayed in the toolbox.
This turned out to be due to a `target` of `null` being provided due to
the weird `getTarget` matching (that happened to *just* do what we
wanted previously due to the equals implementation, but only because
there was a container without the ruleset present in the available
targets).
I've changed this to be a more appropriate lookup method, where the
target for dependency sourcing is provided separately from the ruleset
filter.
2023-07-28 15:50:44 +09:00
Bartłomiej Dach
f8047d6ab6
Migrate skin element rotation handling to SelectionRotationHandler
2023-07-23 20:56:22 +02:00
Bartłomiej Dach
4622255cc7
Move out helper methods to static class
2023-07-23 18:24:20 +02:00
Dean Herbert
cf3949c9e2
Fix double-click handling when cyclic selection is enabled
...
Removes the limitations of cyclic selection as a result.
2023-07-19 17:21:20 +09:00
Bartłomiej Dach
aea5eb37dc
Remove unused using directive
2023-06-22 20:24:44 +02:00
Dean Herbert
cb0f642ad7
Change skin editor flow to always save on toggle
...
This also moves the beatmap skin disable toggle to on toggle, in line
with review feedback.
I've decided to always apply the disable, not just on the `Player`
screen. It should be assumed that if a user is in the skin editor they
are never going to need access to this anyway.
2023-06-21 16:14:47 +09:00
Dean Herbert
366dd96875
Use bindable lease instead of reimplementing the same thing locally
2023-06-21 16:09:54 +09:00
Dean Herbert
d7b486e2ac
Disable beatmap skinning when entering the skin editor
2023-06-20 19:18:17 +09:00
Dean Herbert
adf9a596b5
Fix weird state when attempting to enter gameplay skin editor scene from multiplayer
...
Closes https://github.com/ppy/osu/issues/23626 .
2023-05-23 17:58:44 +09:00
Bartłomiej Dach
1d4d31e35c
Trim comments
...
Leaving only the ones that add anything useful and do not restate the
code verbatim.
2023-05-03 19:22:52 +02:00
Bartłomiej Dach
27fabd99fb
Rename variables for legibility
...
Having `typedComponents` and `typeComponents` next to each other is
asking for trouble.
2023-05-03 19:21:16 +02:00
Terochi
4d52ce769b
Revert SaveState()
calling on initialization
2023-05-01 12:53:58 +02:00
Terochi
fb4b681cc5
Use Queue
instead of Stack
2023-04-30 16:36:01 +02:00
Terochi
8f02bd80f9
Addressed changes
2023-04-30 16:11:52 +02:00
Terochi
949dc1c0f9
Improved logic
2023-04-30 12:05:55 +02:00
Terochi
8ec2154965
Fixed ApplyStateChange
to happen in correct order
2023-04-30 02:01:18 +02:00
Terochi
17e4b75dfd
Save first state when editing
2023-04-29 20:54:19 +02:00
Terochi
3b0ba4b38b
Improved logic for ApplyStateChange
for skin editor
2023-04-29 19:52:22 +02:00
Dean Herbert
6546f5968a
Merge branch 'master' into skin-editor-cyclic-selection
2023-03-14 20:43:56 +09:00
Bartłomiej Dach
5213bfa5c9
Merge branch 'master' into make_skin_reset_dangerous
2023-03-07 21:06:44 +01:00
Dean Herbert
97bee4db89
Fix localisations
2023-03-07 18:07:53 +09:00
Dean Herbert
26ef7c2637
Rename confirmation dialog class to mention revert
not reset
2023-03-07 18:07:46 +09:00
Dean Herbert
21bdbb20e6
Add optional support for cyclic selection to BlueprintContainer
2023-03-07 14:22:12 +09:00
mk56-spn
908651cc11
make ResetConfirmDialog
properly utilise its parent's logic
...
Adjust name of `DeleteAction` to `DangerousAction`
2023-03-05 20:57:26 +01:00
Bartłomiej Dach
60cdd3c070
Clear components sidebar unconditionally on every target change
...
Fixes the working layer dropdown lingering after exiting from a
skinnable screen to a non-skinnable one.
2023-03-04 14:10:05 +01:00
Bartłomiej Dach
d233f3a3ab
Show non-skinnable screen placeholder at higher level
2023-03-04 13:49:10 +01:00
Bartłomiej Dach
49e298e304
Accept ISerialisableDrawableContainer
directly in SkinBlueprintContainer
...
An end result of #22674 is that `SkinBlueprintContainer`s are only ever
created by supplying a `SkinComponentsContainer` to them. However,
`SkinBlueprintContainer` still contained remnants of code that suggested
it was designed to handle cases where more than the drawable supplied to
it contained more than one `ISerialisableDrawableContainer`, or even
zero.
The zero path is totally dead right now (because every
`SkinComponentsContainer` is *by necessity* an
`ISerialisableDrawableContainer`), and the more-than-one path is dead
*for now* (and potentially forever?). Therefore, just hard-couple
`SkinBlueprintContainer` to receive a single target container.
2023-03-04 13:33:21 +01:00
Bartłomiej Dach
2f25fb4083
Move NonSkinnableScreenPlaceholder
to outer scope
2023-03-04 13:22:43 +01:00
Bartłomiej Dach
15409b9c15
Fix skin selection not clearing on exit to non-skinnable screen
2023-03-04 13:18:34 +01:00
mk56-spn
2b7111867c
Adjust reversion header text naming.
2023-03-03 15:12:20 +01:00
mk56-spn
90227a6496
Rename DeleteConfirmationDialog.cs
into DangerousActionDialog.cs
2023-02-27 21:57:59 +01:00
mk56-spn
00a00ead22
Make ResetConfirmDialog
inherit from DeleteConfirmationDialog
2023-02-27 21:50:27 +01:00
mk56-spn
1239de6f41
Upper case web using
alias
2023-02-27 21:34:07 +01:00
mk56-spn
bf1897a98f
Adjust warning text slightly.
2023-02-27 16:08:14 +01:00
mk56-spn
ff0d1aa9f7
Make reverting changes to a given skin into a "dangerous action"
2023-02-26 20:38:50 +01:00
Dean Herbert
dc3c1150b8
Set better defaults for SkinBlueprint
transforms
2023-02-23 21:10:15 +09:00
Dean Herbert
c48aceb055
Fix undo history not being batched correctly for depth change operations
2023-02-23 20:03:36 +09:00
Dean Herbert
16c8a392a1
Add ability to send selected skin components to front or back
2023-02-22 18:17:20 +09:00
Bartłomiej Dach
051eb18b33
Merge branch 'master' into skin-editor-layer-select
2023-02-21 21:38:51 +01:00
Bartłomiej Dach
ec1bf7b0b2
Merge branch 'master' into skin-editor-clipboard
2023-02-21 19:35:58 +01:00
Dean Herbert
af062e7a68
Change placeComponent
to only add to selection, not clear an existing selection
2023-02-21 14:11:18 +09:00
Dean Herbert
0d229d959b
Remove unnecessary TriggerChange
call
2023-02-21 13:50:19 +09:00
Bartłomiej Dach
6799492596
Merge branch 'master' into skin-editor-layer-select
2023-02-20 21:33:48 +01:00
Dean Herbert
43d33d45ca
Only add valid placed components to selected collection on paste
2023-02-20 20:02:43 +09:00
Dean Herbert
b68562b033
Make placeComponent
resilient to missing dependencies
2023-02-20 20:00:12 +09:00
Dean Herbert
a9c7edd087
Remove copy pasted comment
2023-02-20 19:57:16 +09:00
Bartłomiej Dach
1ba1298850
Merge branch 'master' into blueprint-improve-visuals
2023-02-19 15:55:30 +01:00
Dean Herbert
d7381b762c
Also tween origin position
2023-02-19 23:52:21 +09:00
Bartłomiej Dach
ea04c487f2
Merge branch 'master' into blueprint-labels-while-hovering
2023-02-18 15:57:30 +01:00
Bartłomiej Dach
fbea3e312f
Merge branch 'master' into skin-editor-improve-toolbox-hover
2023-02-18 10:02:02 +01:00
Bartłomiej Dach
2aa4481f68
Fix toolbox items spontaneously contracting after briefly losing hover
...
Reproduction scenario:
1. Hover a toolbox item
2. Unhover the item, but do not hover any other item (can be done by
exiting the toolbox completely to the right)
3. Come back to the item hovered in step (1)
4. The item would spontaneously contract after a second
2023-02-17 22:54:11 +01:00
Bartłomiej Dach
b390fdb8cc
Remove unused field
2023-02-17 21:51:19 +01:00
Dean Herbert
0a018514e1
Make skin editor focus only one layer at a time
2023-02-17 19:27:16 +09:00
Dean Herbert
00fcee0c5a
Add per-ruleset component toolbox and placement support
2023-02-17 19:27:16 +09:00
Dean Herbert
ba5a87ca04
Add basic target layer selection in skin editor
2023-02-17 19:27:16 +09:00
Dean Herbert
5ed038fbb3
Improve the feel of hovering toolbox component items
2023-02-17 19:26:03 +09:00
Dean Herbert
814080d982
Only show blueprint labels when hovering or selected
2023-02-17 19:23:52 +09:00
Dean Herbert
6c61c5f4a8
Fix selection on the edge of blueprints (in the new inflation area) failing
2023-02-17 18:19:46 +09:00
Dean Herbert
16d94b4ea2
Improve visuals of skin blueprint
2023-02-17 18:19:46 +09:00
Dean Herbert
925deb7ca5
Make skin editor clipboard shared between screens and skins to allow moving elements over
2023-02-15 19:35:37 +09:00
Dean Herbert
bc83b0c264
Fix clipboard changes not batching as undo steps
2023-02-15 19:35:22 +09:00
Dean Herbert
bcf2555545
Fix components having incorrect default positions
2023-02-15 19:34:42 +09:00
Dean Herbert
d653335b6f
Add basic skin editor clipboard implementation
2023-02-15 19:28:42 +09:00
Dean Herbert
a92e42bb84
Rename SkinnableTargetContainer
to SkinComponentsContainer
...
Also use full `SkinComponentsContainerLookup` instead of the sub-type.
This will potentially be useful once we bring in per-ruleset targets.
2023-02-15 18:37:41 +09:00
Dean Herbert
b1cf6d83d8
Move extension methods closer to serialisation classes
2023-02-15 18:37:41 +09:00
Dean Herbert
e61d2d571c
Move the lookup type out of ISserialisableDrawableContainer
2023-02-15 18:37:41 +09:00
Dean Herbert
a7b47f6503
Rename ISkinnableTarget
to ISerialisableDrawableContainer
2023-02-15 18:37:41 +09:00
Dean Herbert
d159d6b970
Rename ISkinnableDrawable
to ISerialisableDrawable
2023-02-15 18:37:41 +09:00
Dean Herbert
856efd9fd9
Rename SkinnableDrawableInfo
to SerialisedDrawableInfo
2023-02-15 18:23:19 +09:00