Dean Herbert
505608ab12
Merge branch 'realm-integration/skins-rebase' into realm-integration/skins-filename-lookup-performance
2021-12-02 14:01:39 +09:00
Dean Herbert
0a14acfd83
Fix incorrect conditional on export/mutate feasability of skin
2021-12-02 13:41:58 +09:00
Dean Herbert
4f826589e5
Remove subscription logic for the time being
2021-12-02 12:20:07 +09:00
Dean Herbert
1cf1543866
Fix test failures due to attempting to subscribe to non-managed instances
2021-12-01 13:50:19 +09:00
Dean Herbert
9411b42d0a
Cache skin filename to path mapping to reduce realm lookups during gameplay skin changes
2021-12-01 02:27:41 +09:00
Dean Herbert
0efd565c8b
Remove forgotten using statement
2021-11-30 15:41:07 +09:00
Dean Herbert
6bf9327228
Add linking property on SkinFileInfo
to allow EF to understand the link post-rename
2021-11-30 15:17:16 +09:00
Dean Herbert
0d18c83d75
Simplify deletion by adding always present conditionals to Delete
method
2021-11-29 18:28:25 +09:00
Dean Herbert
f6a3709060
Store default skins to database
2021-11-29 18:28:25 +09:00
Dean Herbert
c629a7a36f
Fix random selection and avoid using legacy events for handling skin import/deletion
2021-11-29 18:28:25 +09:00
Dean Herbert
29d074bdb8
Implement missing behaviours required for skin file operations via RealmArchiveModelManager
2021-11-29 18:28:25 +09:00
Dean Herbert
e2d9a685d7
Update skin implementations to match new structures
2021-11-29 18:28:25 +09:00
Dean Herbert
6b55de2845
Use ILive
for Skin.SkinInfo
2021-11-29 18:28:25 +09:00
Dean Herbert
23146d59d1
Use ILive
for current skin
2021-11-29 18:28:25 +09:00
Dean Herbert
2a9c7c00c8
Update tests and file access code
2021-11-29 18:28:25 +09:00
Dean Herbert
3db5646fa8
Create Guid constants for system skins (and store skin choice to configuration as guid)
2021-11-29 18:28:25 +09:00
Dean Herbert
e283379f0e
Replace EF SkinInfo
with realm implementation
2021-11-29 18:28:25 +09:00
Dean Herbert
0a961fd9d8
Replace usages of IHasFiles
with IHasRealmFiles
2021-11-29 18:28:25 +09:00
Dean Herbert
94b10492be
Update legacy SkinManager
to match new interface
2021-11-29 18:20:07 +09:00
Dean Herbert
cc1b91e4bd
Split out legacy model export logic into LegacyModelExporter
classes
2021-11-25 16:41:12 +09:00
Dean Herbert
7488ccd5fe
Update all models to implement IHasNamedFiles
2021-11-25 16:41:12 +09:00
Dean Herbert
6cab7b877d
Move stable import handling into its own class
2021-11-25 15:36:58 +09:00
Dean Herbert
2bfc473689
Split out SkinModelManager
from SkinManager
2021-11-25 15:14:43 +09:00
Dan Balasescu
016684b52d
Remove unreachable code
2021-11-24 20:29:47 +09:00
Dean Herbert
99a139dc98
Initialise all file lists at construction time (and remove setter)
2021-11-24 13:56:21 +09:00
Dean Herbert
83b4625bd5
Replace existing cases with new helper method
2021-11-19 22:15:41 +09:00
Dean Herbert
eecf6ad558
Add IsManaged
helper method to EF classes to match realm implementation
2021-11-19 21:56:06 +09:00
Dean Herbert
59e763467f
Move StoragePath
implementation to an extension method
2021-11-19 16:08:38 +09:00
Dean Herbert
1f5ca122b0
Merge branch 'master' into user-class-cleanup
2021-11-05 13:55:22 +09:00
Jason Won
9e7d559f55
fix aspect locked scaling of skin components
2021-11-04 17:10:41 -04:00
Dean Herbert
ed07ee8c61
Update all existing usages of AuthorString
/AuthorId
...
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
smoogipoo
1e9211c00b
Use explicit type
2021-11-02 15:41:25 +09:00
Dean Herbert
5d784b2ef8
Perform a consistency check by decoding the newly written skin.ini
during ComputeHash
...
As this has regressed twice now, let's play it safe and bail rather than
stack overflowing. Note that as all the underlying issues that could
trigger this have been fixed, no additional tests have been added. To
test, comment out `SkinManager.cs` line 228-229 to cause a failure. The
new logic will kick in and show a log output message, but all tests will
still (correctly) pass.
2021-11-02 14:11:25 +09:00
Dean Herbert
2e66ab453d
Always write automated changes to skin metadata at the end of the file
...
Apart from being cleaner (and allowing removal at the point of export,
if that is ever requires), this also gives us a better guarantee that
the metadata is going to take effect.
By writing the `[General]` section ourselves, we avoid any issues that
may be present from a user constructing the file (incorrectly)
themselves, such as multiple `Title:` entries or a malformed `[General]`
marker.
The main goal is to ensure that the name is updated to what we expect it
to be.
2021-11-02 14:11:25 +09:00
Dean Herbert
6b250955d7
Add missing verbatim string markers
2021-11-01 14:24:38 +09:00
Dean Herbert
5bfb16efe2
Ignore case when searching for existing skin.ini
2021-11-01 14:24:38 +09:00
Dean Herbert
add39fbd4f
Merge branch 'master' into fix-skin-layout-editor-crash
2021-10-28 06:24:24 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
26cf5370c3
Remove unused reader
parameter
2021-10-24 23:48:46 +09:00
Dean Herbert
5303cae044
Add mention of stream close logic
2021-10-24 23:43:37 +09:00
Bartłomiej Dach
051cc2cd92
Update reference to configuration population process in comment
2021-10-24 12:47:17 +02:00
Dean Herbert
93482414d6
Remove SkinConfiguration
subclasses and allow configuration parsing for all skin types
2021-10-22 14:42:23 +09:00
Dean Herbert
82d0a6515f
Fix incorrect conditional for checking whether import (would fail for default skin)
2021-10-22 14:08:12 +09:00
Dean Herbert
9cdc1ba592
Fix default legacy skin not being able to read from stored skin.ini
2021-10-22 13:43:45 +09:00
Dean Herbert
e5b73f25cd
Ensure newly created skin.ini
files are set to latest version
2021-10-22 12:56:05 +09:00
Dean Herbert
a5088cac27
Fix default metadata propagation when no files are present
2021-10-21 13:43:42 +09:00
Dean Herbert
59b7210efa
Revert disallowing imports with no files
...
While it is logical that we want this, from a testing perspective this is a bit of a nightmare to fix. Let's revisit at a later point in time.
2021-10-21 13:43:42 +09:00
Dean Herbert
68c01fc204
Fix infinite loop on default skin (it can't have a skin.ini
)
2021-10-20 17:56:45 +09:00
Dean Herbert
9e6e41d7c0
Add migration to reset and repopulate existing skin hashes
2021-10-20 17:56:45 +09:00
Dean Herbert
602303e947
Add test coverage for skin.ini
contents
2021-10-20 17:56:45 +09:00
Dean Herbert
a95c754fd3
Fix multiple issues and make metadata fallback process more logical
2021-10-20 17:56:45 +09:00
Dean Herbert
fa542f2547
Include json
files in skin hashing
...
This covers the new layout storage we are doing.
2021-10-20 17:45:06 +09:00
Dean Herbert
789c715f13
Add skin.ini
write support to allow for more correct hashing
2021-10-20 17:45:06 +09:00
Dean Herbert
d7cbacc5a0
Rename OnSourceChanged
and expand on xmldoc to mention that it doesn't fire SourceChanged
2021-10-12 13:04:48 +09:00
Dean Herbert
a849e7343e
Add lock to ensure no threading shenanigans
2021-10-12 13:04:24 +09:00
Dean Herbert
077dcf5cd9
Add missing documentation for SourceChanged
2021-10-12 12:50:28 +09:00
Dean Herbert
39a3482458
Replace Add/Reset methods with single Set
method
2021-10-12 11:55:07 +09:00
Dean Herbert
df83f0db08
Fix cross-thread list manipulation in SkinProvidingContainer
2021-10-12 11:28:11 +09:00
Dean Herbert
43aacb3831
Fix two different skins displaying at the same time when rapidly switching
2021-10-11 16:11:15 +09:00
Dean Herbert
06cce0119c
Use localisable format string for comma separator mode
2021-10-10 17:41:16 +09:00
Dean Herbert
81a13566bc
Adjust default location slightly, fix alignment of "pp" subtext
2021-10-05 15:28:03 +09:00
smoogipoo
221cc1747c
Drop "default" prefix
2021-10-04 20:34:28 +09:00
smoogipoo
031c5a441e
Merge branch 'master' into realtime-pp-display
2021-10-04 20:19:37 +09:00
smoogipoo
4871db2f86
Merge branch 'master' into importer-returns-live
2021-10-04 19:42:36 +09:00
Dean Herbert
916342c837
Merge branch 'master' into importer-returns-live
2021-10-04 16:24:26 +09:00
smoogipoo
69c2b7dc59
Merge branch 'master' into rename-beatmap-info-beatmap-fields
2021-10-04 16:03:22 +09:00
Dean Herbert
ec61c3c5ee
Rename all remaining cases
2021-10-03 00:55:29 +09:00
smoogipoo
adff418fd2
Guard against exception in skin deserialisation
2021-10-01 22:17:38 +09:00
Dean Herbert
a2e61883e3
Initial push to use ILive
in import process
2021-09-30 22:55:25 +09:00
smoogipoo
fab0d531be
Add counter to HUD
2021-09-30 17:55:00 +09:00
Dean Herbert
4fd19cbb0d
Use null check instead of assert in Hide()
due to public exposure
2021-09-29 18:58:43 +09:00
Dean Herbert
c5b7e97bd9
Fix skin editor potentially crashing during close process
...
As reported at
https://github.com/ppy/osu/discussions/14850#discussioncomment-1399382 .
2021-09-29 18:53:49 +09:00
Dean Herbert
1b13b74740
Fix skin editor potentially leaving game-wide masking in the wrong state
...
Just going with the simplest way to solve this.
Closes https://github.com/ppy/osu/issues/14769 .
2021-09-17 13:48:20 +09:00
smoogipoo
4b5857c876
Merge branch 'baseline-changes-update' into update-framework
2021-09-16 18:34:22 +09:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Dean Herbert
6f2d818b64
Merge pull request #14740 from smoogipoo/mania-note-animations
...
Add animation support for mania notes
2021-09-16 16:34:53 +09:00
Dean Herbert
15e3f95c87
Remove remnants of DatabasedSetting
from SkinInfo
...
This was never used
2021-09-15 17:12:04 +09:00
Salman Ahmed
8217b90b1c
Consider legacy glyph texture heights as the baselines for simplicity
...
Mixing `LegacySpriteText` with legitment fonts should never be the case,
so it's fine to consuder the height as the baseline, since there's
really no other way around it.
2021-09-15 09:14:47 +03:00
smoogipoo
63aa3ddcba
Add animation support for mania notes
2021-09-14 17:45:23 +09:00
Dean Herbert
568a8ee97e
Merge branch 'master' into fix-hud-test-failure-2
2021-08-24 16:54:48 +09:00
Dean Herbert
3f0f820653
Add comment explaining reasoning for override
2021-08-24 16:54:19 +09:00
smoogipoo
9f17c38e36
Fix hud overlay components being blocked from load
2021-08-24 15:18:27 +09:00
Dean Herbert
a2484692b3
Change brackets to square
2021-08-23 20:37:19 +09:00
Dean Herbert
7b3f7cc7c1
Change skin import to also include directory names in the skin name where appropriate
2021-08-23 20:24:00 +09:00
Bartłomiej Dach
58ecee543a
Trim redundant default argument value
2021-08-17 23:00:10 +02:00
Dean Herbert
d66f7cb6b5
Fix tests by allowing retrieval with files where required
2021-08-17 19:21:22 +09:00
Dean Herbert
4bf22db4ff
Attempt to reduce skin lookup overhead where file access is not required
2021-08-17 00:23:30 +09:00
Bartłomiej Dach
7c88a1c6de
Add a way to change custom combo colours via IHasComboColours
...
`IHasComboColours` was already mutable (via a strange
`AddComboColours()` method) and exposing a straight list is easier to
work with. `IHasCustomColours` is also similarly externally mutable (in
a way which is not easily removable).
2021-08-15 20:06:06 +02:00
TheOmyNomy
c5b490c441
Use non linear colour interpolation for legacy health display
2021-08-10 11:29:31 +10:00
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
...
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Bartłomiej Dach
b1087d14f3
Merge branch 'master' into skin-editor-button-access
2021-07-22 22:49:44 +02:00
Dean Herbert
21053381c7
Fix skin editor potentially eating GlobalAction.Back
when not displayed
2021-07-22 15:59:00 +09:00
Dean Herbert
3fd8de3b91
Fix skin editor's fake overlay potentially getting into a bad state
2021-07-22 15:57:47 +09:00
Dean Herbert
399c3b0be8
Rename property, reword xmldoc and improve readability of update code
2021-07-21 17:32:56 +09:00
ekrctb
1bff4373b3
Allow specifying flipping support of selection box different from scaling
2021-07-21 15:59:45 +09:00
Salman Ahmed
9d92b795fa
Revert making ComboOffset
s legacy and define BeatmapSkinComboIndex
instead
2021-07-20 14:15:43 +03: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
Salman Ahmed
554652b033
Merge branch 'refactor-combo-colour-retrieval' into legacy-beatmap-combo-offset
2021-07-20 10:11:52 +03:00
Salman Ahmed
1af230c48c
Merge branch 'master' into refactor-combo-colour-retrieval
2021-07-20 10:08:25 +03:00
Dean Herbert
c18b8ca86c
Add missing ToArray()
call
2021-07-07 14:08:29 +09:00
Dean Herbert
ca791c2afa
Remove unused using statement
2021-07-07 13:53:00 +09:00
Dean Herbert
35d4b12a4f
Remove single local usage of AllSources
2021-07-07 13:52:52 +09:00
Dean Herbert
eb8b14a931
Reorder methods to make more sense
2021-07-07 13:51:51 +09:00
Dean Herbert
523546d8b6
Use List to guarantee lookup order
2021-07-06 22:51:56 +09:00
Dean Herbert
d75d67577a
Fix regressed tests
2021-07-06 17:37:34 +09:00
Dean Herbert
cd4885e450
Add xmldoc and remove any question of how the intitial flow is being run
2021-07-06 17:18:45 +09:00
Dean Herbert
032c285ede
Move private downwards
2021-07-06 17:07:29 +09:00
Dean Herbert
1232925f93
Make source manipulation methods protected
2021-07-06 17:06:00 +09:00
Dean Herbert
b4240d3ca4
Simplify lookups to avoid a second dictionary fetch
2021-07-06 17:04:59 +09:00
Dean Herbert
ec1224218c
Localise source changed flow for better clarity
2021-07-06 16:57:19 +09:00
Dean Herbert
935fbe7cc6
Remove double fetch/binding of parent source
2021-07-06 16:51:29 +09:00
Dean Herbert
93ef783339
Remove BindableList usage
2021-07-06 16:40:23 +09:00
PercyDan54
e1c646b9b2
Remove redundant arguments
2021-07-05 23:52:39 +08:00
Dean Herbert
ec71deec51
Remove some mentions of "lazer"
...
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +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
094cd31361
Merge pull request #13441 from frenzibyte/ruleset-resources-skin
...
Provide access to ruleset resources during `ISkinSource` lookups
2021-06-30 15:26:37 +09:00
Dan Balasescu
92fcf90768
Merge branch 'master' into import-early-checksum-abort
2021-06-28 19:29:08 +09:00
Salman Ahmed
66fc95c111
Use LastOrDefault
instead
2021-06-28 12:43:58 +03:00
Salman Ahmed
7197998a10
Remove resolution to SkinManager
and use pattern matching instead
2021-06-28 12:43:13 +03:00
Salman Ahmed
177bfe1234
Merge branch 'master' into ruleset-resources-skin
2021-06-28 11:16:37 +03:00
Salman Ahmed
779a1b322c
Add comment explaining insertion of ruleset skin before default skin
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-06-28 09:38:42 +03:00
Salman Ahmed
f598de4cdb
ResourcesSkin -> ResourceStoreBackedSkin
2021-06-28 09:18:29 +03:00
Salman Ahmed
692f24437e
Maintain ruleset resources skin across multiple source changes
2021-06-28 09:11:28 +03:00
Dean Herbert
f777741ca7
Simplify instantiation
2021-06-28 14:51:27 +09:00
Dean Herbert
e387feb1d6
Add inline comment mentioning why CreateChildDependencies
is being used in this instance
2021-06-28 14:39:55 +09:00
Dean Herbert
fdd6778f36
Merge branch 'master' into fix-initial-ruleset-skin-loading
2021-06-28 14:35:34 +09:00
Dean Herbert
44f875b802
Bypass optimised existing check in SkinManager
(due to custom hashing function)
2021-06-27 16:35:13 +09:00
Dean Herbert
d1f852d102
Make Populate
abstract to avoid unnecessary base call async complexity
2021-06-27 14:29:02 +09:00
Salman Ahmed
e8e9fdd533
Dispose ResourcesSkin
before clearing skin sources
2021-06-26 12:34:30 +03:00
Salman Ahmed
e5eea503db
Remove finalizer logic from ResourcesSkin
2021-06-26 12:21:49 +03:00
Salman Ahmed
f07008a0a2
Fix RulesetSkinProvidingContainer
potentially late in setting up skin sources
2021-06-25 10:05:51 +03:00
Salman Ahmed
a98b5618b8
Convert RulesetResourcesSkin
to plain ResourcesSkin
and pass non-null resources
2021-06-24 10:07:38 +03:00
Salman Ahmed
d484469906
Handle case where SkinManager
sources aren't part of AllSources
...
In tests.
2021-06-23 10:44:23 +03:00
Salman Ahmed
53fa229880
Add ruleset resources skin before SkinManager.DefaultSkin
2021-06-23 10:09:25 +03:00
Salman Ahmed
2e6800f586
Enable NRT in RulesetResourcesSkin
2021-06-23 09:52:00 +03:00
Salman Ahmed
0db06c727b
Dispose resource stores on finalizer
2021-06-23 09:41:45 +03:00
Salman Ahmed
ee84364d7c
Resolve conflict issues
2021-06-22 20:38:24 +03:00
Salman Ahmed
896c1dc202
Merge branch 'master' into ruleset-resources-skin
2021-06-22 20:36:49 +03:00
Dean Herbert
4cb9c6a842
Merge pull request #13423 from frenzibyte/transformers-per-skin
...
Refactor ruleset skin transforming logic to be per-`ISkin` rather than one `ISkinSource`
2021-06-22 21:24:56 +09:00
Salman Ahmed
71e2815e7e
Update and improve code documentation
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-06-22 12:05:17 +03:00
Salman Ahmed
c1284940e1
Fix potentially providing the same skin instance twice in AllSources
2021-06-22 10:49:37 +03:00
Salman Ahmed
d0cdc07b11
Reuse AllSources
when looking up on FindProvider
2021-06-22 10:49:21 +03:00
Dean Herbert
4b3165084d
Move scoped functionality into local function
2021-06-22 16:40:56 +09:00
Dean Herbert
ffac32a848
Reword xmldoc
2021-06-22 16:40:48 +09:00
Dean Herbert
14bdcef26b
Add missing newline
2021-06-22 16:20:09 +09:00
Dean Herbert
0ad189e357
Expose skin sources via ISkinSource
and revert to consuming based on hierarchy
2021-06-22 16:19:55 +09:00
Dean Herbert
1b0aadcc6f
Merge branch 'master' into transformers-per-skin
2021-06-22 16:03:15 +09:00