Dean Herbert
35d2f973a3
Prefer provided resource store over realm backed to keep tests working
2022-03-23 14:57:42 +09:00
Dean Herbert
b4d89b4e31
Replace duplicate LegacySkinResourceStore
class with RealmBackedResourceStore
2022-03-23 14:57:42 +09:00
Dean Herbert
5c4a74378d
Remove Textures
and Samples
initialisation to Skin
2022-03-23 14:57:42 +09:00
Dean Herbert
09ec49e6fa
Rename realm-backed resource store in preparation for non-legacy usage
2022-03-22 18:31:18 +09:00
Dean Herbert
fb7f9a81db
Remove unnecessary equality check in skin editor construction path
2022-03-22 14:35:13 +09:00
Dean Herbert
9a2691c1bc
Remove unnecessary schedule
2022-03-21 23:54:47 +09:00
Salman Ahmed
33acc5d720
Remove no longer valid comments
2022-03-21 14:06:53 +03:00
Salman Ahmed
058fbbbe6c
Remove unused using directive
2022-03-21 14:06:36 +03:00
Dean Herbert
2a696783af
Remove unused const in SkinEditorOverlay
2022-03-21 17:33:56 +09:00
Dean Herbert
2f18c512cd
Convert SkinEditorOverlay
to an OverlayContainer
to allow it to block input
2022-03-21 17:33:56 +09:00
Dean Herbert
3643f879e4
Add test coverage of skin editor settings slider not working via keyboard adjustments
2022-03-21 17:33:56 +09:00
Dean Herbert
355b0fa314
Fix loading player via skin editor still allowing changing current audio track
...
`PlayerLoader` is required in the sequence to get the game into the
correct state for gameplay right now. Applying ths simplest fix here.
Closes https://github.com/ppy/osu/issues/17351 .
2022-03-21 13:49:56 +09:00
Dean Herbert
806a16d8f6
Fix SkinComponentToolbox
attempting to create instances of abstract classes
2022-03-18 20:13:15 +09:00
Dean Herbert
e252f1a3cd
Add explanation about try-catch logic in SkinComponentToolbox
2022-03-17 18:40:26 +09:00
Dean Herbert
1d83b36cfc
Merge branch 'master' into skin-editor-borrowed-dependencies
2022-03-17 15:09:04 +09:00
Dan Balasescu
e3cbde5099
Merge pull request #17282 from peppy/skin-editor-reset-position
...
Add "Reset position" menu item in skin editor
2022-03-17 14:20:24 +09:00
Dan Balasescu
1eac0f41bf
Remove unused using
2022-03-17 13:44:54 +09:00
Dan Balasescu
07433d0540
Merge pull request #17278 from peppy/skin-editor-multiple-component-settings
...
Show settings for multiple skin components in a selection
2022-03-17 13:43:59 +09:00
Dean Herbert
6df36171b5
Merge branch 'master' into skin-editor-toolbox-ui
2022-03-16 22:21:10 +09:00
Dean Herbert
7e52623645
Add "Reset position" menu item in skin editor
2022-03-16 20:02:52 +09:00
Dean Herbert
cc356bcfe4
Show components available for current screen only (using actual live dependencies)
2022-03-16 19:42:00 +09:00
Dean Herbert
b07ca87965
Merge branch 'skin-editor-toolbox-ui' into skin-editor-borrowed-dependencies
2022-03-16 19:38:28 +09:00
Dean Herbert
27122c17c9
Show settings for multiple components in a selection
2022-03-16 19:35:45 +09:00
Dean Herbert
54e351efe9
Convert top level skin editor layout to use grid container
...
Fix `SkinEditor`'s initial target not being a `Screen`
2022-03-16 19:30:51 +09:00
Dean Herbert
4525ed645c
Update skin editor to use EditorSidebar
2022-03-16 19:30:51 +09:00
Dean Herbert
59cb1ac126
Order components by name for now
2022-03-16 19:21:15 +09:00
Dean Herbert
e4a6b7ae91
Expand toolbox component items on hover
2022-03-16 19:21:15 +09:00
Dean Herbert
fdb411c0f3
Update skin editor toolbox design to suck less
2022-03-16 19:21:15 +09:00
Dean Herbert
b08d4bb8eb
Move SceneLibrary
implementation to its own file
2022-03-16 19:13:52 +09:00
Dean Herbert
ee3715f5cf
Use OverlayColourProvider
and adjust metrics to roughly match new designs
2022-03-16 19:13:52 +09:00
Dean Herbert
aff6a5a428
Better align scene selector with menu bar
2022-03-16 19:13:52 +09:00
Dean Herbert
c6aa32a003
Add basic song select setup for skinnability
2022-03-16 19:12:06 +09:00
Dean Herbert
8d85723a62
Split out SceneLibrary
into its own component
2022-03-16 19:12:06 +09:00
Dean Herbert
d062810ff2
Add basic scene selector
2022-03-16 19:12:06 +09:00
Dean Herbert
c807ad7e4e
Ensure toolbar is hidden even when the active screen is changed while the editor is open
2022-03-16 19:11:22 +09:00
Dean Herbert
86960c791f
Close overlays and toolbar on entering the skin editor
2022-03-16 19:00:23 +09:00
Dean Herbert
99e3161cf0
Fix SkinEditor
's initial target not being a Screen
2022-03-16 18:57:47 +09:00
Dan Balasescu
d80830b415
Merge pull request #17226 from peppy/skin-component-settings
...
Allow skin components to have settings
2022-03-16 17:12:11 +09:00
Dean Herbert
2b02a6555b
Remove current screen check from skin editor changes
2022-03-15 15:40:26 +09:00
Dean Herbert
6d5692fcec
Fix typo in setting name
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-15 14:25:05 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction
2022-03-15 13:31:57 +09:00
Dan Balasescu
ca62560495
Resolve inspections
2022-03-15 09:20:32 +09:00
Dan Balasescu
e79bed8fbe
Merge branch 'master' into skin-component-settings
2022-03-14 18:54:27 +09:00
Dan Balasescu
fd93b42630
Merge pull request #17217 from peppy/skin-editor-reload-on-scene-change
...
Refactor `SkinEditor` to support switching target screens without full reload
2022-03-14 18:02:01 +09:00
Dean Herbert
3c5fda5f23
Add early exist if the target screen is no longer current
2022-03-14 17:24:31 +09:00
Dan Balasescu
3fff7f4b7e
Require ScoreProcessor to receive ruleset
2022-03-14 15:51:10 +09:00
Dean Herbert
7d2752185d
Add disclaimer and adjust metrics of BigBlackBox
2022-03-13 17:03:25 +09:00
Dean Herbert
e4211104b0
Add new settings to the big black box
2022-03-13 17:03:25 +09:00
Dean Herbert
458136dfe7
Add BigBlackBox
for skinning testing purposes
2022-03-13 17:03:25 +09:00
Dean Herbert
8d1ee28e67
Add settings modification UI to skin editor
2022-03-13 17:03:25 +09:00
Dean Herbert
c99397f75a
Add the ability to add settings to skinnable elements
2022-03-13 17:03:25 +09:00
Dean Herbert
7a2a3528ef
Merge branch 'skin-editor-reload-on-scene-change' into skin-component-settings
2022-03-13 17:03:23 +09:00
Dean Herbert
f95e753adb
Rename double-container variable name
2022-03-13 16:10:06 +09:00
Dean Herbert
d1a9b88fe7
Fix typo in comment
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-13 16:05:45 +09:00
Dean Herbert
3db42dd772
Allow skin editor to target different target containers for placement purposes
2022-03-11 23:23:32 +09:00
Dean Herbert
9a1ade4f79
Refactor SkinEditor
to support switching target screens without full reload
2022-03-11 23:08:40 +09:00
Bartłomiej Dach
2354737abe
Merge branch 'master' into scaling-container-better-custom-override
2022-03-03 22:32:23 +01:00
Dean Herbert
b5684aaa76
Scale -> Rect to read better
2022-03-02 20:33:28 +09:00
Dean Herbert
29ed419d53
Change how custom scales are applied to ScalingContainer
to allow for better transitions
2022-03-02 20:13:01 +09:00
Dean Herbert
ff7db4f405
Replace jank buttons with menu in skin editor
2022-03-02 20:08:17 +09:00
Bartłomiej Dach
994fb966b6
Remove Host
ctor param from SkinModelManager
...
No longer used since 29d074bdb8
.
2022-02-01 21:37:19 +01:00
Dean Herbert
cd71ec0edd
Remove ILive<>
interface (and use abstract Live<>
instead)
2022-01-26 13:38:56 +09:00
Dean Herbert
778d2a71b4
Remove Task
from the inner-most Import
method in RealmArchiveModelImporter
...
One of my pending work items for post-realm merge.
The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.
Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dean Herbert
d7342880f5
Update remaining cases of clashes with realm.Write
and realm.RegisterForNotifications
2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5
Update remaining cases of clashing variable name in realm.Run(realm..
2022-01-25 13:04:05 +09:00
Dean Herbert
3e5c9e8436
Fix cases of Access
instead of Realm
2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
114c9e8c1f
Update all usages of CreateContext
to use either Run
or Write
2022-01-21 17:27:08 +09:00
Dean Herbert
a5d2047f05
Fix various cases of creating realm contexts from update thread when not necessary
2022-01-21 01:44:56 +09:00
Dean Herbert
0bd7486a83
Avoid constructor overhead for realm SkinInfo
parameterless constructor
2022-01-20 17:29:07 +09:00
Dean Herbert
5601f6f1fe
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-17 12:29:02 +09:00
Bartłomiej Dach
cbaa3de548
Strip @2x
scale modifiers when looking up legacy skin textures
2022-01-16 19:46:15 +01:00
Dean Herbert
bdb2979b2e
Remove async
from Populate
method
2022-01-13 16:36:54 +09:00
Dean Herbert
1a29098f3b
Change default value and add comment explaining why skins are never "locally available"
2022-01-13 12:50:18 +09:00
Dean Herbert
b2d09b7b10
Fix further warnings
2022-01-12 23:42:12 +09:00
Dean Herbert
08da948afc
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-12 19:22:55 +09:00
Dean Herbert
8c8c5f4c33
Fix skin hash repopulation not working since realm migration
2022-01-12 18:32:51 +09:00
Dean Herbert
a4de0f93fa
Move manager Update
methods to be explicit to where they are still used by legacy code
...
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert
d8e75a9de4
Reimplmeent IsAvailableLocally
as an abstract
method
2022-01-12 17:49:10 +09:00
Dean Herbert
667cdb2475
Fix skin lookup when there's no beatmap file available
2022-01-12 17:00:16 +09:00
Dean Herbert
4763fe54d6
Remove unused store classes
2022-01-12 16:39:36 +09:00
Dean Herbert
3cd996eb4a
Merge branch 'master' into async-deadlock-safety
2022-01-07 17:28:59 +09:00
Dean Herbert
00177a3ae1
Update usages to new naming
2022-01-06 22:54:43 +09:00
Dean Herbert
243a1a3cf7
Fix incorrect origin specification for SkinSelectionHandler
flips
2022-01-06 14:47:44 +09:00
Dean Herbert
866ae3472b
Add global flip hotkeys
2022-01-05 16:48:07 +09:00
Dean Herbert
73b40e6833
Replace usage of .Result
with .WaitSafelyForResult
2022-01-04 11:51:41 +09:00
Dean Herbert
089b756f93
Invert logic to make reading easier
2021-12-30 16:03:16 +09:00
Dean Herbert
ef49f2ed0e
Add extra extra safety against attempting to load a previously expired editor
2021-12-30 16:02:31 +09:00
Dean Herbert
b1a444180f
Fix Show
then Reset
potentially resulting in incorrect load target
2021-12-29 21:46:34 +09:00
Dean Herbert
471eea750a
Fix calling SkinEditorOverlay.Show
before the overlay is loaded causing an exception
...
As seen at https://github.com/ppy/osu/runs/4652969942?check_suite_focus=true .
2021-12-29 21:18:17 +09:00
Bartłomiej Dach
724b601d2a
Rename AllowSampleLookup
argument to something saner
2021-12-26 14:29:07 +01:00
Bartłomiej Dach
dc21c8901e
Always allow looking up storyboard samples from beatmap skin
2021-12-26 14:25:28 +01:00
Dean Herbert
9d85beddbe
Fix null reference in some tests due to missing realm context factory
2021-12-15 11:16:37 +09:00
Dean Herbert
441b7baa93
Provide a realm factory to usages of ToLive
/RealmLive
2021-12-14 14:26:34 +09:00
Dean Herbert
8d9c37a825
Merge branch 'master' into primary-key-consistency
2021-12-08 21:34:38 +09:00
Dan Balasescu
7ef960839b
Merge pull request #15898 from peppy/skin-export-instntiation-info
...
Serialise and deserialise `SkinInfo.InstantiationInfo` to allow for more correct imports
2021-12-06 22:08:20 +09:00
Dean Herbert
07abcf04b4
Merge branch 'master' into realm-integration/skins-filename-lookup-performance
2021-12-06 17:13:33 +09:00
Dean Herbert
68b482fc48
Merge branch 'master' into skin-export-instntiation-info
2021-12-06 17:12:42 +09:00
Dean Herbert
452fa93444
Merge branch 'master' into realm-integration/skins-rebase
2021-12-06 15:21:02 +09:00
Dean Herbert
1eed2436e6
Clean up unused resolved properties
2021-12-03 18:49:49 +09:00
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