1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 12:13:52 +08:00
Commit Graph

1022 Commits

Author SHA1 Message Date
Salman Ahmed
169c98f963 Add skin providing ruleset resources in RulesetSkinProvidingContainer 2021-06-11 00:25:22 +03:00
Salman Ahmed
2240e2c39c Refrain from attempting to clear skin sources in disposal
`Drawable.Dispose` is usually in an asynchronous context (async disposals stuff) and therefore this could cause a "collection was modified; enumeration opeartion may not execute" exception.
2021-06-10 17:23:16 +03:00
Salman Ahmed
ef2c4fd0d8 Make RulesetSkinProvidingContainer able to be overriden for testing purposes 2021-06-10 16:36:46 +03:00
Salman Ahmed
09a2d008d2 Refrain from attempting to transform null skins 2021-06-10 16:36:45 +03:00
Salman Ahmed
5c9c424a0d Switch state case placements for consistency
Tickled me.
2021-06-10 13:15:18 +03:00
Salman Ahmed
c3a2f2c2a4 Expose default SkinManager providers for use in RulesetSkinProvidingContainer 2021-06-10 13:07:32 +03:00
Salman Ahmed
59be3588eb Change SkinSources to a bindable list for binding SourceChanged events 2021-06-10 13:07:32 +03:00
Salman Ahmed
dde84e5cbd Merge branch 'master' into transformers-per-skin 2021-06-10 11:58:52 +03:00
Salman Ahmed
58cca9da06 Revert "Expose the skin lookup layers of SkinManager to a property"
This reverts commit 9e652715ce.
2021-06-10 11:57:28 +03:00
Salman Ahmed
530026b675 Add simple xmldoc to ctors explaining their deal with SkinSources 2021-06-10 11:56:13 +03:00
Salman Ahmed
18edbdd135 Remove mentioning of "layer" in skin providers
`SkinSources` sounds better.
2021-06-10 11:55:26 +03:00
Dan Balasescu
479d6d3fc5
Merge branch 'master' into fix-beatmap-skin-disables 2021-06-10 16:37:58 +09:00
Salman Ahmed
33a9cac398 Add special RulesetSkinProvidingContainer managing ruleset-compatible skin setup 2021-06-09 22:49:31 +03:00
Salman Ahmed
9e652715ce Expose the skin lookup layers of SkinManager to a property 2021-06-09 22:49:31 +03:00
Salman Ahmed
6538d44708 Make SkinProvidingContainer able to perform lookup on multiple skins
Currently `protected` functionality for use in custom `SkinProvidingContainer`s, can be exposed to public constructors if it need to later on, but I'm not sure about doing that opposed to just nesting multiple `SkinProvidingContainer`.
2021-06-09 22:49:31 +03:00
Salman Ahmed
cf40282f1f Convert LegacySkinTransformers to accept raw ISkins rather than a full ISkinSource 2021-06-09 22:49:31 +03:00
Dean Herbert
0cf7c56e7e Add fallback lookup support for DefaultSkin 2021-06-09 18:51:42 +09:00
Dean Herbert
2438c20d63 Fix SourceChanged not being correctly forwarded through LegacySkinTransformer 2021-06-09 17:56:07 +09:00
Dean Herbert
448e4e7ee5 Fix FindProvider calls on SkinProvidingContainer not considering disable flags
Closes #13394.
2021-06-09 16:19:04 +09: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
Dean Herbert
6017ef3825
Merge branch 'master' into fix-skin-sample-lookup 2021-06-08 17:37:36 +09:00
Dan Balasescu
791855dfa0
Merge branch 'master' into legacy-skin-default-fallback 2021-06-08 16:54:26 +09:00
Dan Balasescu
67135ce3db
Add null check 2021-06-08 16:15:17 +09:00
Dean Herbert
e0f568aa8f Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-06-08 15:19:52 +09:00
Dean Herbert
f3f634e969 Clean up previous sample immediately on skin source change to avoid Play after disposal
This seems to be the simplest way to avoid calls to `Play` after the
underlying sample may have been disposed. As per the issue thread, a
local workaround is acceptable here.

Closes #13223.
2021-06-08 15:05:18 +09:00
Dean Herbert
27e3de3ea3 Add TODO about beatmap skin fallback support 2021-06-08 12:12:14 +09:00
Dean Herbert
06840d78cc Remove now unused method 2021-06-08 12:06:42 +09:00
Dean Herbert
2c1f22d7ae Refactor animation lookup to properly handle skins providing non-animated resources 2021-06-08 01:17:20 +09:00
Dean Herbert
e7e9197f03 Fix FindProvider not correctly checking legacy default in SkinManager 2021-06-08 00:42:50 +09:00
Dean Herbert
6d56e02ddb Add back incorrectly reverted animation handling logic
This reverts commit b904fa6615.
2021-06-08 00:17:01 +09:00
Dean Herbert
c0305343bc Fix FindProvider incorrectly returning LegacySkinTransformer itself 2021-06-07 23:23:44 +09:00
Dean Herbert
08701b5eab Ensure all lookups in LegacyHealthDisplay use the found provider
Not actually needed to fix the remaining issue but does feel better
2021-06-07 23:23:12 +09: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
ce635af83e
Add UsingClosestAnchor to ISkinnableDrawable
Also implement it as an auto property in its inheritors.
The auto properties default to true.
2021-06-06 23:47:47 -04:00
Dean Herbert
d26c9a66c2 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-06-07 12:01:19 +09: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
Dean Herbert
e10dfab2e8 Ensure scorebar marker lookup is performed on the source the background is retrieved from 2021-06-06 23:23:35 +09:00
Robin Avery
da1c38d5a9
Uninvert logic of SkinnableInfo.UsingClosestAnchor
Also rename "IsUsingClosestAnchor" to simply "UsingClosestAnchor".
2021-06-06 10:13:35 -04:00
Dean Herbert
b5f145cfa9 Use null propagation for animation lookups 2021-06-06 23:01:37 +09: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
b904fa6615 Revert "Ensure all frames in an animation are retrieved from the same skin"
This reverts commit 37c8c63fc5.
2021-06-06 12:37:42 +09:00
Dean Herbert
b87a5956dd Add fallback logic to SkinManager 2021-06-06 12:17:55 +09:00
Dean Herbert
39f99bf785 Move FindProvider to ISkinSource 2021-06-06 12:17:32 +09:00
Dean Herbert
ae2165b3be Fix incorrect xmldoc 2021-06-04 16:44:04 +09:00
Dean Herbert
37c8c63fc5 Ensure all frames in an animation are retrieved from the same skin 2021-06-04 16:18:04 +09:00
Dan Balasescu
c065f761c7
Merge branch 'master' into legacy-skin-default-fallback 2021-06-02 19:08:52 +09:00
Dean Herbert
2e2281c7d2 Revert disabling taiko sample tests and fix logic 2021-06-01 18:57:19 +09:00
Dean Herbert
3a6d081d82 Remove duplicated taiko fallback 2021-06-01 18:04:49 +09:00
Dean Herbert
ea4644be90 Revert "Fix weird taiko logic failing for weird reasons that probably should not have been a thing"
This reverts commit 69c4ccad05.
2021-06-01 18:04:49 +09:00
Dean Herbert
a837fc9e3b Remove duplicated taiko fallback 2021-06-01 18:00:24 +09:00
Dean Herbert
df0a5689e4 Revert "Fix weird taiko logic failing for weird reasons that probably should not have been a thing"
This reverts commit 69c4ccad05.
2021-06-01 17:13:13 +09:00
Dean Herbert
ff815cb4b4 Fix incorrect xmldoc 2021-06-01 16:57:41 +09:00
Salman Ahmed
7c6400735f Merge branch 'master' into remove-hud-component-lookup 2021-06-01 10:17:52 +03:00
Dean Herbert
00b3eea840 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-05-31 21:39:04 +09:00
Dean Herbert
69c4ccad05 Fix weird taiko logic failing for weird reasons that probably should not have been a thing 2021-05-31 21:29:47 +09:00
Dean Herbert
1161378b6b Fix incorrect fallback logic in LegacyBeatmapSkin 2021-05-31 21:29:47 +09:00
Dean Herbert
282c5a9177 Fix potential nullref in SkinProvidingContainer 2021-05-31 21:29:47 +09:00
Dean Herbert
3ff9f9c89d Make FindProvider non-default 2021-05-31 21:29:47 +09:00
Dean Herbert
8e489754cc Add ability for LegacySkins to customise the fallback provider 2021-05-31 21:29:47 +09:00
Dean Herbert
88ed95e012 Add FindProvider lookup function 2021-05-31 21:29:47 +09:00
Dean Herbert
1d30791ab0 Add potential pathway for legacy lookups 2021-05-31 21:29:47 +09:00
Dean Herbert
4b27d43e26 Add new parameter for default fallback logic in LegacySkin 2021-05-31 21:29:47 +09:00
Dean Herbert
17fa2426d4 Merge branch 'master' into legacy-skin-resource-improvements 2021-05-31 19:36:09 +09:00
Dean Herbert
65709ec7d7 Move leagcy resource store construction local to DefaultLegacySkin 2021-05-31 19:14:49 +09:00
Dean Herbert
b16d10bd95 Provide game-wide resources via IStorageResourceProvider 2021-05-31 18:57:47 +09:00
Dean Herbert
de0e51a81d Merge branch 'master' into fix-skin-sample-lookup 2021-05-31 15:27:39 +09:00
Salman Ahmed
02d18c7a49 Merge branch 'master' into remove-hud-component-lookup 2021-05-31 09:23:04 +03:00
Salman Ahmed
fb81e5133f Merge branch 'master' into catch-hide-combo-workaround 2021-05-30 14:16:46 +03:00
Salman Ahmed
53cbf369d7 Fix potential nullref 2021-05-29 21:22:46 +03:00
Salman Ahmed
42618c713f
Merge branch 'master' into legacy-beatmap-skin-hud-fallback 2021-05-29 20:56:05 +03:00
Dean Herbert
70a844ac10 Remove allowFallback parameters completely 2021-05-27 14:50:42 +09:00
Dean Herbert
4fd89faaa4 Fix default skin not having resources or providing samples 2021-05-27 14:09:01 +09: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
caa2c5638e Fix legacy combo counter not accounting for song progress bar 2021-05-23 16:46:57 +09: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
Salman Ahmed
43094425e2 Merge branch 'legacy-beatmap-skin-hud-fallback' into catch-hide-combo-workaround 2021-05-19 23:18:27 +03:00
Salman Ahmed
9f3ea150f5 Fix legacy beatmap skins not falling back properly on HUD components 2021-05-19 23:01:29 +03:00
Bartłomiej Dach
788f1fcf48
Merge branch 'master' into disable-skin-editor-border 2021-05-19 21:52:29 +02:00
Salman Ahmed
21ca9c8431 Merge branch 'master' into beatmap-skin 2021-05-19 22:39:32 +03: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
22337e0fc7 Add comment explaining why origin is flipped 2021-05-20 01:59:30 +09:00
Dean Herbert
363aec8179 Merge branch 'master' into hit-error-skinnable 2021-05-20 01:51:45 +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
Salman Ahmed
825d61e22c Separate default beatmap skins from DefaultSkin 2021-05-19 12:06:10 +03:00
Salman Ahmed
9806d94b74 Move beatmap skin info creation to static method at IBeatmapSkin 2021-05-19 11:58:00 +03:00
Salman Ahmed
c98d036b48 Merge branch 'master' into catch-hide-combo-workaround 2021-05-18 17:47:20 +03:00
Salman Ahmed
08ee1e4853 Remove HUD skin component lookup in favour of MainHUDComponents target system 2021-05-18 12:37:23 +03: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
Dean Herbert
10c730b37d Add new default locations for hit bar error displays 2021-05-18 15:50:50 +09:00
Salman Ahmed
f667ea3fd0 Replace AllowDefaultHUDComponentsFallback with a temporary override at LegacyBeatmapSkin 2021-05-17 21:34:53 +03: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
Dean Herbert
da0913ca2d Make SongProgress a skinnable component 2021-05-17 18:52:56 +09:00
smoogipoo
0d7a349500 Exclude interfaces from skinnable types 2021-05-17 18:16:09 +09:00
Salman Ahmed
4c25fe750f Disallow beatmap skin to fall back to default HUD components
This should become a more generalized `AllowDefaultSkinFallback` when default legacy skin fallback is supported.
2021-05-15 14:32:16 +03:00
Bartłomiej Dach
7665bdfbbb Merge branch 'master' into null-assignment-warning-enable 2021-05-15 01:08:34 +02:00
Bartłomiej Dach
69fc072429 Ignore skin component json data if deserialisation fails instead
Crashing was not really the best thing to do there given the preceding
code that already allowed a few continues in case of a missing file.
2021-05-15 01:08:11 +02:00
Bartłomiej Dach
fa6b5515b7 Ignore possible null from JsonConvert.DeserializeObject()
Nothing better can be done if a `null` is indeed returned.
2021-05-15 00:09:34 +02:00
Bartłomiej Dach
628e7a71ed Ignore possible nulls in Type.GetType() calls
They're mostly used in extensibility scenarios, so everything happens in
runtime. There is no better resolution than to crash with a null
reference exception.
2021-05-15 00:09:34 +02:00
Bartłomiej Dach
3d3c5028e6 Trim unnecessary array copy 2021-05-14 22:33:26 +02:00
Bartłomiej Dach
743b4fbff1 Pass correct member name to ArgumentExceptions 2021-05-14 22:16:37 +02:00
Bartłomiej Dach
876f53bf3b Fix copy-paste oversights in xmldoc & exception messages 2021-05-14 22:15:43 +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
caa3e1dca5
Merge pull request #12767 from peppy/save-on-forced-exit
Save skin editor changes on forced exit
2021-05-13 23:35:52 +09:00
Dean Herbert
4183a1c556
Merge pull request #12769 from peppy/remove-skinnable-hud-classes
Remove remaining test usage of SkinnableXXX HUD components
2021-05-13 22:56:18 +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