mirror of
https://github.com/ppy/osu.git
synced 2024-12-13 08:32:57 +08:00
Merge branch 'master' into update-framework
This commit is contained in:
commit
894ef15e79
@ -25,6 +25,7 @@ namespace osu.Game.Tests.Visual.Editing
|
|||||||
beatmap.ControlPointInfo.Clear();
|
beatmap.ControlPointInfo.Clear();
|
||||||
beatmap.ControlPointInfo.Add(0, new TimingControlPoint { BeatLength = 1000 });
|
beatmap.ControlPointInfo.Add(0, new TimingControlPoint { BeatLength = 1000 });
|
||||||
beatmap.ControlPointInfo.Add(2000, new TimingControlPoint { BeatLength = 500 });
|
beatmap.ControlPointInfo.Add(2000, new TimingControlPoint { BeatLength = 500 });
|
||||||
|
beatmap.ControlPointInfo.Add(20000, new TimingControlPoint { BeatLength = 500 });
|
||||||
|
|
||||||
return beatmap;
|
return beatmap;
|
||||||
}
|
}
|
||||||
@ -116,6 +117,26 @@ namespace osu.Game.Tests.Visual.Editing
|
|||||||
pressAndCheckTime(Key.Right, 3000);
|
pressAndCheckTime(Key.Right, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestSeekBetweenControlPoints()
|
||||||
|
{
|
||||||
|
AddStep("seek to 0", () => EditorClock.Seek(0));
|
||||||
|
AddAssert("time is 0", () => EditorClock.CurrentTime == 0);
|
||||||
|
|
||||||
|
// already at first control point, noop
|
||||||
|
pressAndCheckTime(Key.Up, 0);
|
||||||
|
|
||||||
|
pressAndCheckTime(Key.Down, 2000);
|
||||||
|
|
||||||
|
pressAndCheckTime(Key.Down, 20000);
|
||||||
|
// at last control point, noop
|
||||||
|
pressAndCheckTime(Key.Down, 20000);
|
||||||
|
|
||||||
|
pressAndCheckTime(Key.Up, 2000);
|
||||||
|
pressAndCheckTime(Key.Up, 0);
|
||||||
|
pressAndCheckTime(Key.Up, 0);
|
||||||
|
}
|
||||||
|
|
||||||
private void pressAndCheckTime(Key key, double expectedTime)
|
private void pressAndCheckTime(Key key, double expectedTime)
|
||||||
{
|
{
|
||||||
AddStep($"press {key}", () => InputManager.Key(key));
|
AddStep($"press {key}", () => InputManager.Key(key));
|
||||||
|
@ -9,8 +9,10 @@ using NUnit.Framework;
|
|||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Extensions;
|
using osu.Game.Extensions;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
|
using osu.Game.Rulesets.Catch;
|
||||||
using osu.Game.Rulesets.Mania;
|
using osu.Game.Rulesets.Mania;
|
||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
using osu.Game.Screens.Menu;
|
using osu.Game.Screens.Menu;
|
||||||
@ -71,17 +73,51 @@ namespace osu.Game.Tests.Visual.Navigation
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestFromSongSelectDifferentRuleset()
|
public void TestFromSongSelectDifferentRulesetWithConvertDisallowed()
|
||||||
{
|
{
|
||||||
var firstImport = importBeatmap(1);
|
AddStep("Set converts disallowed", () => Game.LocalConfig.SetValue(OsuSetting.ShowConvertedBeatmaps, false));
|
||||||
presentAndConfirm(firstImport);
|
|
||||||
|
|
||||||
var secondImport = importBeatmap(3, new ManiaRuleset().RulesetInfo);
|
var osuImport = importBeatmap(1);
|
||||||
confirmBeatmapInSongSelect(secondImport);
|
presentAndConfirm(osuImport);
|
||||||
presentAndConfirm(secondImport);
|
|
||||||
|
|
||||||
presentSecondDifficultyAndConfirm(firstImport, 1);
|
var maniaImport = importBeatmap(2, new ManiaRuleset().RulesetInfo);
|
||||||
presentSecondDifficultyAndConfirm(secondImport, 3);
|
confirmBeatmapInSongSelect(maniaImport);
|
||||||
|
presentAndConfirm(maniaImport);
|
||||||
|
|
||||||
|
var catchImport = importBeatmap(3, new CatchRuleset().RulesetInfo);
|
||||||
|
confirmBeatmapInSongSelect(catchImport);
|
||||||
|
presentAndConfirm(catchImport);
|
||||||
|
|
||||||
|
// Ruleset is always changed.
|
||||||
|
presentSecondDifficultyAndConfirm(maniaImport, 2);
|
||||||
|
presentSecondDifficultyAndConfirm(osuImport, 1);
|
||||||
|
presentSecondDifficultyAndConfirm(catchImport, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestFromSongSelectDifferentRulesetWithConvertAllowed()
|
||||||
|
{
|
||||||
|
AddStep("Set converts allowed", () => Game.LocalConfig.SetValue(OsuSetting.ShowConvertedBeatmaps, true));
|
||||||
|
|
||||||
|
var osuImport = importBeatmap(1);
|
||||||
|
presentAndConfirm(osuImport);
|
||||||
|
|
||||||
|
var maniaImport = importBeatmap(2, new ManiaRuleset().RulesetInfo);
|
||||||
|
confirmBeatmapInSongSelect(maniaImport);
|
||||||
|
presentAndConfirm(maniaImport);
|
||||||
|
|
||||||
|
var catchImport = importBeatmap(3, new CatchRuleset().RulesetInfo);
|
||||||
|
confirmBeatmapInSongSelect(catchImport);
|
||||||
|
presentAndConfirm(catchImport);
|
||||||
|
|
||||||
|
// force ruleset to osu!mania
|
||||||
|
presentSecondDifficultyAndConfirm(maniaImport, 2);
|
||||||
|
|
||||||
|
// ruleset is not changed as we can convert osu! beatmap.
|
||||||
|
presentSecondDifficultyAndConfirm(osuImport, 1, expectedRulesetOnlineID: 3);
|
||||||
|
|
||||||
|
// ruleset is changed as we cannot convert.
|
||||||
|
presentSecondDifficultyAndConfirm(catchImport, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void returnToMenu()
|
private void returnToMenu()
|
||||||
@ -112,19 +148,19 @@ namespace osu.Game.Tests.Visual.Navigation
|
|||||||
imported = Game.BeatmapManager.Import(new BeatmapSetInfo
|
imported = Game.BeatmapManager.Import(new BeatmapSetInfo
|
||||||
{
|
{
|
||||||
Hash = Guid.NewGuid().ToString(),
|
Hash = Guid.NewGuid().ToString(),
|
||||||
OnlineID = i,
|
OnlineID = i * 1024,
|
||||||
Beatmaps =
|
Beatmaps =
|
||||||
{
|
{
|
||||||
new BeatmapInfo
|
new BeatmapInfo
|
||||||
{
|
{
|
||||||
OnlineID = i * 1024,
|
OnlineID = i * 1024 + 1,
|
||||||
Metadata = metadata,
|
Metadata = metadata,
|
||||||
Difficulty = new BeatmapDifficulty(),
|
Difficulty = new BeatmapDifficulty(),
|
||||||
Ruleset = ruleset ?? new OsuRuleset().RulesetInfo
|
Ruleset = ruleset ?? new OsuRuleset().RulesetInfo
|
||||||
},
|
},
|
||||||
new BeatmapInfo
|
new BeatmapInfo
|
||||||
{
|
{
|
||||||
OnlineID = i * 2048,
|
OnlineID = i * 1024 + 2,
|
||||||
Metadata = metadata,
|
Metadata = metadata,
|
||||||
Difficulty = new BeatmapDifficulty(),
|
Difficulty = new BeatmapDifficulty(),
|
||||||
Ruleset = ruleset ?? new OsuRuleset().RulesetInfo
|
Ruleset = ruleset ?? new OsuRuleset().RulesetInfo
|
||||||
@ -156,14 +192,14 @@ namespace osu.Game.Tests.Visual.Navigation
|
|||||||
AddAssert("correct ruleset selected", () => Game.Ruleset.Value, () => Is.EqualTo(getImport().Beatmaps.First().Ruleset));
|
AddAssert("correct ruleset selected", () => Game.Ruleset.Value, () => Is.EqualTo(getImport().Beatmaps.First().Ruleset));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void presentSecondDifficultyAndConfirm(Func<BeatmapSetInfo> getImport, int importedID)
|
private void presentSecondDifficultyAndConfirm(Func<BeatmapSetInfo> getImport, int importedID, int? expectedRulesetOnlineID = null)
|
||||||
{
|
{
|
||||||
Predicate<BeatmapInfo> pred = b => b.OnlineID == importedID * 2048;
|
Predicate<BeatmapInfo> pred = b => b.OnlineID == importedID * 1024 + 2;
|
||||||
AddStep("present difficulty", () => Game.PresentBeatmap(getImport(), pred));
|
AddStep("present difficulty", () => Game.PresentBeatmap(getImport(), pred));
|
||||||
|
|
||||||
AddUntilStep("wait for song select", () => Game.ScreenStack.CurrentScreen is Screens.Select.SongSelect songSelect && songSelect.IsLoaded);
|
AddUntilStep("wait for song select", () => Game.ScreenStack.CurrentScreen is Screens.Select.SongSelect songSelect && songSelect.IsLoaded);
|
||||||
AddUntilStep("correct beatmap displayed", () => Game.Beatmap.Value.BeatmapInfo.OnlineID, () => Is.EqualTo(importedID * 2048));
|
AddUntilStep("correct beatmap displayed", () => Game.Beatmap.Value.BeatmapInfo.OnlineID, () => Is.EqualTo(importedID * 1024 + 2));
|
||||||
AddAssert("correct ruleset selected", () => Game.Ruleset.Value, () => Is.EqualTo(getImport().Beatmaps.First().Ruleset));
|
AddAssert("correct ruleset selected", () => Game.Ruleset.Value.OnlineID, () => Is.EqualTo(expectedRulesetOnlineID ?? getImport().Beatmaps.First().Ruleset.OnlineID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ using osu.Framework.Graphics;
|
|||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
using osu.Game.Screens.OnlinePlay;
|
using osu.Game.Screens.OnlinePlay;
|
||||||
using osu.Game.Screens.OnlinePlay.Playlists;
|
using osu.Game.Screens.OnlinePlay.Playlists;
|
||||||
@ -148,7 +149,7 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
private partial class TestRoomSettings : PlaylistsRoomSettingsOverlay
|
private partial class TestRoomSettings : PlaylistsRoomSettingsOverlay
|
||||||
{
|
{
|
||||||
public TriangleButton ApplyButton => ((MatchSettings)Settings).ApplyButton;
|
public RoundedButton ApplyButton => ((MatchSettings)Settings).ApplyButton;
|
||||||
|
|
||||||
public OsuTextBox NameField => ((MatchSettings)Settings).NameField;
|
public OsuTextBox NameField => ((MatchSettings)Settings).NameField;
|
||||||
public OsuDropdown<TimeSpan> DurationField => ((MatchSettings)Settings).DurationField;
|
public OsuDropdown<TimeSpan> DurationField => ((MatchSettings)Settings).DurationField;
|
||||||
|
@ -10,6 +10,7 @@ using osu.Framework.Graphics.Shapes;
|
|||||||
using osu.Framework.Utils;
|
using osu.Framework.Utils;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
@ -49,8 +50,8 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new OsuSpriteText { Text = "Sample content" },
|
new OsuSpriteText { Text = "Sample content" },
|
||||||
new TriangleButton { Text = "can't puush me", Width = 200, },
|
new RoundedButton { Text = "can't puush me", Width = 200, },
|
||||||
new TriangleButton { Text = "puush me", Width = 200, Action = () => { } },
|
new RoundedButton { Text = "puush me", Width = 200, Action = () => { } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
overlay = new TestLoadingLayer(true),
|
overlay = new TestLoadingLayer(true),
|
||||||
|
@ -33,7 +33,7 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Text = @"No OverlayColourProvider",
|
Text = @"No OverlayColourProvider",
|
||||||
Font = OsuFont.Default.With(size: 40)
|
Font = OsuFont.Default.With(size: 40)
|
||||||
},
|
},
|
||||||
new TriangleButtonWithPopover()
|
new RoundedButtonWithPopover()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -50,15 +50,15 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Text = @"With OverlayColourProvider (orange)",
|
Text = @"With OverlayColourProvider (orange)",
|
||||||
Font = OsuFont.Default.With(size: 40)
|
Font = OsuFont.Default.With(size: 40)
|
||||||
},
|
},
|
||||||
new TriangleButtonWithPopover()
|
new RoundedButtonWithPopover()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private partial class TriangleButtonWithPopover : TriangleButton, IHasPopover
|
private partial class RoundedButtonWithPopover : RoundedButton, IHasPopover
|
||||||
{
|
{
|
||||||
public TriangleButtonWithPopover()
|
public RoundedButtonWithPopover()
|
||||||
{
|
{
|
||||||
Width = 100;
|
Width = 100;
|
||||||
Height = 30;
|
Height = 30;
|
||||||
|
@ -9,7 +9,6 @@ using osu.Framework.Bindables;
|
|||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Graphics;
|
|
||||||
using osu.Game.Graphics.UserInterfaceV2;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.Settings;
|
using osu.Game.Overlays.Settings;
|
||||||
@ -37,7 +36,7 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
},
|
},
|
||||||
new SettingsButton
|
new SettingsButton
|
||||||
{
|
{
|
||||||
Text = "Test button",
|
Text = "Test settings button",
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
Enabled = { BindTarget = enabled },
|
Enabled = { BindTarget = enabled },
|
||||||
@ -56,8 +55,8 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
public void TestBackgroundColour()
|
public void TestBackgroundColour()
|
||||||
{
|
{
|
||||||
AddStep("set red scheme", () => CreateThemedContent(OverlayColourScheme.Red));
|
AddStep("set red scheme", () => CreateThemedContent(OverlayColourScheme.Red));
|
||||||
AddAssert("rounded button has correct colour", () => Cell(0, 1).ChildrenOfType<RoundedButton>().First().BackgroundColour == new OsuColour().Blue3);
|
AddAssert("rounded button has correct colour", () => Cell(0, 1).ChildrenOfType<RoundedButton>().First().BackgroundColour == new OverlayColourProvider(OverlayColourScheme.Red).Colour3);
|
||||||
AddAssert("settings button has correct colour", () => Cell(0, 1).ChildrenOfType<SettingsButton>().First().BackgroundColour == new OverlayColourProvider(OverlayColourScheme.Red).Highlight1);
|
AddAssert("settings button has correct colour", () => Cell(0, 1).ChildrenOfType<SettingsButton>().First().BackgroundColour == new OverlayColourProvider(OverlayColourScheme.Red).Colour3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ using osu.Framework.Screens;
|
|||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Screens;
|
using osu.Game.Screens;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
@ -109,7 +110,7 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
Text = Title,
|
Text = Title,
|
||||||
},
|
},
|
||||||
new TriangleButton
|
new RoundedButton
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
|
@ -61,7 +61,7 @@ namespace osu.Game.Tournament.Screens.Setup
|
|||||||
Spacing = new Vector2(10, 0),
|
Spacing = new Vector2(10, 0),
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
Button = new TriangleButton
|
Button = new RoundedButton
|
||||||
{
|
{
|
||||||
Size = new Vector2(100, 40),
|
Size = new Vector2(100, 40),
|
||||||
Action = () => Action?.Invoke()
|
Action = () => Action?.Invoke()
|
||||||
|
@ -93,7 +93,7 @@ namespace osu.Game.Tournament.Screens.Setup
|
|||||||
Spacing = new Vector2(20),
|
Spacing = new Vector2(20),
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new TriangleButton
|
new RoundedButton
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
@ -101,7 +101,7 @@ namespace osu.Game.Tournament.Screens.Setup
|
|||||||
Text = "Select stable path",
|
Text = "Select stable path",
|
||||||
Action = ChangePath
|
Action = ChangePath
|
||||||
},
|
},
|
||||||
new TriangleButton
|
new RoundedButton
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Tournament.IO;
|
using osu.Game.Tournament.IO;
|
||||||
|
|
||||||
namespace osu.Game.Tournament.Screens.Setup
|
namespace osu.Game.Tournament.Screens.Setup
|
||||||
@ -37,7 +38,7 @@ namespace osu.Game.Tournament.Screens.Setup
|
|||||||
{
|
{
|
||||||
var drawable = base.CreateComponent();
|
var drawable = base.CreateComponent();
|
||||||
|
|
||||||
FlowContainer.Insert(-1, folderButton = new TriangleButton
|
FlowContainer.Insert(-1, folderButton = new RoundedButton
|
||||||
{
|
{
|
||||||
Text = "Open folder",
|
Text = "Open folder",
|
||||||
Width = 100
|
Width = 100
|
||||||
|
@ -172,7 +172,7 @@ namespace osu.Game.Graphics.Backgrounds
|
|||||||
// Limited by the maximum size of QuadVertexBuffer for safety.
|
// Limited by the maximum size of QuadVertexBuffer for safety.
|
||||||
const int max_triangles = ushort.MaxValue / (IRenderer.VERTICES_PER_QUAD + 2);
|
const int max_triangles = ushort.MaxValue / (IRenderer.VERTICES_PER_QUAD + 2);
|
||||||
|
|
||||||
AimCount = (int)Math.Min(max_triangles, DrawWidth * DrawHeight * 0.0005f * SpawnRatio);
|
AimCount = (int)Math.Clamp(DrawWidth * 0.02f * SpawnRatio, 1, max_triangles);
|
||||||
|
|
||||||
int currentCount = parts.Count;
|
int currentCount = parts.Count;
|
||||||
|
|
||||||
|
@ -4,17 +4,16 @@
|
|||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
|
||||||
namespace osu.Game.Graphics.UserInterface
|
namespace osu.Game.Graphics.UserInterface
|
||||||
{
|
{
|
||||||
public partial class DangerousTriangleButton : TriangleButton
|
public partial class DangerousRoundedButton : RoundedButton
|
||||||
{
|
{
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuColour colours)
|
private void load(OsuColour colours)
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.PinkDark;
|
BackgroundColour = colours.PinkDark;
|
||||||
Triangles.ColourDark = colours.PinkDarker;
|
|
||||||
Triangles.ColourLight = colours.Pink;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -37,7 +37,7 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets a custom background colour to this button, replacing the provided default.
|
/// Sets a custom background colour to this button, replacing the provided default.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Color4 BackgroundColour
|
public virtual Color4 BackgroundColour
|
||||||
{
|
{
|
||||||
get => backgroundColour ?? defaultBackgroundColour;
|
get => backgroundColour ?? defaultBackgroundColour;
|
||||||
set
|
set
|
||||||
@ -90,6 +90,7 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Depth = float.MaxValue,
|
||||||
},
|
},
|
||||||
Hover = new Box
|
Hover = new Box
|
||||||
{
|
{
|
||||||
@ -141,13 +142,15 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
return base.OnClick(e);
|
return base.OnClick(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual float HoverLayerFinalAlpha => 0.1f;
|
||||||
|
|
||||||
protected override bool OnHover(HoverEvent e)
|
protected override bool OnHover(HoverEvent e)
|
||||||
{
|
{
|
||||||
if (Enabled.Value)
|
if (Enabled.Value)
|
||||||
{
|
{
|
||||||
Hover.FadeTo(0.2f, 40, Easing.OutQuint)
|
Hover.FadeTo(0.2f, 40, Easing.OutQuint)
|
||||||
.Then()
|
.Then()
|
||||||
.FadeTo(0.1f, 800, Easing.OutQuint);
|
.FadeTo(HoverLayerFinalAlpha, 800, Easing.OutQuint);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.OnHover(e);
|
return base.OnHover(e);
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Framework.Graphics.Containers;
|
|
||||||
using osu.Framework.Localisation;
|
|
||||||
using osu.Game.Graphics.Backgrounds;
|
|
||||||
|
|
||||||
namespace osu.Game.Graphics.UserInterface
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// A button with moving triangles in the background.
|
|
||||||
/// </summary>
|
|
||||||
public partial class TriangleButton : OsuButton, IFilterable
|
|
||||||
{
|
|
||||||
protected Triangles Triangles { get; private set; }
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load(OsuColour colours)
|
|
||||||
{
|
|
||||||
Add(Triangles = new Triangles
|
|
||||||
{
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
ColourDark = colours.BlueDarker,
|
|
||||||
ColourLight = colours.Blue,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual IEnumerable<LocalisableString> FilterTerms => new[] { Text };
|
|
||||||
|
|
||||||
public bool MatchingFilter
|
|
||||||
{
|
|
||||||
set => this.FadeTo(value ? 1 : 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool FilteringActive { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +1,29 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Extensions.Color4Extensions;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Framework.Input.Events;
|
||||||
using osu.Framework.Localisation;
|
using osu.Framework.Localisation;
|
||||||
|
using osu.Game.Graphics.Backgrounds;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Overlays;
|
||||||
|
using osuTK.Graphics;
|
||||||
|
|
||||||
namespace osu.Game.Graphics.UserInterfaceV2
|
namespace osu.Game.Graphics.UserInterfaceV2
|
||||||
{
|
{
|
||||||
public partial class RoundedButton : OsuButton, IFilterable
|
public partial class RoundedButton : OsuButton, IFilterable
|
||||||
{
|
{
|
||||||
|
protected TrianglesV2? Triangles { get; private set; }
|
||||||
|
|
||||||
|
protected override float HoverLayerFinalAlpha => 0;
|
||||||
|
|
||||||
|
private Color4? triangleGradientSecondColour;
|
||||||
|
|
||||||
public override float Height
|
public override float Height
|
||||||
{
|
{
|
||||||
get => base.Height;
|
get => base.Height;
|
||||||
@ -26,19 +36,65 @@ namespace osu.Game.Graphics.UserInterfaceV2
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader(true)]
|
public override Color4 BackgroundColour
|
||||||
private void load(OsuColour colours)
|
|
||||||
{
|
{
|
||||||
// According to flyte, buttons are supposed to have explicit colours for now.
|
get => base.BackgroundColour;
|
||||||
// Not sure this is the correct direction, but we haven't decided on an `OverlayColourProvider` stand-in yet.
|
set
|
||||||
// This is a better default. See `SettingsButton` for an override which uses `OverlayColourProvider`.
|
{
|
||||||
DefaultBackgroundColour = colours.Blue3;
|
base.BackgroundColour = value;
|
||||||
|
triangleGradientSecondColour = BackgroundColour.Lighten(0.2f);
|
||||||
|
updateColours();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader(true)]
|
||||||
|
private void load(OverlayColourProvider? overlayColourProvider, OsuColour colours)
|
||||||
|
{
|
||||||
|
// Many buttons have local colours, but this provides a sane default for all other cases.
|
||||||
|
DefaultBackgroundColour = overlayColourProvider?.Colour3 ?? colours.Blue3;
|
||||||
|
triangleGradientSecondColour ??= overlayColourProvider?.Colour1 ?? colours.Blue3.Lighten(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
updateCornerRadius();
|
updateCornerRadius();
|
||||||
|
|
||||||
|
Add(Triangles = new TrianglesV2
|
||||||
|
{
|
||||||
|
Thickness = 0.02f,
|
||||||
|
SpawnRatio = 0.6f,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Depth = float.MaxValue,
|
||||||
|
});
|
||||||
|
|
||||||
|
updateColours();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateColours()
|
||||||
|
{
|
||||||
|
if (Triangles == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Debug.Assert(triangleGradientSecondColour != null);
|
||||||
|
|
||||||
|
Triangles.ColourTop = triangleGradientSecondColour.Value;
|
||||||
|
Triangles.ColourBottom = BackgroundColour;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool OnHover(HoverEvent e)
|
||||||
|
{
|
||||||
|
Debug.Assert(triangleGradientSecondColour != null);
|
||||||
|
|
||||||
|
Background.FadeColour(triangleGradientSecondColour.Value, 300, Easing.OutQuint);
|
||||||
|
return base.OnHover(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnHoverLost(HoverLostEvent e)
|
||||||
|
{
|
||||||
|
Background.FadeColour(BackgroundColour, 300, Easing.OutQuint);
|
||||||
|
base.OnHoverLost(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateCornerRadius() => Content.CornerRadius = DrawHeight / 2;
|
private void updateCornerRadius() => Content.CornerRadius = DrawHeight / 2;
|
||||||
|
@ -520,11 +520,29 @@ namespace osu.Game
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.Log($"Completing {nameof(PresentBeatmap)} with beatmap {beatmap} ruleset {selection.Ruleset}");
|
// Don't change the local ruleset if the user is on another ruleset and is showing converted beatmaps at song select.
|
||||||
|
// Eventually we probably want to check whether conversion is actually possible for the current ruleset.
|
||||||
|
bool requiresRulesetSwitch = !selection.Ruleset.Equals(Ruleset.Value)
|
||||||
|
&& (selection.Ruleset.OnlineID > 0 || !LocalConfig.Get<bool>(OsuSetting.ShowConvertedBeatmaps));
|
||||||
|
|
||||||
|
if (requiresRulesetSwitch)
|
||||||
|
{
|
||||||
Ruleset.Value = selection.Ruleset;
|
Ruleset.Value = selection.Ruleset;
|
||||||
Beatmap.Value = BeatmapManager.GetWorkingBeatmap(selection);
|
Beatmap.Value = BeatmapManager.GetWorkingBeatmap(selection);
|
||||||
|
|
||||||
|
Logger.Log($"Completing {nameof(PresentBeatmap)} with beatmap {beatmap} ruleset {selection.Ruleset}");
|
||||||
}
|
}
|
||||||
}, validScreens: new[] { typeof(SongSelect), typeof(IHandlePresentBeatmap) });
|
else
|
||||||
|
{
|
||||||
|
Beatmap.Value = BeatmapManager.GetWorkingBeatmap(selection);
|
||||||
|
|
||||||
|
Logger.Log($"Completing {nameof(PresentBeatmap)} with beatmap {beatmap} (maintaining ruleset)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, validScreens: new[]
|
||||||
|
{
|
||||||
|
typeof(SongSelect), typeof(IHandlePresentBeatmap)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1,16 +1,14 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Extensions.Color4Extensions;
|
using osu.Framework.Extensions.Color4Extensions;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.BeatmapSet.Buttons
|
namespace osu.Game.Overlays.BeatmapSet.Buttons
|
||||||
{
|
{
|
||||||
public partial class HeaderButton : TriangleButton
|
public partial class HeaderButton : RoundedButton
|
||||||
{
|
{
|
||||||
public HeaderButton()
|
public HeaderButton()
|
||||||
{
|
{
|
||||||
@ -22,9 +20,6 @@ namespace osu.Game.Overlays.BeatmapSet.Buttons
|
|||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
BackgroundColour = Color4Extensions.FromHex(@"094c5f");
|
BackgroundColour = Color4Extensions.FromHex(@"094c5f");
|
||||||
Triangles.ColourLight = Color4Extensions.FromHex(@"0f7c9b");
|
|
||||||
Triangles.ColourDark = Color4Extensions.FromHex(@"094c5f");
|
|
||||||
Triangles.TriangleScale = 1.5f;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,7 @@ namespace osu.Game.Overlays.Dashboard
|
|||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
},
|
},
|
||||||
new PurpleTriangleButton
|
new PurpleRoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Text = "Spectate",
|
Text = "Spectate",
|
||||||
|
@ -22,6 +22,7 @@ using osu.Game.Database;
|
|||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Input;
|
using osu.Game.Input;
|
||||||
using osu.Game.Input.Bindings;
|
using osu.Game.Input.Bindings;
|
||||||
using osu.Game.Resources.Localisation.Web;
|
using osu.Game.Resources.Localisation.Web;
|
||||||
@ -446,7 +447,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input
|
|||||||
isDefault.Value = bindings.Select(b => b.KeyCombination).SequenceEqual(Defaults);
|
isDefault.Value = bindings.Select(b => b.KeyCombination).SequenceEqual(Defaults);
|
||||||
}
|
}
|
||||||
|
|
||||||
private partial class CancelButton : TriangleButton
|
private partial class CancelButton : RoundedButton
|
||||||
{
|
{
|
||||||
public CancelButton()
|
public CancelButton()
|
||||||
{
|
{
|
||||||
@ -455,7 +456,7 @@ namespace osu.Game.Overlays.Settings.Sections.Input
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class ClearButton : DangerousTriangleButton
|
public partial class ClearButton : DangerousRoundedButton
|
||||||
{
|
{
|
||||||
public ClearButton()
|
public ClearButton()
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,6 @@ using osuTK;
|
|||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Framework.Localisation;
|
using osu.Framework.Localisation;
|
||||||
using osu.Game.Graphics.UserInterface;
|
|
||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Localisation;
|
using osu.Game.Localisation;
|
||||||
@ -22,7 +21,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
|
|||||||
{
|
{
|
||||||
public abstract partial class DirectorySelectScreen : OsuScreen
|
public abstract partial class DirectorySelectScreen : OsuScreen
|
||||||
{
|
{
|
||||||
private TriangleButton selectionButton;
|
private RoundedButton selectionButton;
|
||||||
|
|
||||||
private OsuDirectorySelector directorySelector;
|
private OsuDirectorySelector directorySelector;
|
||||||
|
|
||||||
@ -101,7 +100,7 @@ namespace osu.Game.Overlays.Settings.Sections.Maintenance
|
|||||||
},
|
},
|
||||||
new Drawable[]
|
new Drawable[]
|
||||||
{
|
{
|
||||||
selectionButton = new TriangleButton
|
selectionButton = new RoundedButton
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using JetBrains.Annotations;
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Cursor;
|
using osu.Framework.Graphics.Cursor;
|
||||||
using osu.Framework.Localisation;
|
using osu.Framework.Localisation;
|
||||||
using osu.Game.Graphics;
|
|
||||||
using osu.Game.Graphics.UserInterfaceV2;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Settings
|
namespace osu.Game.Overlays.Settings
|
||||||
@ -23,12 +18,6 @@ namespace osu.Game.Overlays.Settings
|
|||||||
Padding = new MarginPadding { Left = SettingsPanel.CONTENT_MARGINS, Right = SettingsPanel.CONTENT_MARGINS };
|
Padding = new MarginPadding { Left = SettingsPanel.CONTENT_MARGINS, Right = SettingsPanel.CONTENT_MARGINS };
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader(true)]
|
|
||||||
private void load([CanBeNull] OverlayColourProvider overlayColourProvider, OsuColour colours)
|
|
||||||
{
|
|
||||||
DefaultBackgroundColour = overlayColourProvider?.Highlight1 ?? colours.Blue3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalisableString TooltipText { get; set; }
|
public LocalisableString TooltipText { get; set; }
|
||||||
|
|
||||||
public override IEnumerable<LocalisableString> FilterTerms
|
public override IEnumerable<LocalisableString> FilterTerms
|
||||||
|
@ -86,6 +86,7 @@ namespace osu.Game.Rulesets.Edit
|
|||||||
SpriteText.Font = OsuFont.GetFont(weight: FontWeight.Bold);
|
SpriteText.Font = OsuFont.GetFont(weight: FontWeight.Bold);
|
||||||
base.Height = actualHeight;
|
base.Height = actualHeight;
|
||||||
Background.Show();
|
Background.Show();
|
||||||
|
Triangles?.Show();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -94,6 +95,7 @@ namespace osu.Game.Rulesets.Edit
|
|||||||
SpriteText.Font = OsuFont.GetFont(weight: FontWeight.Regular);
|
SpriteText.Font = OsuFont.GetFont(weight: FontWeight.Regular);
|
||||||
base.Height = actualHeight / 2;
|
base.Height = actualHeight / 2;
|
||||||
Background.Hide();
|
Background.Hide();
|
||||||
|
Triangles?.Hide();
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
|
@ -499,6 +499,15 @@ namespace osu.Game.Screens.Edit
|
|||||||
seek(e, 1);
|
seek(e, 1);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// Of those, these two keys are reversed from stable because it feels more natural (and matches mouse wheel scroll directionality).
|
||||||
|
case Key.Up:
|
||||||
|
seekControlPoint(-1);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case Key.Down:
|
||||||
|
seekControlPoint(1);
|
||||||
|
return true;
|
||||||
|
|
||||||
// Track traversal keys.
|
// Track traversal keys.
|
||||||
// Matching osu-stable implementations.
|
// Matching osu-stable implementations.
|
||||||
case Key.Z:
|
case Key.Z:
|
||||||
@ -892,6 +901,16 @@ namespace osu.Game.Screens.Edit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void seekControlPoint(int direction)
|
||||||
|
{
|
||||||
|
var found = direction < 1
|
||||||
|
? editorBeatmap.ControlPointInfo.AllControlPoints.LastOrDefault(p => p.Time < clock.CurrentTime)
|
||||||
|
: editorBeatmap.ControlPointInfo.AllControlPoints.FirstOrDefault(p => p.Time > clock.CurrentTime);
|
||||||
|
|
||||||
|
if (found != null)
|
||||||
|
clock.Seek(found.Time);
|
||||||
|
}
|
||||||
|
|
||||||
private void seek(UIEvent e, int direction)
|
private void seek(UIEvent e, int direction)
|
||||||
{
|
{
|
||||||
double amount = e.ShiftPressed ? 4 : 1;
|
double amount = e.ShiftPressed ? 4 : 1;
|
||||||
|
@ -14,7 +14,6 @@ using osu.Framework.Graphics.Shapes;
|
|||||||
using osu.Framework.Screens;
|
using osu.Framework.Screens;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.UserInterface;
|
|
||||||
using osu.Game.Graphics.UserInterfaceV2;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
@ -28,7 +27,7 @@ namespace osu.Game.Screens.Import
|
|||||||
private Container contentContainer;
|
private Container contentContainer;
|
||||||
private TextFlowContainer currentFileText;
|
private TextFlowContainer currentFileText;
|
||||||
|
|
||||||
private TriangleButton importButton;
|
private RoundedButton importButton;
|
||||||
|
|
||||||
private const float duration = 300;
|
private const float duration = 300;
|
||||||
private const float button_height = 50;
|
private const float button_height = 50;
|
||||||
@ -100,7 +99,7 @@ namespace osu.Game.Screens.Import
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
importButton = new TriangleButton
|
importButton = new RoundedButton
|
||||||
{
|
{
|
||||||
Text = "Import",
|
Text = "Import",
|
||||||
Anchor = Anchor.BottomCentre,
|
Anchor = Anchor.BottomCentre,
|
||||||
|
@ -9,7 +9,7 @@ using osu.Framework.Allocation;
|
|||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
using osu.Game.Screens.OnlinePlay.Playlists;
|
using osu.Game.Screens.OnlinePlay.Playlists;
|
||||||
using osu.Game.Screens.Select;
|
using osu.Game.Screens.Select;
|
||||||
@ -54,7 +54,7 @@ namespace osu.Game.Screens.OnlinePlay.Components
|
|||||||
},
|
},
|
||||||
new Drawable[]
|
new Drawable[]
|
||||||
{
|
{
|
||||||
new TriangleButton
|
new RoundedButton
|
||||||
{
|
{
|
||||||
Text = "Add new playlist entry",
|
Text = "Add new playlist entry",
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
@ -7,13 +7,13 @@ using osu.Framework.Allocation;
|
|||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics.Cursor;
|
using osu.Framework.Graphics.Cursor;
|
||||||
using osu.Framework.Localisation;
|
using osu.Framework.Localisation;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online;
|
using osu.Game.Online;
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Components
|
namespace osu.Game.Screens.OnlinePlay.Components
|
||||||
{
|
{
|
||||||
public abstract partial class ReadyButton : TriangleButton, IHasTooltip
|
public abstract partial class ReadyButton : RoundedButton, IHasTooltip
|
||||||
{
|
{
|
||||||
public new readonly BindableBool Enabled = new BindableBool();
|
public new readonly BindableBool Enabled = new BindableBool();
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge
|
|||||||
}
|
}
|
||||||
|
|
||||||
private OsuPasswordTextBox passwordTextBox;
|
private OsuPasswordTextBox passwordTextBox;
|
||||||
private TriangleButton joinButton;
|
private RoundedButton joinButton;
|
||||||
private OsuSpriteText errorText;
|
private OsuSpriteText errorText;
|
||||||
private Sample sampleJoinFail;
|
private Sample sampleJoinFail;
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge
|
|||||||
Width = 200,
|
Width = 200,
|
||||||
PlaceholderText = "password",
|
PlaceholderText = "password",
|
||||||
},
|
},
|
||||||
joinButton = new TriangleButton
|
joinButton = new RoundedButton
|
||||||
{
|
{
|
||||||
Width = 80,
|
Width = 80,
|
||||||
Text = "Join Room",
|
Text = "Join Room",
|
||||||
|
@ -10,13 +10,12 @@ using osu.Framework.Input.Events;
|
|||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Match.Components
|
namespace osu.Game.Screens.OnlinePlay.Match.Components
|
||||||
{
|
{
|
||||||
public abstract partial class CreateRoomButton : PurpleTriangleButton, IKeyBindingHandler<PlatformAction>
|
public abstract partial class CreateRoomButton : PurpleRoundedButton, IKeyBindingHandler<PlatformAction>
|
||||||
{
|
{
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SpriteText.Font = SpriteText.Font.With(size: 14);
|
SpriteText.Font = SpriteText.Font.With(size: 14);
|
||||||
Triangles.TriangleScale = 1.5f;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool OnPressed(KeyBindingPressEvent<PlatformAction> e)
|
public bool OnPressed(KeyBindingPressEvent<PlatformAction> e)
|
||||||
|
@ -1,22 +1,18 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Extensions.Color4Extensions;
|
using osu.Framework.Extensions.Color4Extensions;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
|
||||||
namespace osu.Game.Screens.OnlinePlay.Match.Components
|
namespace osu.Game.Screens.OnlinePlay.Match.Components
|
||||||
{
|
{
|
||||||
public partial class PurpleTriangleButton : TriangleButton
|
public partial class PurpleRoundedButton : RoundedButton
|
||||||
{
|
{
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
BackgroundColour = Color4Extensions.FromHex(@"593790");
|
BackgroundColour = Color4Extensions.FromHex(@"593790");
|
||||||
Triangles.ColourLight = Color4Extensions.FromHex(@"7247b6");
|
|
||||||
Triangles.ColourDark = Color4Extensions.FromHex(@"593790");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -48,7 +48,7 @@ namespace osu.Game.Screens.OnlinePlay.Match
|
|||||||
{
|
{
|
||||||
if (allowEdit)
|
if (allowEdit)
|
||||||
{
|
{
|
||||||
ButtonsContainer.Add(editButton = new PurpleTriangleButton
|
ButtonsContainer.Add(editButton = new PurpleRoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Y,
|
RelativeSizeAxes = Axes.Y,
|
||||||
Size = new Vector2(100, 1),
|
Size = new Vector2(100, 1),
|
||||||
|
@ -517,7 +517,7 @@ namespace osu.Game.Screens.OnlinePlay.Match
|
|||||||
/// <param name="room">The room to change the settings of.</param>
|
/// <param name="room">The room to change the settings of.</param>
|
||||||
protected abstract RoomSettingsOverlay CreateRoomSettingsOverlay(Room room);
|
protected abstract RoomSettingsOverlay CreateRoomSettingsOverlay(Room room);
|
||||||
|
|
||||||
public partial class UserModSelectButton : PurpleTriangleButton, IKeyBindingHandler<GlobalAction>
|
public partial class UserModSelectButton : PurpleRoundedButton, IKeyBindingHandler<GlobalAction>
|
||||||
{
|
{
|
||||||
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
|
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
|
||||||
{
|
{
|
||||||
|
@ -109,7 +109,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
|
|
||||||
foreach (var duration in available_delays)
|
foreach (var duration in available_delays)
|
||||||
{
|
{
|
||||||
flow.Add(new OsuButton
|
flow.Add(new RoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Text = $"Start match in {duration.Humanize()}",
|
Text = $"Start match in {duration.Humanize()}",
|
||||||
@ -124,7 +124,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
|
|
||||||
if (multiplayerClient.Room?.ActiveCountdowns.Any(c => c is MatchStartCountdown) == true && multiplayerClient.IsHost)
|
if (multiplayerClient.Room?.ActiveCountdowns.Any(c => c is MatchStartCountdown) == true && multiplayerClient.IsHost)
|
||||||
{
|
{
|
||||||
flow.Add(new OsuButton
|
flow.Add(new RoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Text = "Stop countdown",
|
Text = "Stop countdown",
|
||||||
|
@ -16,6 +16,7 @@ using osu.Game.Graphics;
|
|||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Multiplayer;
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
@ -64,7 +65,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
public OsuEnumDropdown<QueueMode> QueueModeDropdown = null!;
|
public OsuEnumDropdown<QueueMode> QueueModeDropdown = null!;
|
||||||
public OsuTextBox PasswordTextBox = null!;
|
public OsuTextBox PasswordTextBox = null!;
|
||||||
public OsuCheckbox AutoSkipCheckbox = null!;
|
public OsuCheckbox AutoSkipCheckbox = null!;
|
||||||
public TriangleButton ApplyButton = null!;
|
public RoundedButton ApplyButton = null!;
|
||||||
|
|
||||||
public OsuSpriteText ErrorText = null!;
|
public OsuSpriteText ErrorText = null!;
|
||||||
|
|
||||||
@ -274,7 +275,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Height = DrawableRoomPlaylistItem.HEIGHT
|
Height = DrawableRoomPlaylistItem.HEIGHT
|
||||||
},
|
},
|
||||||
new PurpleTriangleButton
|
new RoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Height = 40,
|
Height = 40,
|
||||||
@ -460,7 +461,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class CreateOrUpdateButton : TriangleButton
|
public partial class CreateOrUpdateButton : RoundedButton
|
||||||
{
|
{
|
||||||
[Resolved(typeof(Room), nameof(Room.RoomID))]
|
[Resolved(typeof(Room), nameof(Room.RoomID))]
|
||||||
private Bindable<long?> roomId { get; set; } = null!;
|
private Bindable<long?> roomId { get; set; } = null!;
|
||||||
@ -474,9 +475,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuColour colours)
|
private void load(OsuColour colours)
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.Yellow;
|
BackgroundColour = colours.YellowDark;
|
||||||
Triangles.ColourLight = colours.YellowLight;
|
|
||||||
Triangles.ColourDark = colours.YellowDark;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ using osu.Framework.Audio.Sample;
|
|||||||
using osu.Framework.Localisation;
|
using osu.Framework.Localisation;
|
||||||
using osu.Framework.Threading;
|
using osu.Framework.Threading;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Backgrounds;
|
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Multiplayer;
|
||||||
using osu.Game.Screens.OnlinePlay.Components;
|
using osu.Game.Screens.OnlinePlay.Components;
|
||||||
|
|
||||||
@ -20,8 +19,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
{
|
{
|
||||||
public partial class MultiplayerReadyButton : ReadyButton
|
public partial class MultiplayerReadyButton : ReadyButton
|
||||||
{
|
{
|
||||||
public new Triangles Triangles => base.Triangles;
|
|
||||||
|
|
||||||
[Resolved]
|
[Resolved]
|
||||||
private MultiplayerClient multiplayerClient { get; set; }
|
private MultiplayerClient multiplayerClient { get; set; }
|
||||||
|
|
||||||
@ -212,15 +209,11 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
void setYellow()
|
void setYellow()
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.YellowDark;
|
BackgroundColour = colours.YellowDark;
|
||||||
Triangles.ColourDark = colours.YellowDark;
|
|
||||||
Triangles.ColourLight = colours.Yellow;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setGreen()
|
void setGreen()
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.Green;
|
BackgroundColour = colours.Green;
|
||||||
Triangles.ColourDark = colours.Green;
|
|
||||||
Triangles.ColourLight = colours.GreenLight;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,8 +7,7 @@ using osu.Framework.Allocation;
|
|||||||
using osu.Framework.Bindables;
|
using osu.Framework.Bindables;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Backgrounds;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Graphics.UserInterface;
|
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Multiplayer;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
@ -24,11 +23,11 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
|
|
||||||
private IBindable<bool> operationInProgress;
|
private IBindable<bool> operationInProgress;
|
||||||
|
|
||||||
private readonly ButtonWithTrianglesExposed button;
|
private readonly RoundedButton button;
|
||||||
|
|
||||||
public MultiplayerSpectateButton()
|
public MultiplayerSpectateButton()
|
||||||
{
|
{
|
||||||
InternalChild = button = new ButtonWithTrianglesExposed
|
InternalChild = button = new RoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Size = Vector2.One,
|
Size = Vector2.One,
|
||||||
@ -67,15 +66,11 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
default:
|
default:
|
||||||
button.Text = "Spectate";
|
button.Text = "Spectate";
|
||||||
button.BackgroundColour = colours.BlueDark;
|
button.BackgroundColour = colours.BlueDark;
|
||||||
button.Triangles.ColourDark = colours.BlueDarker;
|
|
||||||
button.Triangles.ColourLight = colours.Blue;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MultiplayerUserState.Spectating:
|
case MultiplayerUserState.Spectating:
|
||||||
button.Text = "Stop spectating";
|
button.Text = "Stop spectating";
|
||||||
button.BackgroundColour = colours.Gray4;
|
button.BackgroundColour = colours.Gray4;
|
||||||
button.Triangles.ColourDark = colours.Gray5;
|
|
||||||
button.Triangles.ColourLight = colours.Gray6;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,10 +78,5 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
|
|||||||
&& Client.Room.State != MultiplayerRoomState.Closed
|
&& Client.Room.State != MultiplayerRoomState.Closed
|
||||||
&& !operationInProgress.Value;
|
&& !operationInProgress.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
private partial class ButtonWithTrianglesExposed : TriangleButton
|
|
||||||
{
|
|
||||||
public new Triangles Triangles => base.Triangles;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -430,7 +430,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
modSettingChangeTracker?.Dispose();
|
modSettingChangeTracker?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class AddItemButton : PurpleTriangleButton
|
public partial class AddItemButton : PurpleRoundedButton
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,8 +38,6 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
private void load(OsuColour colours)
|
private void load(OsuColour colours)
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.Green;
|
BackgroundColour = colours.Green;
|
||||||
Triangles.ColourDark = colours.Green;
|
|
||||||
Triangles.ColourLight = colours.GreenLight;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool hasRemainingAttempts = true;
|
private bool hasRemainingAttempts = true;
|
||||||
|
@ -16,6 +16,7 @@ using osu.Game.Graphics;
|
|||||||
using osu.Game.Graphics.Containers;
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
using osu.Game.Online.API.Requests.Responses;
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using osu.Game.Online.Rooms;
|
using osu.Game.Online.Rooms;
|
||||||
@ -58,7 +59,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
public OsuTextBox NameField = null!, MaxParticipantsField = null!, MaxAttemptsField = null!;
|
public OsuTextBox NameField = null!, MaxParticipantsField = null!, MaxAttemptsField = null!;
|
||||||
public OsuDropdown<TimeSpan> DurationField = null!;
|
public OsuDropdown<TimeSpan> DurationField = null!;
|
||||||
public RoomAvailabilityPicker AvailabilityPicker = null!;
|
public RoomAvailabilityPicker AvailabilityPicker = null!;
|
||||||
public TriangleButton ApplyButton = null!;
|
public RoundedButton ApplyButton = null!;
|
||||||
|
|
||||||
public bool IsLoading => loadingLayer.State.Value == Visibility.Visible;
|
public bool IsLoading => loadingLayer.State.Value == Visibility.Visible;
|
||||||
|
|
||||||
@ -68,7 +69,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
private DrawableRoomPlaylist playlist = null!;
|
private DrawableRoomPlaylist playlist = null!;
|
||||||
private OsuSpriteText playlistLength = null!;
|
private OsuSpriteText playlistLength = null!;
|
||||||
|
|
||||||
private PurpleTriangleButton editPlaylistButton = null!;
|
private PurpleRoundedButton editPlaylistButton = null!;
|
||||||
|
|
||||||
[Resolved]
|
[Resolved]
|
||||||
private IRoomManager? manager { get; set; }
|
private IRoomManager? manager { get; set; }
|
||||||
@ -222,7 +223,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
},
|
},
|
||||||
new Drawable[]
|
new Drawable[]
|
||||||
{
|
{
|
||||||
editPlaylistButton = new PurpleTriangleButton
|
editPlaylistButton = new PurpleRoundedButton
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
Height = 40,
|
Height = 40,
|
||||||
@ -414,7 +415,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public partial class CreateRoomButton : TriangleButton
|
public partial class CreateRoomButton : RoundedButton
|
||||||
{
|
{
|
||||||
public CreateRoomButton()
|
public CreateRoomButton()
|
||||||
{
|
{
|
||||||
@ -424,9 +425,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuColour colours)
|
private void load(OsuColour colours)
|
||||||
{
|
{
|
||||||
BackgroundColour = colours.Yellow;
|
BackgroundColour = colours.YellowDark;
|
||||||
Triangles.ColourLight = colours.YellowLight;
|
|
||||||
Triangles.ColourDark = colours.YellowDark;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ using osu.Game.Beatmaps.Drawables.Cards;
|
|||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
using osu.Game.Online.API.Requests;
|
using osu.Game.Online.API.Requests;
|
||||||
using osu.Game.Online.API.Requests.Responses;
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
@ -54,7 +54,7 @@ namespace osu.Game.Screens.Play
|
|||||||
private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple);
|
private OverlayColourProvider colourProvider = new OverlayColourProvider(OverlayColourScheme.Purple);
|
||||||
|
|
||||||
private Container beatmapPanelContainer;
|
private Container beatmapPanelContainer;
|
||||||
private TriangleButton watchButton;
|
private RoundedButton watchButton;
|
||||||
private SettingsCheckbox automaticDownload;
|
private SettingsCheckbox automaticDownload;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -147,7 +147,7 @@ namespace osu.Game.Screens.Play
|
|||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
},
|
},
|
||||||
watchButton = new PurpleTriangleButton
|
watchButton = new PurpleRoundedButton
|
||||||
{
|
{
|
||||||
Text = "Start Watching",
|
Text = "Start Watching",
|
||||||
Width = 250,
|
Width = 250,
|
||||||
|
@ -12,7 +12,7 @@ using osu.Framework.Testing;
|
|||||||
using osu.Framework.Testing.Input;
|
using osu.Framework.Testing.Input;
|
||||||
using osu.Game.Graphics.Cursor;
|
using osu.Game.Graphics.Cursor;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
using osu.Game.Input.Bindings;
|
using osu.Game.Input.Bindings;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
@ -27,8 +27,8 @@ namespace osu.Game.Tests.Visual
|
|||||||
|
|
||||||
protected readonly ManualInputManager InputManager;
|
protected readonly ManualInputManager InputManager;
|
||||||
|
|
||||||
private readonly TriangleButton buttonTest;
|
private readonly RoundedButton buttonTest;
|
||||||
private readonly TriangleButton buttonLocal;
|
private readonly RoundedButton buttonLocal;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether to create a nested container to handle <see cref="GlobalAction"/>s that result from local (manual) test input.
|
/// Whether to create a nested container to handle <see cref="GlobalAction"/>s that result from local (manual) test input.
|
||||||
@ -110,13 +110,13 @@ namespace osu.Game.Tests.Visual
|
|||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
buttonLocal = new TriangleButton
|
buttonLocal = new RoundedButton
|
||||||
{
|
{
|
||||||
Text = "local",
|
Text = "local",
|
||||||
Size = new Vector2(50, 30),
|
Size = new Vector2(50, 30),
|
||||||
Action = returnUserInput
|
Action = returnUserInput
|
||||||
},
|
},
|
||||||
buttonTest = new TriangleButton
|
buttonTest = new RoundedButton
|
||||||
{
|
{
|
||||||
Text = "test",
|
Text = "test",
|
||||||
Size = new Vector2(50, 30),
|
Size = new Vector2(50, 30),
|
||||||
|
Loading…
Reference in New Issue
Block a user