Dean Herbert
e4b296e16e
Use OptIn
serialisation on SkinInfo
to avoid writing unnecessary information
2021-12-03 16:36:27 +09:00
Dean Herbert
cdf2fa9930
Serialise and deserialise SkinInfo.InstantiationInfo
to allow for more correct imports
...
Until now, skins were always imported using the `LegacySkin`
instantiation type. For cases where a user has edited the lazer or
classic default (via the new skin editor), which would result in
incorrect fallback paths after exporting and importing the edited skin.
2021-12-02 18:05:16 +09:00
Dean Herbert
0e82e9355b
Ensure skin is saved immediately after becoming mutable
...
Without doing this, the JSON content is not written to the file. A user
assumption is that as soon as a skin shows up in the skin list as
exportable, it should export correctly, so it makes sense that it should
be in a sane state even if the user has not made any changes in the skin
editor yet.
Going forward, we might move more of the json serialisation logic out,
and run for consistency as part of the import process. This seems like
the simplest way to guarantee things for now, though.
2021-12-02 17:42:17 +09:00
Dean Herbert
fe99d4e984
Standardise parameter naming across all file IO methods
2021-12-02 17:19:53 +09:00
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