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
Dan Balasescu
67f795cfa6
Merge branch 'master' into save-on-forced-exit
2021-05-13 22:00:38 +09:00
smoogipoo
1e23c53507
Fix inspection
2021-05-13 21:59:38 +09:00
Dan Balasescu
d5b14b6b99
Merge branch 'master' into remove-skinnable-hud-classes
2021-05-13 21:06:48 +09:00
Dean Herbert
b939318922
Merge branch 'skin-serialisation' into skin-editor-default-placement-location
2021-05-13 19:09:34 +09:00
Dean Herbert
e5f765d1a8
Fix broken exception message
2021-05-13 19:06:58 +09:00
Dean Herbert
bda0ea463a
Merge branch 'skin-serialisation' into save-on-forced-exit
2021-05-13 19:05:47 +09:00
Dean Herbert
c8b7cfc753
Merge branch 'skin-serialisation' into remove-skinnable-hud-classes
2021-05-13 19:05:08 +09:00
Dean Herbert
07e475cd13
Fix skin blueprint box drawing incorrectly when both scale and rotation are applied
2021-05-13 18:54:40 +09:00
smoogipoo
2f025f1967
SkinnableTargetWrapper -> SkinnableTargetComponentsContainer
2021-05-13 18:54:30 +09:00
Dean Herbert
01bc71acd2
Improve ability to parse xmldoc of SkinnableTargetWrapper
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-05-13 18:40:28 +09:00
Dean Herbert
df77b28b48
Add a flimsy guard against null parent to avoid crashes on exit sequence
2021-05-13 18:39:21 +09:00
Dean Herbert
9f8e6979dd
Fix display of skin blueprints when flipped
2021-05-13 18:00:25 +09:00
Dean Herbert
1cda55393e
Add aspect ratio locking and flip support to skin editor
2021-05-13 17:51:57 +09:00
Dean Herbert
ebce3fd3c7
Use ScheduleAfterChildren
to better match comment
2021-05-13 17:29:11 +09:00
Dean Herbert
3ea469813c
Use interface in place of SkinnableTargetContainer
2021-05-13 17:25:51 +09:00
Dean Herbert
0959e7156a
Remove outdated TODO
2021-05-13 17:22:05 +09:00
Dean Herbert
106fa97a11
Rename SkinnableElementTargetContainer
to SkinnableTargetContainer
2021-05-13 17:07:38 +09:00
Dean Herbert
7921dc7ece
Rename ISkinnableComponent
to ISkinnableDrawable
2021-05-13 17:06:00 +09:00
Dean Herbert
cdcd31b546
Replace ISkinSerialisable
with IsEditable
property
2021-05-13 17:03:17 +09:00
Dean Herbert
dd6a06a302
Reword xmldoc to read better
2021-05-13 16:43:42 +09:00
Dean Herbert
9dfa48b22e
Fix incorrect exception text
2021-05-13 16:42:43 +09:00
Dean Herbert
19223ba013
Remove left-over debug logging
2021-05-13 16:42:13 +09:00
Dean Herbert
5818ed4c8c
Remove unused DI resolution
2021-05-13 16:41:36 +09:00
Dean Herbert
db19617b8b
Add JsonConstructor
attribute to SkinnableTargetWrapper
2021-05-13 13:16:20 +09:00
Dean Herbert
3b862798e9
Standardise naming of methods related to SkinnableInfo
2021-05-13 13:14:49 +09:00
Dean Herbert
581e7940c7
Add xmldoc to SkinnableElementTargetContainer
2021-05-13 13:13:22 +09:00
Dean Herbert
c93ed541f3
Add xmldoc and tidy up logic in Skin
2021-05-13 13:09:33 +09:00
Dean Herbert
992a052426
Remove stray comment
2021-05-13 13:07:06 +09:00
Dean Herbert
469a7f5d2a
Reorder fields in SkinEditor
2021-05-13 13:04:17 +09:00
Dean Herbert
2bf8635ffd
Move field upwards in class
2021-05-13 13:03:23 +09:00
Dean Herbert
a38cb61b08
Remove duplicated call to base.GetDrawableComponent
2021-05-13 13:02:55 +09:00
Dean Herbert
8b9ac86d4b
Merge branch 'master' into skin-serialisation
2021-05-13 12:35:06 +09:00
Bartłomiej Dach
27ca7d0f4f
Actually annotate the correct ctor
2021-05-12 23:53:39 +02:00
Bartłomiej Dach
a6aec6e007
Fix missed InstantiationInfo
setter usages
2021-05-12 23:34:25 +02:00
Bartłomiej Dach
1b579dd838
Extract invariant instantiation info extension method
2021-05-12 23:23:51 +02:00
Bartłomiej Dach
4464204e33
Mark all skin ctors used via reflection in SkinInfo.CreateInstance()
2021-05-12 23:23:42 +02:00
Dean Herbert
7bac81f394
Fix incorrect inline comments
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-05-12 19:37:00 +09:00
Dean Herbert
55e1f97f59
Remove unused using statement
2021-05-12 19:06:40 +09:00
Dean Herbert
75227e5a70
Change default skin to use component lookup for conformity
2021-05-12 18:55:48 +09:00
Dean Herbert
0a895fff15
Remove remaining test usage of SkinnableXXX
HUD components
2021-05-12 18:53:25 +09:00
Dean Herbert
088335a035
Revert "Also save on skin switch"
...
This reverts commit 2f55d1e5ab
.
2021-05-12 17:45:51 +09:00
Dean Herbert
2f55d1e5ab
Also save on skin switch
2021-05-12 17:42:12 +09:00
Dean Herbert
be187e8ebd
Avoid hard crash if Save()
is called before preparing for mutation
2021-05-12 17:42:04 +09:00
Dean Herbert
9df08560b6
Save skin editor changes on forced exit
2021-05-12 16:07:00 +09:00
Dean Herbert
494a1b01a5
Move SkinnableElementTargetContainer
out of HUD namespace
2021-05-12 15:59:33 +09:00
Dean Herbert
29e6f6b6b6
Remove public
prefixes from interface type and add Components
list for future use
2021-05-12 15:58:21 +09:00
Dean Herbert
05e0c57a6a
Keep component positions stable when changing anchor/origin
2021-05-12 15:30:52 +09:00
Dean Herbert
d55f42dc2e
Show anchor and origin in skin blueprints when selected
2021-05-12 15:12:17 +09:00
Dean Herbert
42e6795251
Place new skin components at the centre of the screen by default
2021-05-12 14:11:40 +09:00
Dean Herbert
96d4011de2
Use pattern matching to tidy up instance construction
2021-05-12 14:02:24 +09:00
Dean Herbert
1d383024e2
Improve the visual appearance of skin editor blueprints
2021-05-12 13:54:30 +09:00
Dean Herbert
77e422409c
Add SkinInfo.InstantiationInfo
to allow creating different skin types
2021-05-11 23:37:06 +09:00
Dean Herbert
1231c08a07
Rename mismatching file
2021-05-11 18:58:26 +09:00
Dean Herbert
4bb933e4b1
Add missing base lookup call to DefaultSkin
2021-05-11 18:55:45 +09:00
Dean Herbert
f55407f871
Show a message when attempting to customisse a screen which doesn't support it
2021-05-11 18:39:15 +09:00
Dean Herbert
6d587dc392
Adjust target size slightly to better align with the screen
2021-05-11 18:39:15 +09:00
Dean Herbert
1831f581aa
Add basic metadata display and remove outdated message about not saving
2021-05-11 18:39:15 +09:00
Dean Herbert
a4e0529617
Replace polling logic with direct bindable reactions
2021-05-11 18:39:15 +09:00
Dean Herbert
a88a8b7d8d
Use ISkinnableComponent
wherever possible (and expose as BindableList
)
2021-05-11 18:39:15 +09:00
Dean Herbert
a7e83aacfb
Ensure default skins are copied before modifying
2021-05-11 18:39:15 +09:00
Dean Herbert
a67cead0b3
Add SkinInfo.InstantiationInfo
to allow creating different skin types
2021-05-11 18:39:15 +09:00
Dean Herbert
f6f4b90d2b
Add customisation support for LegacyHealthDisplay
2021-05-11 18:39:14 +09:00
Dean Herbert
d5fe4f0f72
Remove unused skin resolution in LegacyScoreCounter
2021-05-11 18:39:14 +09:00
Dean Herbert
944f09ec98
Move default skin cross-component dependencies out to default specifications
2021-05-11 18:39:14 +09:00
Dean Herbert
12684de66e
Add ability to adjust origin in skin editor
2021-05-11 18:39:14 +09:00
Dean Herbert
117d6d731d
Move cross-component layout dependencies for legacy skin to LegacySkin
2021-05-11 18:39:14 +09:00
Dean Herbert
bf65547eec
Allow some serialised components to not be mutable by the user
2021-05-11 18:39:14 +09:00
Dean Herbert
81902ad6a6
Add the ability to revert all skin changes
2021-05-11 18:39:14 +09:00
Dean Herbert
4769a95b49
Fix encapsulation and remove target lookup overhead
2021-05-11 18:39:14 +09:00
Dean Herbert
c957293ec3
Load json from disk store at skin construction for now
...
This allows for easier mutation without worrying about changes being
re-read from disk unexpectedly.
2021-05-11 18:39:14 +09:00
Dean Herbert
b248b2e5e3
Hook up full save/load flow
2021-05-11 18:39:14 +09:00
Dean Herbert
004798d61d
Update Legacy components to not require skin in ctor
2021-05-11 18:39:14 +09:00
Dean Herbert
95a8f21ab2
Add the concept of skinnable target containers and mark a basic one for HUD elements
2021-05-11 18:39:14 +09:00
Dean Herbert
67ea4a7e97
Read from skin config
2021-05-11 18:39:14 +09:00
Dean Herbert
b9ab9342fa
Setup basics to allow extracting serializable content from skinnable Drawable
s
2021-05-11 18:39:14 +09:00
Dean Herbert
1b701adfef
Add score/health processors to fill in default values
2021-05-10 18:15:39 +09:00
Dean Herbert
2ecd638f7f
Merge branch 'master' into skin-components-list
2021-05-10 18:13:10 +09:00
Dean Herbert
b274fdf20d
Merge branch 'master' into skin-components-bind-outwards-health
2021-05-10 11:13:44 +09:00
Bartłomiej Dach
eb716455b7
Merge branch 'master' into skin-components-bind-outwards-accuracy
2021-05-09 12:13:18 +02:00
Bartłomiej Dach
0bc6a026eb
Merge branch 'master' into skin-components-bind-outwards-accuracy
2021-05-08 21:08:53 +02:00
Bartłomiej Dach
c3bf6a0287
Remove weird vestigial Current
reimplementation
...
Has no functional purpose anymore since the changes in the HUD element
data binding flow.
2021-05-08 21:01:37 +02:00
Dean Herbert
755588258e
Update HealthDisplay
components to use DI to attach data source
2021-05-07 17:22:45 +09:00
Dean Herbert
01eff7f316
Merge branch 'skin-components-bind-outwards' into skin-components-bind-outwards-score-display
2021-05-07 16:30:08 +09:00
Dean Herbert
93f10330e3
Merge branch 'skin-components-bind-outwards' into skin-components-bind-outwards-accuracy
2021-05-07 16:29:10 +09:00
Dean Herbert
ad398165a2
Update AccuracyCounter
components to use DI to attach data source
2021-05-07 16:27:25 +09:00
Dean Herbert
a2e4fb5b6b
Update ScoreCounter
components to bind outwards
2021-05-07 16:16:48 +09:00
Dean Herbert
aff32b0d19
Merge branch 'master' into skin-components-list
2021-05-06 14:17:33 +09:00
Dean Herbert
15603de6e9
Change scale multiplier to be closer to expectations
2021-05-03 15:25:18 +09:00
Dean Herbert
7d8be8cd83
Add comment about why we are running checkForComponents
on a timer
2021-05-03 15:20:00 +09:00
Dean Herbert
a298a93070
Remove redundant storage of blueprint's related item
2021-05-03 15:18:18 +09:00
Dean Herbert
51f4077b27
Reorder methods in SkinSelectionHandler
to follow standards
2021-05-03 15:15:00 +09:00
Dean Herbert
a2faa0b74c
Remove dead code
2021-05-03 15:13:53 +09:00
Dean Herbert
01984de9c7
Use existing GetStateFromSelection
helper function
2021-05-03 15:13:32 +09:00
Dean Herbert
f3b305bbe6
Rename and improve xmldoc of SkinEditorOverlay
2021-05-03 14:58:25 +09:00
Dean Herbert
e663629bc6
Match button appearance to that of the beatmap editor
2021-04-30 15:22:51 +09:00
Dean Herbert
a1e64f4e3c
Use the existing toolbox design
2021-04-30 14:41:06 +09:00
Dean Herbert
bde72faa7c
Limit components list height to better align with actual viewport
2021-04-30 13:10:42 +09:00
Dean Herbert
8b82a07914
Move skin-related interfaces out of HUD namespace
2021-04-30 13:10:42 +09:00
Dean Herbert
5585a7d438
Add basic interfaces for skinnable target containers
2021-04-30 13:10:42 +09:00
Dean Herbert
ae9d1dc40b
Add component list to main editor interface and enable basic placement
2021-04-30 13:10:42 +09:00
Dean Herbert
6442fb819f
Split out component from test scene and fix SongProgress
2021-04-30 13:10:42 +09:00
Dean Herbert
cdef07b2ee
Fix blueprints not hiding when deleting elements
2021-04-30 13:09:57 +09:00
Dean Herbert
8d056ff38f
Remove redundant parenthesis
2021-04-29 18:23:22 +09:00
Dean Herbert
fb64f6faf2
Add ability to exit using game "back" binding
2021-04-29 17:40:58 +09:00
Dean Herbert
a7982787d4
Add basic header text
2021-04-29 17:40:48 +09:00
Dean Herbert
b936043956
Add the skin editor to the game
2021-04-29 17:20:22 +09:00
Dean Herbert
b460181f15
Add note about rotation not working as expected
2021-04-29 16:16:52 +09:00
Dean Herbert
1516e2ffef
Update blueprint implementation in line with #12625 .
2021-04-29 16:12:31 +09:00
Dean Herbert
3c84b0d8c6
Fix selection screen point being wrong since recent refactors
2021-04-29 16:12:15 +09:00
Dean Herbert
de73ac7cec
Allow skin editor to be invoked from any context
...
This is kind of how I see things working going forward, where the editor
can be applied to anything in the game which supports it (ie. a results
screen, gameplay screen, etc.) and it will immediately allow changing
the interface.
This adds a test scene which shows this working with gameplay.
2021-04-29 16:12:15 +09:00
Dean Herbert
4f9e1e4945
Check for new components every one second to handle late loaders
2021-04-29 16:12:15 +09:00
Dean Herbert
fd587a82ff
Replace abstract class with interface, attached to the actual components (not skinnable wrapper)
2021-04-29 16:12:15 +09:00
Dean Herbert
59339aa4fd
Add support for x/y position and scale back in
2021-04-29 16:12:15 +09:00
Dean Herbert
1cb8fc9a24
Extract editor classes out of test namespace and add anchor support
2021-04-29 16:12:15 +09:00
smoogipoo
281c2041b2
Add failing test
2021-04-20 16:51:00 +09:00
Salman Ahmed
1b6e08b3eb
Fix incorrect default font overlap for score and combo
2021-03-26 10:35:46 +03:00
Salman Ahmed
6aa0c9d8fd
Merge branch 'master' into legacy-sprite-text-fonts
2021-03-25 14:52:01 +03:00
Dan Balasescu
41cf261286
Merge pull request #12177 from peppy/fix-comment-parsing-regression
...
Don't strip comments from metadata during parsing
2021-03-25 15:02:10 +09:00
Dean Herbert
0324bfa857
Change checks back to Contains
2021-03-25 14:14:38 +09:00
Dean Herbert
e22650293d
Remove unnecessary second call to StripComments in skin parsing logic
2021-03-25 13:35:42 +09:00
Salman Ahmed
fc5719e445
Fix SkinManager not handling extensions casing comparsion properly
2021-03-24 21:31:53 +03:00
Dean Herbert
073dba5330
Remove local workarounds to attempt to avoid crashes on skin change
2021-03-22 14:05:37 +09:00
Bartłomiej Dach
a16c0641b2
Revert EF Core to version 2.2
...
This reverts commit f3faad74d5
, reversing
changes made to 712e7bc7bf
.
Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
Dean Herbert
ca943a897a
Fix back to front initialisation order
2021-03-20 10:51:58 +09:00
Dean Herbert
68aaf90702
Fix disposal rather than performing some weird hack
2021-03-19 20:30:52 +09:00
Dean Herbert
f59327cc3e
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-03-19 20:29:44 +09:00
Dean Herbert
b2d8db3a92
Rename incorrect variable
2021-03-19 20:25:21 +09:00
Dean Herbert
c0c8b3e46c
Fix regression meaning SkinnableSound
initialisation may never happen
2021-03-19 19:22:50 +09:00
Dean Herbert
9491e6394a
Include the bundled skins when selecting a random skin
2021-03-19 15:46:43 +09:00
Dean Herbert
bf4317d3f0
Ensure looping is disabled on old samples when switching skins
2021-03-19 15:34:21 +09:00
Dean Herbert
0e821e857e
Remove unnecessary duplicated skin changed handling
...
For some reason we were handling this both in `DrawableSkinnableSound`
and `PoolableSkinnableSample` in very similar ways. Only one seems
required.
2021-03-19 15:23:32 +09:00
Bartłomiej Dach
b419d2c2e2
Fix invalid xmldoc indent
2021-03-18 19:52:38 +01:00
Bartłomiej Dach
aec859b4d1
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-03-18 19:51:46 +01:00
Dean Herbert
5b0d75ee56
Only trim trailing spaces to avoid breakage in storyboard parsing
2021-03-18 16:30:30 +09:00
Dean Herbert
2bdffd1004
Move skin requery logic into extension methods
2021-03-15 13:11:58 +09:00
Roman Kapustin
0a1e325fc7
Extract requerying of navigational properties from DbContext
2021-03-14 19:34:53 +03:00