mirror of
https://github.com/ppy/osu.git
synced 2025-01-15 00:02:54 +08:00
Add ability to adjust origin in skin editor
This commit is contained in:
parent
c94df672e5
commit
12684de66e
@ -70,13 +70,18 @@ namespace osu.Game.Skinning.Editor
|
||||
{
|
||||
yield return new OsuMenuItem("Anchor")
|
||||
{
|
||||
Items = createAnchorItems().ToArray()
|
||||
Items = createAnchorItems(d => d.Anchor, applyAnchor).ToArray()
|
||||
};
|
||||
|
||||
yield return new OsuMenuItem("Origin")
|
||||
{
|
||||
Items = createAnchorItems(d => d.Origin, applyOrigin).ToArray()
|
||||
};
|
||||
|
||||
foreach (var item in base.GetContextMenuItemsForSelection(selection))
|
||||
yield return item;
|
||||
|
||||
IEnumerable<AnchorMenuItem> createAnchorItems()
|
||||
IEnumerable<AnchorMenuItem> createAnchorItems(Func<Drawable, Anchor> checkFunction, Action<Anchor> applyFunction)
|
||||
{
|
||||
var displayableAnchors = new[]
|
||||
{
|
||||
@ -93,14 +98,20 @@ namespace osu.Game.Skinning.Editor
|
||||
|
||||
return displayableAnchors.Select(a =>
|
||||
{
|
||||
return new AnchorMenuItem(a, selection, _ => applyAnchor(a))
|
||||
return new AnchorMenuItem(a, selection, _ => applyFunction(a))
|
||||
{
|
||||
State = { Value = GetStateFromSelection(selection, c => ((Drawable)c.Item).Anchor == a) }
|
||||
State = { Value = GetStateFromSelection(selection, c => checkFunction((Drawable)c.Item) == a) }
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void applyOrigin(Anchor anchor)
|
||||
{
|
||||
foreach (var item in SelectedItems)
|
||||
((Drawable)item).Origin = anchor;
|
||||
}
|
||||
|
||||
private void applyAnchor(Anchor anchor)
|
||||
{
|
||||
foreach (var item in SelectedItems)
|
||||
|
Loading…
Reference in New Issue
Block a user