1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 22:47:24 +08:00
Commit Graph

39951 Commits

Author SHA1 Message Date
Dean Herbert
773ec46989 Expose some storyboard pieces to allow better testability 2023-09-19 20:20:11 +09:00
Bartłomiej Dach
43ae26b8ef
Merge pull request #24809 from peppy/storyboard-resource-lookup-refactor
Refactor storyboard resource lookup to be more streamlined
2023-09-19 12:52:02 +02:00
Dean Herbert
067c487b21
Merge pull request #24450 from cdwcgt/missing-beatmap
Fetch missing beatmap when importing replay
2023-09-19 18:40:02 +09:00
Bartłomiej Dach
ed9039f60f
Fix notification text sets overwriting each other 2023-09-19 11:12:58 +02:00
Dean Herbert
05e05f8160 Increase transition speed slightly 2023-09-19 18:02:08 +09:00
Dean Herbert
cdb5fea513 Remove unused translations 2023-09-19 17:53:00 +09:00
Dean Herbert
f726c38215 Pass ArchiveReader instead of Stream to simplify resolution code 2023-09-19 17:49:15 +09:00
Dean Herbert
0593c76c57 Fix log output using incorrect name 2023-09-19 17:34:24 +09:00
Bartłomiej Dach
62f97a8d83
Adjust beatmap card thumbnail dim state to match web better 2023-09-19 10:28:08 +02:00
Dean Herbert
7f30354e61 Adjust sizing slightly to remove need for CollapsibleButtonContainerSlim 2023-09-19 17:20:58 +09:00
Dean Herbert
0555d22eb8 Add comment mentioning why hover is disabled on the notification type 2023-09-19 16:35:22 +09:00
Bartłomiej Dach
8e199de78a
Tweak nano beatmap card UX further to meet expectations 2023-09-19 08:36:32 +02:00
Magnus-Cosmos
73db68a49a
Check if path lists are empty 2023-09-19 02:28:28 -04:00
Bartłomiej Dach
0ffb906741
Merge pull request #24831 from peppy/update-deps
Update all dependencies (except for Moq)
2023-09-19 07:50:27 +02:00
Magnus-Cosmos
a9b45c6fdc
Fix slider path calculations for edge cases 2023-09-19 01:31:26 -04:00
Dean Herbert
aba98f2985
Merge pull request #24823 from bdach/scoring-test-scene-catch
Add scoring test scene for catch
2023-09-19 13:59:11 +09:00
Salman Ahmed
8e992de763 Fix crash when loading player instance without exiting previous instance 2023-09-19 05:09:01 +03:00
Salman Ahmed
922f6f36f2 Add size limitation for hit object numbers 2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a Add size limitation for approach circles 2023-09-19 04:38:10 +03:00
Salman Ahmed
291a91be66 Change extension from retrieval to post-processing instead 2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345 Revert "Update GetTexture signature rather than creating new overload"
This reverts commit 96f12cfbaa.
2023-09-19 03:21:19 +03:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points 2023-09-18 11:40:00 -04:00
Bartłomiej Dach
8b5a851f31
Merge branch 'master' into scoring-test-scene-catch 2023-09-18 15:15:03 +02:00
Dean Herbert
163b6df357
Merge pull request #24846 from bdach/get-reader-regression
Fix `MemoryStreamArchiveReader.GetStream()` failing in some cases
2023-09-18 22:06:33 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration) 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
Progress didn't work for several reasons:

- It was spinning when nothing was actually happening yet
  (especially egregious with autodownload off)

- It was blocking exits (as all progress notifications do)

- When actually going to download, two progress notifications would
  pertain to one thing

- It wasn't helping much with the actual implementation of score
  re-import, cancelling the progress notification would result in
  similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
47764b3012
Fix OsuTestScene.CreateAPIBeatmapSet() not backlinking set beatmaps to the set 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.

To that end, slim down the design (get rid of thumbnail, audio preview,
make expandable right side slimmer), as well as change the entire panel
so that it has only one action associated with it at all times, and
clicking the panel in any place triggers that action.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
67b5dfb9cf
Merge branch 'get-reader-regression' into missing-beatmap 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap 2023-09-18 14:56:06 +02:00
Dean Herbert
f3b6aa5435
Merge pull request #24821 from bdach/scoring-test-scene-osu
Refactor scoring test scene for ruleset extensibility (and move existing instance to osu! ruleset project)
2023-09-18 19:54:14 +09:00
Bartłomiej Dach
e57d7d1205
Fix MemoryStreamArchiveReader.GetStream() failing in some cases
`MemoryStreamArchiveReader` introduced in
0657b55196 would previously use
`MemoryStream.GetBuffer()` to retrieve the underlying byte buffer with
stream data. However, this is not generally the method you would want,
for two reasons:

1. It can fail if the stream wasn't created in the way that supports it.
2. As per

	https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.getbuffer?view=net-7.0#system-io-memorystream-getbuffer,

   it will return the _raw_ contents of the buffer, including
   potentially unused bytes.

To fix, use `MemoryStream.ToArray()` instead, which avoids both
pitfalls. Notably, `ToArray()` always returns the full contents of the
buffer, regardless of `Position`, as documented in:

    https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card 2023-09-18 11:30:14 +02:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment 2023-09-18 10:46:14 +02:00
Bartłomiej Dach
3709861132
Merge pull request #24814 from LukynkaCZE/parse-only-supported-char-uris
Parse only supported schemes as URIs
2023-09-18 10:20:09 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much 2023-09-18 09:20:24 +02:00
Dean Herbert
be026f7ff1 Bump realm once more 2023-09-17 01:27:43 +09:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select 2023-09-15 20:26:17 -07:00
Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5eccc771c2
Turn off non-perfect judgements for catch scoring test scene 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point 2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0 Make not extension method 2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff Move to extension method and throw on non-legacy ruleset 2023-09-15 17:38:34 +09:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve 2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00
Lukynka CZE
9b8fdcbcdc somehow accidentally removed backslashes 2023-09-14 17:55:53 +02:00
Lukynka CZE
66751ef5bb add regex 2023-09-14 17:46:29 +02:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation 2023-09-14 16:23:30 +02:00
Dean Herbert
57f32b177d Fix incorrect handling of non-MemoryStream pathway 2023-09-14 22:19:18 +09:00
Bartłomiej Dach
94cdcfd7ce
Move collapsed bindable back to BeatmapAttributesDisplay for now
Better to have it only in one place that needs it, rather than have it
not work as expected when someone inherits
`ModFooterInformationDisplay`.
2023-09-14 14:56:58 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching 2023-09-14 12:12:23 +02:00
Bartłomiej Dach
3f7b8dbe58
Merge branch 'master' into move-mod-select-diff-multiplier 2023-09-14 11:26:22 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming 2023-09-14 11:24:53 +02:00
Bartłomiej Dach
2d3be819d0
Merge pull request #24796 from peppy/collapse-preset-column
Collapse mod presets column slightly when not in use
2023-09-14 11:07:36 +02:00
Bartłomiej Dach
18672e178f
Merge pull request #24795 from peppy/fix-mod-rate-adjust-tooltip-x
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-14 10:18:32 +02:00
Dean Herbert
900376b662 Refactor storyboard resource lookup to be more streamlined 2023-09-14 16:15:50 +09:00
Bartłomiej Dach
68323671ec
Update framework and resources 2023-09-14 08:24:18 +02:00
Dean Herbert
7bf0a22112 Improve flash effect 2023-09-14 13:57:56 +09:00
Dean Herbert
364094fcf2 Inline all archive reader pathing 2023-09-14 13:38:23 +09:00
Dean Herbert
541cd972e1 Rename ArchiveReader implementations to read better 2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196 Avoid MemoryStream.ToArray overhead in LegacyByteArrayReader 2023-09-14 13:33:25 +09:00
Dean Herbert
b5902a8736 Avoid MemoryStream overhead for incoming non-MemoryStream in ImportTask 2023-09-14 13:29:29 +09:00
Dan Balasescu
753c1c877c Revert masking SSBO changes 2023-09-13 23:10:13 +09:00
Dean Herbert
32946413de Change display text from "difficulty" to "score" multiplier 2023-09-13 20:01:19 +09:00
Dean Herbert
3e1388c73f Add vertical animation when difficulty multiplier is changed 2023-09-13 19:57:48 +09:00
Dean Herbert
824a3e4adc Update DifficultyMultiplierDisplay to use new shared design 2023-09-13 19:56:31 +09:00
sw1tchbl4d3
5b2af7f264 Default to none bank if invalid samplebank is specified 2023-09-13 12:44:00 +02:00
Dean Herbert
46d5aa59bf Split base design out of BeatmapAttributesDisplay 2023-09-13 19:33:30 +09:00
Dean Herbert
9a7d1ed98b Tidy up DifficultyMultiplierDisplay 2023-09-13 18:55:17 +09:00
Dean Herbert
35840bf671 Combine ModCounterDisplay and DifficultyMultiplierDisplay into one class 2023-09-13 18:51:56 +09:00
Dean Herbert
491d94c5ac Use local shear definition 2023-09-13 18:51:50 +09:00
Dean Herbert
41b0619533 Fix shear being included on wrong side of ModCounterDisplay 2023-09-13 18:19:42 +09:00
Dean Herbert
923c2a16ed Fix weird centering of multiplier "x" 2023-09-13 18:11:16 +09:00
Dean Herbert
21252c1c23 Fix animations 2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a Fix layout decision to account for new multiplier addition 2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed Move multiplier display to bottom of sceen to make visible while customising 2023-09-13 17:43:55 +09:00
Dean Herbert
be373391f8 Simplify multiplier display implementation 2023-09-13 17:43:41 +09:00
Dean Herbert
f5cee22db7 Collapse mod presets column slightly when not in use 2023-09-13 17:05:42 +09:00
Dean Herbert
d146da9546 Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip 2023-09-13 16:43:48 +09:00
Dean Herbert
4ecc4632aa Make rounding error even less precise
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dean Herbert
0d7157f727
Merge branch 'master' into map_info_on_mod_settings 2023-09-12 17:16:47 +09:00
Dean Herbert
7e3652284d Adjust various class naming and add some xmldoc 2023-09-12 17:15:16 +09:00
Dean Herbert
3da30485b2 Move shear spec to correct location 2023-09-12 17:06:45 +09:00
Dean Herbert
e40eaa7377 Improve collapse/expand animations
Especially when on a screen resolution where it would start collapsed.
2023-09-12 17:06:45 +09:00
Dean Herbert
7aaf88ae84
Merge branch 'master' into overlays/profile/previous-usernames 2023-09-12 15:54:41 +09:00
Dean Herbert
23521ad394 Simplify container structure and mention why a zero-size container is being used 2023-09-12 15:53:27 +09:00
Dean Herbert
a6acd00908 Reword inline comment 2023-09-12 15:46:05 +09:00
Dean Herbert
b4bedee49e Adjust naming of component to give more context 2023-09-12 15:43:59 +09:00
Dean Herbert
04ab44bb7a
Reword xmldoc to read better
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-12 15:28:55 +09:00
tsrk.
f331f92151
chore: explain f6031bc1 2023-09-11 16:06:06 +02:00
tsrk.
8c989d77bd
revert: use OverlayColourProvider for B6
Refs: 293b81106261b1a3aad47d9461a8ba7f550c8b6
2023-09-11 16:03:15 +02:00
tsrk.
c6e8a77f08
refactor: slightly offset to make it look good 2023-09-11 15:22:23 +02:00
tsrk.
65f3feb044
refactor: remove container position 2023-09-11 15:21:51 +02:00
tsrk.
8c137353b6
feat: integrate previous usernames tooltip to profile overlay 2023-09-11 15:02:19 +02:00
tsrk.
200b3f87ff
fix: adjust values according to osu-web 2023-09-11 14:26:10 +02:00
tsrk.
f6031bc15f
fix: prevent flickering when hovering out 2023-09-11 13:41:32 +02:00
tsrk.
293b811062
feat(OsuColours): add B6 2023-09-11 13:09:49 +02:00
Bartłomiej Dach
eebacfb982
Make mod effect preview uncollapse on hover 2023-09-11 10:59:19 +02:00
Bartłomiej Dach
d51396fdaf
Collapse mod effect preview when it's not wide enough to fit 2023-09-11 10:46:07 +02:00
Bartłomiej Dach
3deb6cb4ec
Fix z-order of mod preview panel 2023-09-11 10:19:02 +02:00
Bartłomiej Dach
0822e8b925
Fix preview panel not being marked nullable 2023-09-11 10:18:37 +02:00
Bartłomiej Dach
f9d4fbee56
Add collapsed state to effect preview panel 2023-09-11 10:16:24 +02:00
Bartłomiej Dach
ff6bf0bc2c
Fix slightly wrong binding setup 2023-09-11 10:16:09 +02:00
Bartłomiej Dach
97665e029b
Remove weird fade 2023-09-11 10:00:44 +02:00
Bartłomiej Dach
589f56d20c
Merge branch 'master' into map_info_on_mod_settings 2023-09-11 09:55:54 +02:00
Bartłomiej Dach
76bf82d900
Do not show mod effects on free mod select 2023-09-11 09:55:45 +02:00
Bartłomiej Dach
53c30dca64
Fix data flow being sometimes incorrect 2023-09-11 09:53:58 +02:00
Bartłomiej Dach
552230af9d
Refactor layout of display 2023-09-11 09:44:52 +02:00
Bartłomiej Dach
f591a30ea7
Refactor preview panel to be more self-contained 2023-09-11 09:19:34 +02:00
Bartłomiej Dach
c1a2b86f3f
Extract constants properly 2023-09-11 08:29:37 +02:00
Bartłomiej Dach
23c4a03848
Fix code inspections 2023-09-11 08:26:05 +02:00
Bartłomiej Dach
e3a0a914e7
Merge pull request #24727 from peppy/fix-mania-skin-lookups-no-sprites
Fix osu!mania legacy skin configurations not working when notes are not skinned
2023-09-11 08:11:58 +02:00
Givikap120
507f9642cc Better counter formatization
Now CS and HP have 1 decimal point precision, while AR and OD is kept with 2 because of future support of rate-changed AR/OD
2023-09-08 22:15:30 +03:00
Givikap120
ed213dad6c minor format fix (again) 2023-09-08 20:38:24 +03:00
Givikap120
a01537c763 minor format fix 2023-09-08 20:37:07 +03:00
Givikap120
02e2b8546c fixed all stated problems 2023-09-08 20:32:55 +03:00
Bartłomiej Dach
2bb869732e
Delete outdated warning disables 2023-09-07 18:47:01 +02:00
Dan Balasescu
4198e025fa Fix overflow 2023-09-08 00:27:01 +09:00
Dan Balasescu
2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert
dcbdc114ce Remove precision limitations of SliderVelocity 2023-09-07 17:41:58 +09:00
Dean Herbert
b34a36f6ce Remove all usage of LegacyDifficultyControlPoint 2023-09-07 17:41:57 +09:00
Dean Herbert
b1a9f50065
Merge pull request #24736 from isakvik/negative-ar-adjustment
Allow "Difficulty Adjust" mod's extended AR selection to go below zero
2023-09-07 17:17:59 +09:00
Dean Herbert
4d12678c9d
Merge pull request #24734 from Joehuu/hd-badges
Use `@2x` variant of profile badges
2023-09-07 15:26:58 +09:00
Bartłomiej Dach
9c6f77b26e
Fix too many things being exposed 2023-09-07 08:11:04 +02:00
Dean Herbert
281c2f6de1
Merge pull request #24733 from Joehuu/wedge-title-artist-link
Link new song select wedge title and artist to search text box
2023-09-07 14:51:43 +09:00
Dean Herbert
e05d7d5f8d Inline local control 2023-09-07 14:22:06 +09:00
Dean Herbert
d2a6235135 Fix code quality issues 2023-09-07 14:19:19 +09:00
Joseph Madamba
0bbe28dcc9
Update badge header background color in line with web 2023-09-06 16:43:32 -07:00
isakvik
2ab11ab568 adds new diffsetting control that shows millisecond values for approach rate override 2023-09-07 01:41:22 +02:00
Joseph Madamba
5ee412cc9a
Use @2x variant of profile badges 2023-09-06 16:17:53 -07:00
Joseph Madamba
d0780fb765
Add comment explaining the max width 2023-09-06 15:01:55 -07:00
Joseph Madamba
97bd90c0ff
Link new song select wedge title and artist to search text box 2023-09-06 14:41:10 -07:00
isakvik
3db0d0d341 extendable minimum AR value for osu!std diff adjust mod, set to -10 2023-09-06 23:26:34 +02:00
Bartłomiej Dach
ce4b523950
Merge branch 'master' into fix-mania-skin-lookups-no-sprites 2023-09-06 19:29:13 +02:00
Bartłomiej Dach
17e791d984
Merge branch 'master' into skin-lookup-debug 2023-09-06 18:44:50 +02:00
Bartłomiej Dach
fe3683ed5b
Adjust formatting slightly
The uneven spacing was bothering me...
2023-09-06 18:41:27 +02:00
Bartłomiej Dach
f9db0fad88
Ignore unused thing inspection harder 2023-09-06 18:37:17 +02:00
Dean Herbert
dce6adb895
Add text explanation of icons
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-07 01:23:56 +09:00
cdwcgt
68752f95e5
color friend score to pink 2023-09-06 22:58:03 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Dean Herbert
88b9d3237a Fix osu!mania legacy skin configurations not working when notes are not skinned 2023-09-06 18:03:54 +09:00
Dean Herbert
14936677fc Ignore unused thing inspection 2023-09-06 18:03:40 +09:00
Dean Herbert
6c95b88589 Add debug output for skin configuration lookups
We've struggle with debugging these over the years so I think this was
worth a couple of hours of work.

Example of osu! lookups:

```log
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]:
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: ScorePrefix) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: ScorePrefix) 🔴
```

Example of osu!mania lookups:

```log
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:
[runtime] 2023-09-06 08:28:34 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: antiPLUR - Runengon (Raveille) [Easy] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:

```
2023-09-06 18:03:40 +09:00