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