Commit Graph

827 Commits

Author SHA1 Message Date
53cbf369d7 Fix potential nullref 2021-05-29 21:22:46 +03:00
42618c713f Merge branch 'master' into legacy-beatmap-skin-hud-fallback 2021-05-29 20:56:05 +03:00
b36b40cb34 Remove unnecessary double specification 2021-05-26 15:20:47 +09:00
65649e5a62 Prevent skin editor crash when scaling 0 area drawables
Some skinnable drawables can have 0 width or height in certain
cases, leading to division by 0 and a crash when the position is
updated.
2021-05-24 21:36:42 +02:00
caa2c5638e Fix legacy combo counter not accounting for song progress bar 2021-05-23 16:46:57 +09:00
45c6a9ca91 Merge branch 'refactor-selection-rotate-logic' into fix-flip-logic-discrepancy 2021-05-22 21:17:58 +09:00
7d88a19d7f Remove unnecessary field storage of origin reference 2021-05-22 21:03:40 +09:00
34a5b22b79 Merge branch 'master' into refactor-selection-rotate-logic 2021-05-22 20:52:28 +09:00
485728ca4e Merge pull request #12866 from peppy/refactor-selection-scale-logic
Add proper scaling support to skin editor
2021-05-22 20:07:03 +09:00
bb2fae55ce Merge branch 'master' into refactor-selection-rotate-logic 2021-05-21 19:19:54 +09:00
0d575f5728 Remove incorrect (and unintended) modulus logic 2021-05-21 15:06:53 +09:00
f9d51656b6 Fix scaling of rotated items not behaving in an understandable way 2021-05-21 15:02:36 +09:00
7845d07dd5 Merge pull request #12886 from peppy/fix-skin-editor-context-menu-sticking
Fix skin editor context menus not dismissing when clicking away
2021-05-20 21:03:35 +09:00
1848bd902d Fix skin editor context menus not dismissing when clicking away 2021-05-20 19:51:07 +09:00
df5970fab4 Create base implementations of the two most common TernaryStateMenuItems 2021-05-20 19:34:53 +09:00
20f1ef4318 Extract common implementation of updating drawable position from screen space pos 2021-05-20 18:35:13 +09:00
6f75c59760 Fix flip logic not using the full selection quad 2021-05-20 18:31:51 +09:00
95c78b9185 Split out common selection quad logic 2021-05-20 18:24:25 +09:00
27e81d6504 Implement proper rotation algorithm for skin editor 2021-05-20 18:21:16 +09:00
9f3ea150f5 Fix legacy beatmap skins not falling back properly on HUD components 2021-05-19 23:01:29 +03:00
788f1fcf48 Merge branch 'master' into disable-skin-editor-border 2021-05-19 21:52:29 +02:00
21ca9c8431 Merge branch 'master' into beatmap-skin 2021-05-19 22:39:32 +03:00
eb5db8ff03 Disable border display on skin editor to avoid crashes
This wasn't being displayed correctly anyway, so rather than fixing
let's just remove it for now.

Closes #12868.
2021-05-20 02:01:46 +09:00
22337e0fc7 Add comment explaining why origin is flipped 2021-05-20 01:59:30 +09:00
363aec8179 Merge branch 'master' into hit-error-skinnable 2021-05-20 01:51:45 +09:00
a55879e511 Fix oversights in scale algorithm 2021-05-20 01:47:31 +09:00
14af86d6c5 Use the same code path for all scaling 2021-05-19 21:46:41 +09:00
6a3c58b9ad Implement proper scaling algorithms 2021-05-19 19:58:55 +09:00
825d61e22c Separate default beatmap skins from DefaultSkin 2021-05-19 12:06:10 +03:00
9806d94b74 Move beatmap skin info creation to static method at IBeatmapSkin 2021-05-19 11:58:00 +03:00
d661e98fa6 Move common functionality out of OsuSelectionHandler and implement flip support 2021-05-18 18:34:06 +09:00
c80e736712 Change SkinBlueprint to use the origin point as the selection point
Not sure how this feels, but it makes using the same point throughout
the editor possible, which I think is the correct way forward for now.
2021-05-18 18:33:06 +09:00
10c730b37d Add new default locations for hit bar error displays 2021-05-18 15:50:50 +09:00
ea4dfd3374 Merge pull request #12842 from peppy/song-progress-skinnable
Add layout customisation support for `SongProgress`
2021-05-17 20:15:01 +09:00
42d2711dc6 Use ShouldBeConsideredForInput instead of ReceivePositionalInputAtSubTree 2021-05-17 19:29:59 +09:00
60f3e628bc Fix song progress being interactable inside toolbox button 2021-05-17 19:05:22 +09:00
da0913ca2d Make SongProgress a skinnable component 2021-05-17 18:52:56 +09:00
0d7a349500 Exclude interfaces from skinnable types 2021-05-17 18:16:09 +09:00
7665bdfbbb Merge branch 'master' into null-assignment-warning-enable 2021-05-15 01:08:34 +02:00
69fc072429 Ignore skin component json data if deserialisation fails instead
Crashing was not really the best thing to do there given the preceding
code that already allowed a few continues in case of a missing file.
2021-05-15 01:08:11 +02:00
fa6b5515b7 Ignore possible null from JsonConvert.DeserializeObject()
Nothing better can be done if a `null` is indeed returned.
2021-05-15 00:09:34 +02:00
628e7a71ed Ignore possible nulls in Type.GetType() calls
They're mostly used in extensibility scenarios, so everything happens in
runtime. There is no better resolution than to crash with a null
reference exception.
2021-05-15 00:09:34 +02:00
3d3c5028e6 Trim unnecessary array copy 2021-05-14 22:33:26 +02:00
743b4fbff1 Pass correct member name to ArgumentExceptions 2021-05-14 22:16:37 +02:00
876f53bf3b Fix copy-paste oversights in xmldoc & exception messages 2021-05-14 22:15:43 +02:00
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
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
6a64a705b8 Merge branch 'master' into skin-blueprint-aspect-lock 2021-05-13 17:53:00 +02:00
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
0fa90a80d4 Merge branch 'master' into skin-blueprint-aspect-lock 2021-05-13 23:38:53 +09:00