1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-05 02:03:04 +08:00

Add back the old keybind for cycling grid spacing

This commit is contained in:
OliBomby 2023-12-31 21:57:11 +01:00
parent c5edf43283
commit 594b6fe167
2 changed files with 29 additions and 6 deletions

View File

@ -107,6 +107,29 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
}; };
} }
[Test]
public void TestGridSizeToggling()
{
AddStep("enable rectangular grid", () => InputManager.Key(Key.Y));
AddUntilStep("rectangular grid visible", () => this.ChildrenOfType<RectangularPositionSnapGrid>().Any());
gridSizeIs(4);
nextGridSizeIs(8);
nextGridSizeIs(16);
nextGridSizeIs(32);
nextGridSizeIs(4);
}
private void nextGridSizeIs(int size)
{
AddStep("toggle to next grid size", () => InputManager.Key(Key.G));
gridSizeIs(size);
}
private void gridSizeIs(int size)
=> AddAssert($"grid size is {size}", () => this.ChildrenOfType<RectangularPositionSnapGrid>().Single().Spacing.Value == new Vector2(size)
&& EditorBeatmap.BeatmapInfo.GridSize == size);
[Test] [Test]
public void TestGridTypeToggling() public void TestGridTypeToggling()
{ {
@ -121,7 +144,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
private void nextGridTypeIs<T>() where T : PositionSnapGrid private void nextGridTypeIs<T>() where T : PositionSnapGrid
{ {
AddStep("toggle to next grid type", () => InputManager.Key(Key.G)); AddStep("toggle to next grid type", () => InputManager.Key(Key.H));
gridActive<T>(true); gridActive<T>(true);
} }
} }

View File

@ -100,6 +100,8 @@ namespace osu.Game.Rulesets.Osu.Edit
{ {
} }
private const float max_automatic_spacing = 64;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()
{ {
@ -196,11 +198,9 @@ namespace osu.Game.Rulesets.Osu.Edit
}, true); }, true);
} }
private void nextGridType() private void nextGridSize()
{ {
currentGridTypeIndex = (currentGridTypeIndex + 1) % grid_types.Length; Spacing.Value = Spacing.Value * 2 >= max_automatic_spacing ? Spacing.Value / 8 : Spacing.Value * 2;
GridType.Value = grid_types[currentGridTypeIndex];
gridTypeButtons.Items[currentGridTypeIndex].Select();
} }
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e) public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
@ -208,7 +208,7 @@ namespace osu.Game.Rulesets.Osu.Edit
switch (e.Action) switch (e.Action)
{ {
case GlobalAction.EditorCycleGridDisplayMode: case GlobalAction.EditorCycleGridDisplayMode:
nextGridType(); nextGridSize();
return true; return true;
} }