1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-21 12:33:03 +08:00
Commit Graph

240 Commits

Author SHA1 Message Date
Dean Herbert
3fd8de3b91 Fix skin editor's fake overlay potentially getting into a bad state 2021-07-22 15:57:47 +09:00
ekrctb
1bff4373b3 Allow specifying flipping support of selection box different from scaling 2021-07-21 15:59:45 +09:00
Dean Herbert
16a2e63bd4 Use existing localisation 2021-07-20 19:44:02 +09:00
Dean Herbert
59457743e5 Move further to the right to avoid overlap with toolbox listing 2021-07-20 19:43:52 +09:00
Dean Herbert
9c4fbf45e9 Add the ability to enter and exit the skin editor via on-screen buttons 2021-07-20 19:36:12 +09:00
Dean Herbert
6e31c781bb
Merge pull request #13382 from ribbanya/clamp-skin-scale
Fix skin elements flipping when scaled below zero
2021-07-02 20:50:47 +09:00
aitani9
9b0fa6d3fc Make flipping reflect across the axes of the selection box 2021-07-01 15:38:38 -07:00
Dean Herbert
4b3165084d Move scoped functionality into local function 2021-06-22 16:40:56 +09:00
Robin Avery
0c8851f4b7
Extract drawable.ScreenSpaceDrawQuad to a variable 2021-06-11 07:06:22 -04:00
Robin Avery
a6774eb5b5
Inline getOriginPositionFromQuad 2021-06-11 06:59:00 -04:00
Robin Avery
c9b4f9eb71
Make getOriginPositionFromQuad local 2021-06-11 06:55:47 -04:00
Robin Avery
1bc8460902
Rename getTieredComponent to getAnchorFromPosition
Also rename parameter `component` to `xOrY`.
2021-06-11 06:53:40 -04:00
Robin Avery
6e181a6b63
Rename parameters of getTieredComponent 2021-06-11 06:53:04 -04:00
Robin Avery
a76eaeb52d
Make getTieredComponent local 2021-06-11 06:51:12 -04:00
Robin Avery
635300b311
Recalculate closest anchor when origin is changed 2021-06-11 06:28:30 -04:00
Robin Avery
a506f2a776
Revert rename of lambda variables 2021-06-11 06:22:24 -04:00
Robin Avery
2484ccd50c
Ensure scale x or y does not go below zero in SkinSelectionHandler.HandleScale 2021-06-08 11:49:25 -04:00
Robin Avery
10b6b72909
Add guard clause to applyOrigins and rename parameter 2021-06-08 10:29:45 -04:00
Robin Avery
d212918d67
Rename applyCustomAnchors to applyFixedAnchors for consistency with UsesFixedAnchor 2021-06-08 10:14:07 -04:00
Robin Avery
2c88e6df8d
Simplify applyClosestAnchor to one line by moving another guard clause 2021-06-08 10:09:48 -04:00
Robin Avery
f22cc981d1
Move guard clause from checkAndApplyClosestAnchor to applyAnchor 2021-06-08 09:51:39 -04:00
Robin Avery
529a80871b
Rename some methods for clarity
Methods which operate on a collection of `ISkinnableDrawable`s are now
plural; ones which take a single item are singular.

This also allows cutting down the name of `getClosestAnchorForDrawable`
to just `getClosestAnchor`.
2021-06-08 09:44:42 -04:00
Robin Avery
01da73daf2
Refactor updateDrawableAnchorIfUsingClosest 2021-06-08 09:25:49 -04:00
Robin Avery
6b127f50f2
Inline updateDrawableAnchorIfUsingClosest 2021-06-08 09:14:04 -04:00
Robin Avery
dc50ae40b9
Rename OverridesClosestAnchor to UsesFixedAnchor 2021-06-08 08:28:42 -04:00
Robin Avery
65f594f860
Rename applyAnchor to applyCustomAnchor 2021-06-07 05:08:18 -04:00
Robin Avery
6c9594ee35
Simplify and rearrange SkinSelectionHandler
The file has been restructured and reworded such that there are as few
differences as possible from b36b40cb34.
2021-06-07 02:40:15 -04:00
Robin Avery
29fa4fdf57
Refactor unacceptable syntax 2021-06-07 01:08:39 -04:00
Robin Avery
133d72a8c0
Rename UsingClosestAnchor
It is now "OverridesClosestAnchor". The logic is inverted accordingly.
2021-06-07 00:14:36 -04:00
Robin Avery
f28916e30f
Remove all UsingClosestAnchor() extension logic
It is replaced with ISkinnableDrawable.UsingClosestAnchor.
2021-06-07 00:04:53 -04:00
Robin Avery
6a456e53f4
Rename overly long method 2021-06-06 13:28:17 -04:00
Robin Avery
888882ac63
Remove first-person comment 2021-06-06 13:27:13 -04:00
Robin Avery
da1c38d5a9
Uninvert logic of SkinnableInfo.UsingClosestAnchor
Also rename "IsUsingClosestAnchor" to simply "UsingClosestAnchor".
2021-06-06 10:13:35 -04:00
Robin Avery
63346f6b75
Refactor getTieredComponent 2021-06-06 09:40:58 -04:00
Robin Avery
c9f5808bf2
Move lookup logic to DrawableExtensions
This is now a global lookup to be shared by serialization and editor.
2021-06-06 06:58:21 -04:00
Robin Avery
4aee76456f
Replace localised strings with static English 2021-06-06 05:34:32 -04:00
Robin Avery
c452715bf1 Allow skin elements to find closest anchor
- Resolves ppy/osu#13252
- Add localisation strings for the context menu instead of using enum
2021-06-06 01:32:04 -04:00
Dean Herbert
b36b40cb34 Remove unnecessary double specification 2021-05-26 15:20:47 +09:00
kamp
65649e5a62 Prevent skin editor crash when scaling 0 area drawables
Some skinnable drawables can have 0 width or height in certain
cases, leading to division by 0 and a crash when the position is
updated.
2021-05-24 21:36:42 +02:00
Dean Herbert
45c6a9ca91 Merge branch 'refactor-selection-rotate-logic' into fix-flip-logic-discrepancy 2021-05-22 21:17:58 +09:00
Dean Herbert
7d88a19d7f Remove unnecessary field storage of origin reference 2021-05-22 21:03:40 +09:00
Dean Herbert
34a5b22b79 Merge branch 'master' into refactor-selection-rotate-logic 2021-05-22 20:52:28 +09:00
Dean Herbert
485728ca4e
Merge pull request #12866 from peppy/refactor-selection-scale-logic
Add proper scaling support to skin editor
2021-05-22 20:07:03 +09:00
Dean Herbert
bb2fae55ce Merge branch 'master' into refactor-selection-rotate-logic 2021-05-21 19:19:54 +09:00
Dean Herbert
0d575f5728 Remove incorrect (and unintended) modulus logic 2021-05-21 15:06:53 +09:00
Dean Herbert
f9d51656b6 Fix scaling of rotated items not behaving in an understandable way 2021-05-21 15:02:36 +09:00
Dan Balasescu
7845d07dd5
Merge pull request #12886 from peppy/fix-skin-editor-context-menu-sticking
Fix skin editor context menus not dismissing when clicking away
2021-05-20 21:03:35 +09:00
Dean Herbert
1848bd902d Fix skin editor context menus not dismissing when clicking away 2021-05-20 19:51:07 +09:00
Dean Herbert
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +09:00
Dean Herbert
20f1ef4318 Extract common implementation of updating drawable position from screen space pos 2021-05-20 18:35:13 +09:00
Dean Herbert
6f75c59760 Fix flip logic not using the full selection quad 2021-05-20 18:31:51 +09:00
Dean Herbert
95c78b9185 Split out common selection quad logic 2021-05-20 18:24:25 +09:00
Dean Herbert
27e81d6504 Implement proper rotation algorithm for skin editor 2021-05-20 18:21:16 +09:00
Dean Herbert
eb5db8ff03 Disable border display on skin editor to avoid crashes
This wasn't being displayed correctly anyway, so rather than fixing
let's just remove it for now.

Closes #12868.
2021-05-20 02:01:46 +09:00
Dean Herbert
a55879e511 Fix oversights in scale algorithm 2021-05-20 01:47:31 +09:00
Dean Herbert
14af86d6c5 Use the same code path for all scaling 2021-05-19 21:46:41 +09:00
Dean Herbert
6a3c58b9ad Implement proper scaling algorithms 2021-05-19 19:58:55 +09:00
Dean Herbert
d661e98fa6 Move common functionality out of OsuSelectionHandler and implement flip support 2021-05-18 18:34:06 +09:00
Dean Herbert
c80e736712 Change SkinBlueprint to use the origin point as the selection point
Not sure how this feels, but it makes using the same point throughout
the editor possible, which I think is the correct way forward for now.
2021-05-18 18:33:06 +09:00
Dan Balasescu
ea4dfd3374
Merge pull request #12842 from peppy/song-progress-skinnable
Add layout customisation support for `SongProgress`
2021-05-17 20:15:01 +09:00
Dean Herbert
42d2711dc6 Use ShouldBeConsideredForInput instead of ReceivePositionalInputAtSubTree 2021-05-17 19:29:59 +09:00
Dean Herbert
60f3e628bc Fix song progress being interactable inside toolbox button 2021-05-17 19:05:22 +09:00
smoogipoo
0d7a349500 Exclude interfaces from skinnable types 2021-05-17 18:16:09 +09:00
Bartłomiej Dach
3d3c5028e6 Trim unnecessary array copy 2021-05-14 22:33:26 +02:00
Dean Herbert
d09da02673 Fix deleting skin elements not saving out to skin
Closes https://github.com/ppy/osu/issues/12786.
2021-05-14 16:03:22 +09:00
Dean Herbert
46e7d9e0ed Randomise the values displayed in the skinning toolbox
To stop the spam of "WYSI" comments everywhere. I guess I underestimated
the negative effect this would have.
2021-05-14 12:15:58 +09:00
Bartłomiej Dach
6a64a705b8 Merge branch 'master' into skin-blueprint-aspect-lock 2021-05-13 17:53:00 +02:00
Bartłomiej Dach
25b1443c50 Remove dead branch and mark implementation as temporary
The previous implementation was checking if the `x0` or `x2` anchors
were selected to decide on which way to transfer the drawable's scale,
but that check actually ends up being always true for corner anchors. To
visualise, this is how the corner anchors correspond to `Anchor` flags:

    x0  x1  x2
    |   |   |
y0 -O---O---O-
    |   |   |
y1 -O---+---O-
    |   |   |
y2 -O---O---O-
    |   |   |

The Os indicate where the reference anchors are on a selection box.
The first conditional eliminates the middle ones, which makes sense.
But after excluding them from further deliberations (marking via X):

    x0  x1  x2
    |   |   |
y0 -O---X---O-
    |   |   |
y1 -X---+---X-
    |   |   |
y2 -O---X---O-
    |   |   |

The remaining anchors always have `x0` or `x2` set. So to avoid
confusion, just always transfer one way for now. At some point this
should be torn out in favour of an actual implementation of the desired
behaviour.
2021-05-13 17:50:12 +02:00
Dean Herbert
0fa90a80d4
Merge branch 'master' into skin-blueprint-aspect-lock 2021-05-13 23:38:53 +09:00
Dean Herbert
3ecbb9ec4b
Merge branch 'master' into skin-blueprint-anchor-origin 2021-05-13 23:38:04 +09:00
Dean Herbert
98830dadda
Merge pull request #12762 from peppy/skin-blueprint-visual-improvements
Improve the visual appearance of skin editor blueprints
2021-05-13 23:37:21 +09:00
Dean Herbert
cef39eb4fa
Merge pull request #12766 from peppy/stable-anchor-origin
Keep component positions stable when changing anchor/origin
2021-05-13 23:36:40 +09:00
Dean Herbert
6c12cae105 Remove unnecessary property 2021-05-13 22:25:11 +09:00
Dean Herbert
c57a2f43fa Merge branch 'master' into skin-blueprint-visual-improvements 2021-05-13 22:22:42 +09:00
smoogipoo
4cf4817ad2 Remove redundant parens 2021-05-13 22:11:58 +09:00
Dan Balasescu
d2fdd1e521
Merge branch 'master' into stable-anchor-origin 2021-05-13 22:06:21 +09:00
Dan Balasescu
67f795cfa6
Merge branch 'master' into save-on-forced-exit 2021-05-13 22:00:38 +09:00
Dean Herbert
b939318922 Merge branch 'skin-serialisation' into skin-editor-default-placement-location 2021-05-13 19:09:34 +09:00
Dean Herbert
e5f765d1a8 Fix broken exception message 2021-05-13 19:06:58 +09:00
Dean Herbert
bda0ea463a Merge branch 'skin-serialisation' into save-on-forced-exit 2021-05-13 19:05:47 +09:00
Dean Herbert
07e475cd13 Fix skin blueprint box drawing incorrectly when both scale and rotation are applied 2021-05-13 18:54:40 +09:00
Dean Herbert
df77b28b48 Add a flimsy guard against null parent to avoid crashes on exit sequence 2021-05-13 18:39:21 +09:00
Dean Herbert
9f8e6979dd Fix display of skin blueprints when flipped 2021-05-13 18:00:25 +09:00
Dean Herbert
1cda55393e Add aspect ratio locking and flip support to skin editor 2021-05-13 17:51:57 +09:00
Dean Herbert
106fa97a11 Rename SkinnableElementTargetContainer to SkinnableTargetContainer 2021-05-13 17:07:38 +09:00
Dean Herbert
7921dc7ece Rename ISkinnableComponent to ISkinnableDrawable 2021-05-13 17:06:00 +09:00
Dean Herbert
cdcd31b546 Replace ISkinSerialisable with IsEditable property 2021-05-13 17:03:17 +09:00
Dean Herbert
469a7f5d2a Reorder fields in SkinEditor 2021-05-13 13:04:17 +09:00
Dean Herbert
2bf8635ffd Move field upwards in class 2021-05-13 13:03:23 +09:00
Dean Herbert
7bac81f394
Fix incorrect inline comments
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-05-12 19:37:00 +09:00
Dean Herbert
088335a035 Revert "Also save on skin switch"
This reverts commit 2f55d1e5ab.
2021-05-12 17:45:51 +09:00
Dean Herbert
2f55d1e5ab Also save on skin switch 2021-05-12 17:42:12 +09:00
Dean Herbert
be187e8ebd Avoid hard crash if Save() is called before preparing for mutation 2021-05-12 17:42:04 +09:00
Dean Herbert
9df08560b6 Save skin editor changes on forced exit 2021-05-12 16:07:00 +09:00
Dean Herbert
494a1b01a5 Move SkinnableElementTargetContainer out of HUD namespace 2021-05-12 15:59:33 +09:00
Dean Herbert
29e6f6b6b6 Remove public prefixes from interface type and add Components list for future use 2021-05-12 15:58:21 +09:00
Dean Herbert
05e0c57a6a Keep component positions stable when changing anchor/origin 2021-05-12 15:30:52 +09:00
Dean Herbert
d55f42dc2e Show anchor and origin in skin blueprints when selected 2021-05-12 15:12:17 +09:00
Dean Herbert
42e6795251 Place new skin components at the centre of the screen by default 2021-05-12 14:11:40 +09:00
Dean Herbert
96d4011de2 Use pattern matching to tidy up instance construction 2021-05-12 14:02:24 +09:00
Dean Herbert
1d383024e2 Improve the visual appearance of skin editor blueprints 2021-05-12 13:54:30 +09:00
Dean Herbert
f55407f871 Show a message when attempting to customisse a screen which doesn't support it 2021-05-11 18:39:15 +09:00
Dean Herbert
6d587dc392 Adjust target size slightly to better align with the screen 2021-05-11 18:39:15 +09:00
Dean Herbert
1831f581aa Add basic metadata display and remove outdated message about not saving 2021-05-11 18:39:15 +09:00
Dean Herbert
a4e0529617 Replace polling logic with direct bindable reactions 2021-05-11 18:39:15 +09:00
Dean Herbert
a7e83aacfb Ensure default skins are copied before modifying 2021-05-11 18:39:15 +09:00
Dean Herbert
12684de66e Add ability to adjust origin in skin editor 2021-05-11 18:39:14 +09:00
Dean Herbert
81902ad6a6 Add the ability to revert all skin changes 2021-05-11 18:39:14 +09:00
Dean Herbert
b248b2e5e3 Hook up full save/load flow 2021-05-11 18:39:14 +09:00
Dean Herbert
b9ab9342fa Setup basics to allow extracting serializable content from skinnable Drawables 2021-05-11 18:39:14 +09:00
Dean Herbert
1b701adfef Add score/health processors to fill in default values 2021-05-10 18:15:39 +09:00
Dean Herbert
2ecd638f7f Merge branch 'master' into skin-components-list 2021-05-10 18:13:10 +09:00
Dean Herbert
aff32b0d19 Merge branch 'master' into skin-components-list 2021-05-06 14:17:33 +09:00
Dean Herbert
15603de6e9 Change scale multiplier to be closer to expectations 2021-05-03 15:25:18 +09:00
Dean Herbert
7d8be8cd83 Add comment about why we are running checkForComponents on a timer 2021-05-03 15:20:00 +09:00
Dean Herbert
a298a93070 Remove redundant storage of blueprint's related item 2021-05-03 15:18:18 +09:00
Dean Herbert
51f4077b27 Reorder methods in SkinSelectionHandler to follow standards 2021-05-03 15:15:00 +09:00
Dean Herbert
a2faa0b74c Remove dead code 2021-05-03 15:13:53 +09:00
Dean Herbert
01984de9c7 Use existing GetStateFromSelection helper function 2021-05-03 15:13:32 +09:00
Dean Herbert
f3b305bbe6 Rename and improve xmldoc of SkinEditorOverlay 2021-05-03 14:58:25 +09:00
Dean Herbert
e663629bc6 Match button appearance to that of the beatmap editor 2021-04-30 15:22:51 +09:00
Dean Herbert
a1e64f4e3c Use the existing toolbox design 2021-04-30 14:41:06 +09:00
Dean Herbert
bde72faa7c Limit components list height to better align with actual viewport 2021-04-30 13:10:42 +09:00
Dean Herbert
8b82a07914 Move skin-related interfaces out of HUD namespace 2021-04-30 13:10:42 +09:00
Dean Herbert
5585a7d438 Add basic interfaces for skinnable target containers 2021-04-30 13:10:42 +09:00
Dean Herbert
ae9d1dc40b Add component list to main editor interface and enable basic placement 2021-04-30 13:10:42 +09:00
Dean Herbert
6442fb819f Split out component from test scene and fix SongProgress 2021-04-30 13:10:42 +09:00
Dean Herbert
cdef07b2ee Fix blueprints not hiding when deleting elements 2021-04-30 13:09:57 +09:00
Dean Herbert
8d056ff38f Remove redundant parenthesis 2021-04-29 18:23:22 +09:00
Dean Herbert
fb64f6faf2 Add ability to exit using game "back" binding 2021-04-29 17:40:58 +09:00
Dean Herbert
a7982787d4 Add basic header text 2021-04-29 17:40:48 +09:00
Dean Herbert
b936043956 Add the skin editor to the game 2021-04-29 17:20:22 +09:00
Dean Herbert
b460181f15 Add note about rotation not working as expected 2021-04-29 16:16:52 +09:00
Dean Herbert
1516e2ffef Update blueprint implementation in line with #12625. 2021-04-29 16:12:31 +09:00
Dean Herbert
3c84b0d8c6 Fix selection screen point being wrong since recent refactors 2021-04-29 16:12:15 +09:00
Dean Herbert
de73ac7cec Allow skin editor to be invoked from any context
This is kind of how I see things working going forward, where the editor
can be applied to anything in the game which supports it (ie. a results
screen, gameplay screen, etc.) and it will immediately allow changing
the interface.

This adds a test scene which shows this working with gameplay.
2021-04-29 16:12:15 +09:00
Dean Herbert
4f9e1e4945 Check for new components every one second to handle late loaders 2021-04-29 16:12:15 +09:00
Dean Herbert
fd587a82ff Replace abstract class with interface, attached to the actual components (not skinnable wrapper) 2021-04-29 16:12:15 +09:00
Dean Herbert
59339aa4fd Add support for x/y position and scale back in 2021-04-29 16:12:15 +09:00
Dean Herbert
1cb8fc9a24 Extract editor classes out of test namespace and add anchor support 2021-04-29 16:12:15 +09:00