Merge remote-tracking branch 'osulazer/master' into develop

This commit is contained in:
sim1222 2022-12-08 17:18:17 +09:00
commit bc34a46a42
No known key found for this signature in database
GPG Key ID: 83C11C5D51F42825
2122 changed files with 7284 additions and 4380 deletions

View File

@ -1,2 +1,8 @@
# Normalize all the line endings # Normalize all the line endings
32a74f95a5c80a0ed18e693f13a47522099df5c3 32a74f95a5c80a0ed18e693f13a47522099df5c3
# Partial everything
7bc8908ca9c026fed1d831eb6e58df7624a8d614
# Add a few more missing partial specs
212d78865a6b5f091173a347bad5686834d1d5fe
# Add partial specs in mobile projects too
00c11b2b4e389e48f3995d63484a6bc66a7afbdb

View File

@ -28,7 +28,7 @@ jobs:
timeout-minutes: 5 timeout-minutes: 5
steps: steps:
- name: Annotate CI run with test results - name: Annotate CI run with test results
uses: dorny/test-reporter@v1.4.2 uses: dorny/test-reporter@v1.6.0
with: with:
artifact: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}} artifact: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}}
name: Test Results (${{matrix.os.prettyname}}, ${{matrix.threadingMode}}) name: Test Results (${{matrix.os.prettyname}}, ${{matrix.threadingMode}})

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.EmptyFreeform.Tests namespace osu.Game.Rulesets.EmptyFreeform.Tests
{ {
public class TestSceneOsuGame : OsuTestScene public partial class TestSceneOsuGame : OsuTestScene
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.EmptyFreeform.Tests namespace osu.Game.Rulesets.EmptyFreeform.Tests
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuPlayer : PlayerTestScene public partial class TestSceneOsuPlayer : PlayerTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new EmptyFreeformRuleset(); protected override Ruleset CreatePlayerRuleset() => new EmptyFreeformRuleset();
} }

View File

@ -7,7 +7,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.EmptyFreeform namespace osu.Game.Rulesets.EmptyFreeform
{ {
public class EmptyFreeformInputManager : RulesetInputManager<EmptyFreeformAction> public partial class EmptyFreeformInputManager : RulesetInputManager<EmptyFreeformAction>
{ {
public EmptyFreeformInputManager(RulesetInfo ruleset) public EmptyFreeformInputManager(RulesetInfo ruleset)
: base(ruleset, 0, SimultaneousBindingMode.Unique) : base(ruleset, 0, SimultaneousBindingMode.Unique)

View File

@ -21,7 +21,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.EmptyFreeform namespace osu.Game.Rulesets.EmptyFreeform
{ {
public class EmptyFreeformRuleset : Ruleset public partial class EmptyFreeformRuleset : Ruleset
{ {
public override string Description => "a very emptyfreeformruleset ruleset"; public override string Description => "a very emptyfreeformruleset ruleset";
@ -56,7 +56,7 @@ namespace osu.Game.Rulesets.EmptyFreeform
public override Drawable CreateIcon() => new Icon(ShortName[0]); public override Drawable CreateIcon() => new Icon(ShortName[0]);
public class Icon : CompositeDrawable public partial class Icon : CompositeDrawable
{ {
public Icon(char c) public Icon(char c)
{ {

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.EmptyFreeform.Objects.Drawables namespace osu.Game.Rulesets.EmptyFreeform.Objects.Drawables
{ {
public class DrawableEmptyFreeformHitObject : DrawableHitObject<EmptyFreeformHitObject> public partial class DrawableEmptyFreeformHitObject : DrawableHitObject<EmptyFreeformHitObject>
{ {
public DrawableEmptyFreeformHitObject(EmptyFreeformHitObject hitObject) public DrawableEmptyFreeformHitObject(EmptyFreeformHitObject hitObject)
: base(hitObject) : base(hitObject)

View File

@ -17,7 +17,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.EmptyFreeform.UI namespace osu.Game.Rulesets.EmptyFreeform.UI
{ {
[Cached] [Cached]
public class DrawableEmptyFreeformRuleset : DrawableRuleset<EmptyFreeformHitObject> public partial class DrawableEmptyFreeformRuleset : DrawableRuleset<EmptyFreeformHitObject>
{ {
public DrawableEmptyFreeformRuleset(EmptyFreeformRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null) public DrawableEmptyFreeformRuleset(EmptyFreeformRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
: base(ruleset, beatmap, mods) : base(ruleset, beatmap, mods)

View File

@ -8,7 +8,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.EmptyFreeform.UI namespace osu.Game.Rulesets.EmptyFreeform.UI
{ {
[Cached] [Cached]
public class EmptyFreeformPlayfield : Playfield public partial class EmptyFreeformPlayfield : Playfield
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Pippidon.Tests namespace osu.Game.Rulesets.Pippidon.Tests
{ {
public class TestSceneOsuGame : OsuTestScene public partial class TestSceneOsuGame : OsuTestScene
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Pippidon.Tests namespace osu.Game.Rulesets.Pippidon.Tests
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuPlayer : PlayerTestScene public partial class TestSceneOsuPlayer : PlayerTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new PippidonRuleset(); protected override Ruleset CreatePlayerRuleset() => new PippidonRuleset();
} }

View File

@ -16,7 +16,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Pippidon.Objects.Drawables namespace osu.Game.Rulesets.Pippidon.Objects.Drawables
{ {
public class DrawablePippidonHitObject : DrawableHitObject<PippidonHitObject> public partial class DrawablePippidonHitObject : DrawableHitObject<PippidonHitObject>
{ {
private const double time_preempt = 600; private const double time_preempt = 600;
private const double time_fadein = 400; private const double time_fadein = 400;

View File

@ -7,7 +7,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Pippidon namespace osu.Game.Rulesets.Pippidon
{ {
public class PippidonInputManager : RulesetInputManager<PippidonAction> public partial class PippidonInputManager : RulesetInputManager<PippidonAction>
{ {
public PippidonInputManager(RulesetInfo ruleset) public PippidonInputManager(RulesetInfo ruleset)
: base(ruleset, 0, SimultaneousBindingMode.Unique) : base(ruleset, 0, SimultaneousBindingMode.Unique)

View File

@ -8,7 +8,7 @@ using osu.Framework.Graphics.Textures;
namespace osu.Game.Rulesets.Pippidon namespace osu.Game.Rulesets.Pippidon
{ {
public class PippidonRulesetIcon : Sprite public partial class PippidonRulesetIcon : Sprite
{ {
private readonly Ruleset ruleset; private readonly Ruleset ruleset;

View File

@ -17,7 +17,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
[Cached] [Cached]
public class DrawablePippidonRuleset : DrawableRuleset<PippidonHitObject> public partial class DrawablePippidonRuleset : DrawableRuleset<PippidonHitObject>
{ {
public DrawablePippidonRuleset(PippidonRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null) public DrawablePippidonRuleset(PippidonRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
: base(ruleset, beatmap, mods) : base(ruleset, beatmap, mods)

View File

@ -10,7 +10,7 @@ using osuTK;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
public class PippidonCursorContainer : GameplayCursorContainer public partial class PippidonCursorContainer : GameplayCursorContainer
{ {
private Sprite cursorSprite; private Sprite cursorSprite;
private Texture cursorTexture; private Texture cursorTexture;

View File

@ -8,7 +8,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
[Cached] [Cached]
public class PippidonPlayfield : Playfield public partial class PippidonPlayfield : Playfield
{ {
protected override GameplayCursorContainer CreateCursor() => new PippidonCursorContainer(); protected override GameplayCursorContainer CreateCursor() => new PippidonCursorContainer();

View File

@ -7,7 +7,7 @@ using osuTK;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
public class PippidonPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer public partial class PippidonPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer
{ {
public PippidonPlayfieldAdjustmentContainer() public PippidonPlayfieldAdjustmentContainer()
{ {

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.EmptyScrolling.Tests namespace osu.Game.Rulesets.EmptyScrolling.Tests
{ {
public class TestSceneOsuGame : OsuTestScene public partial class TestSceneOsuGame : OsuTestScene
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.EmptyScrolling.Tests namespace osu.Game.Rulesets.EmptyScrolling.Tests
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuPlayer : PlayerTestScene public partial class TestSceneOsuPlayer : PlayerTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new EmptyScrollingRuleset(); protected override Ruleset CreatePlayerRuleset() => new EmptyScrollingRuleset();
} }

View File

@ -7,7 +7,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.EmptyScrolling namespace osu.Game.Rulesets.EmptyScrolling
{ {
public class EmptyScrollingInputManager : RulesetInputManager<EmptyScrollingAction> public partial class EmptyScrollingInputManager : RulesetInputManager<EmptyScrollingAction>
{ {
public EmptyScrollingInputManager(RulesetInfo ruleset) public EmptyScrollingInputManager(RulesetInfo ruleset)
: base(ruleset, 0, SimultaneousBindingMode.Unique) : base(ruleset, 0, SimultaneousBindingMode.Unique)

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.EmptyScrolling.Objects.Drawables namespace osu.Game.Rulesets.EmptyScrolling.Objects.Drawables
{ {
public class DrawableEmptyScrollingHitObject : DrawableHitObject<EmptyScrollingHitObject> public partial class DrawableEmptyScrollingHitObject : DrawableHitObject<EmptyScrollingHitObject>
{ {
public DrawableEmptyScrollingHitObject(EmptyScrollingHitObject hitObject) public DrawableEmptyScrollingHitObject(EmptyScrollingHitObject hitObject)
: base(hitObject) : base(hitObject)

View File

@ -18,7 +18,7 @@ using osu.Game.Rulesets.UI.Scrolling;
namespace osu.Game.Rulesets.EmptyScrolling.UI namespace osu.Game.Rulesets.EmptyScrolling.UI
{ {
[Cached] [Cached]
public class DrawableEmptyScrollingRuleset : DrawableScrollingRuleset<EmptyScrollingHitObject> public partial class DrawableEmptyScrollingRuleset : DrawableScrollingRuleset<EmptyScrollingHitObject>
{ {
public DrawableEmptyScrollingRuleset(EmptyScrollingRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null) public DrawableEmptyScrollingRuleset(EmptyScrollingRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
: base(ruleset, beatmap, mods) : base(ruleset, beatmap, mods)

View File

@ -8,7 +8,7 @@ using osu.Game.Rulesets.UI.Scrolling;
namespace osu.Game.Rulesets.EmptyScrolling.UI namespace osu.Game.Rulesets.EmptyScrolling.UI
{ {
[Cached] [Cached]
public class EmptyScrollingPlayfield : ScrollingPlayfield public partial class EmptyScrollingPlayfield : ScrollingPlayfield
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -9,7 +9,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Pippidon.Tests namespace osu.Game.Rulesets.Pippidon.Tests
{ {
public class TestSceneOsuGame : OsuTestScene public partial class TestSceneOsuGame : OsuTestScene
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Pippidon.Tests namespace osu.Game.Rulesets.Pippidon.Tests
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuPlayer : PlayerTestScene public partial class TestSceneOsuPlayer : PlayerTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new PippidonRuleset(); protected override Ruleset CreatePlayerRuleset() => new PippidonRuleset();
} }

View File

@ -17,7 +17,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Pippidon.Objects.Drawables namespace osu.Game.Rulesets.Pippidon.Objects.Drawables
{ {
public class DrawablePippidonHitObject : DrawableHitObject<PippidonHitObject> public partial class DrawablePippidonHitObject : DrawableHitObject<PippidonHitObject>
{ {
private BindableNumber<int> currentLane; private BindableNumber<int> currentLane;

View File

@ -7,7 +7,7 @@ using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Pippidon namespace osu.Game.Rulesets.Pippidon
{ {
public class PippidonInputManager : RulesetInputManager<PippidonAction> public partial class PippidonInputManager : RulesetInputManager<PippidonAction>
{ {
public PippidonInputManager(RulesetInfo ruleset) public PippidonInputManager(RulesetInfo ruleset)
: base(ruleset, 0, SimultaneousBindingMode.Unique) : base(ruleset, 0, SimultaneousBindingMode.Unique)

View File

@ -9,7 +9,7 @@ using osu.Framework.Graphics.Textures;
namespace osu.Game.Rulesets.Pippidon namespace osu.Game.Rulesets.Pippidon
{ {
public class PippidonRulesetIcon : Sprite public partial class PippidonRulesetIcon : Sprite
{ {
private readonly Ruleset ruleset; private readonly Ruleset ruleset;

View File

@ -18,7 +18,7 @@ using osu.Game.Rulesets.UI.Scrolling;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
[Cached] [Cached]
public class DrawablePippidonRuleset : DrawableScrollingRuleset<PippidonHitObject> public partial class DrawablePippidonRuleset : DrawableScrollingRuleset<PippidonHitObject>
{ {
public DrawablePippidonRuleset(PippidonRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null) public DrawablePippidonRuleset(PippidonRuleset ruleset, IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
: base(ruleset, beatmap, mods) : base(ruleset, beatmap, mods)

View File

@ -15,7 +15,7 @@ using osuTK;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
public class PippidonCharacter : BeatSyncedContainer, IKeyBindingHandler<PippidonAction> public partial class PippidonCharacter : BeatSyncedContainer, IKeyBindingHandler<PippidonAction>
{ {
public readonly BindableInt LanePosition = new BindableInt public readonly BindableInt LanePosition = new BindableInt
{ {

View File

@ -16,7 +16,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Pippidon.UI namespace osu.Game.Rulesets.Pippidon.UI
{ {
[Cached] [Cached]
public class PippidonPlayfield : ScrollingPlayfield public partial class PippidonPlayfield : ScrollingPlayfield
{ {
public const float LANE_HEIGHT = 70; public const float LANE_HEIGHT = 70;
@ -60,7 +60,7 @@ namespace osu.Game.Rulesets.Pippidon.UI
}); });
} }
private class LaneContainer : BeatSyncedContainer private partial class LaneContainer : BeatSyncedContainer
{ {
private OsuColour colours; private OsuColour colours;
private FillFlowContainer fill; private FillFlowContainer fill;
@ -99,7 +99,7 @@ namespace osu.Game.Rulesets.Pippidon.UI
} }
} }
private class Lane : CompositeDrawable private partial class Lane : CompositeDrawable
{ {
public Lane() public Lane()
{ {

View File

@ -51,8 +51,8 @@
<Reference Include="Java.Interop" /> <Reference Include="Java.Interop" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ppy.osu.Game.Resources" Version="2022.1103.0" /> <PackageReference Include="ppy.osu.Game.Resources" Version="2022.1207.0" />
<PackageReference Include="ppy.osu.Framework.Android" Version="2022.1110.0" /> <PackageReference Include="ppy.osu.Framework.Android" Version="2022.1208.0" />
</ItemGroup> </ItemGroup>
<ItemGroup Label="Transitive Dependencies"> <ItemGroup Label="Transitive Dependencies">
<!-- Realm needs to be directly referenced in all Xamarin projects, as it will not pull in its transitive dependencies otherwise. --> <!-- Realm needs to be directly referenced in all Xamarin projects, as it will not pull in its transitive dependencies otherwise. -->

View File

@ -11,7 +11,7 @@ using osu.Game.Overlays.Settings;
namespace osu.Android namespace osu.Android
{ {
public class AndroidJoystickSettings : SettingsSubsection public partial class AndroidJoystickSettings : SettingsSubsection
{ {
protected override LocalisableString Header => JoystickSettingsStrings.JoystickGamepad; protected override LocalisableString Header => JoystickSettingsStrings.JoystickGamepad;

View File

@ -14,7 +14,7 @@ using osu.Game.Overlays.Settings.Sections.Input;
namespace osu.Android namespace osu.Android
{ {
public class AndroidMouseSettings : SettingsSubsection public partial class AndroidMouseSettings : SettingsSubsection
{ {
private readonly AndroidMouseHandler mouseHandler; private readonly AndroidMouseHandler mouseHandler;

View File

@ -11,7 +11,7 @@ using osu.Game;
namespace osu.Android namespace osu.Android
{ {
public class GameplayScreenRotationLocker : Component public partial class GameplayScreenRotationLocker : Component
{ {
private Bindable<bool> localUserPlaying; private Bindable<bool> localUserPlaying;

View File

@ -18,7 +18,7 @@ using Xamarin.Essentials;
namespace osu.Android namespace osu.Android
{ {
public class OsuGameAndroid : OsuGame public partial class OsuGameAndroid : OsuGame
{ {
[Cached] [Cached]
private readonly OsuGameActivity gameActivity; private readonly OsuGameActivity gameActivity;

View File

@ -20,7 +20,7 @@ using LogLevel = osu.Framework.Logging.LogLevel;
namespace osu.Desktop namespace osu.Desktop
{ {
internal class DiscordRichPresence : Component internal partial class DiscordRichPresence : Component
{ {
private const string client_id = "367827983903490050"; private const string client_id = "367827983903490050";

View File

@ -26,7 +26,7 @@ using SDL2;
namespace osu.Desktop namespace osu.Desktop
{ {
internal class OsuGameDesktop : OsuGame internal partial class OsuGameDesktop : OsuGame
{ {
private OsuSchemeLinkIPCChannel? osuSchemeLinkIPCChannel; private OsuSchemeLinkIPCChannel? osuSchemeLinkIPCChannel;

View File

@ -16,7 +16,7 @@ namespace osu.Desktop.Security
/// <summary> /// <summary>
/// Checks if the game is running with elevated privileges (as admin in Windows, root in Unix) and displays a warning notification if so. /// Checks if the game is running with elevated privileges (as admin in Windows, root in Unix) and displays a warning notification if so.
/// </summary> /// </summary>
public class ElevatedPrivilegesChecker : Component public partial class ElevatedPrivilegesChecker : Component
{ {
[Resolved] [Resolved]
private INotificationOverlay notifications { get; set; } = null!; private INotificationOverlay notifications { get; set; } = null!;
@ -63,7 +63,7 @@ namespace osu.Desktop.Security
return false; return false;
} }
private class ElevatedPrivilegesNotification : SimpleNotification private partial class ElevatedPrivilegesNotification : SimpleNotification
{ {
public override bool IsImportant => true; public override bool IsImportant => true;

View File

@ -17,7 +17,7 @@ using UpdateManager = osu.Game.Updater.UpdateManager;
namespace osu.Desktop.Updater namespace osu.Desktop.Updater
{ {
[SupportedOSPlatform("windows")] [SupportedOSPlatform("windows")]
public class SquirrelUpdateManager : UpdateManager public partial class SquirrelUpdateManager : UpdateManager
{ {
private Squirrel.UpdateManager? updateManager; private Squirrel.UpdateManager? updateManager;
private INotificationOverlay notificationOverlay = null!; private INotificationOverlay notificationOverlay = null!;

View File

@ -10,7 +10,7 @@ using osu.Game.Screens.Play;
namespace osu.Desktop.Windows namespace osu.Desktop.Windows
{ {
public class GameplayWinKeyBlocker : Component public partial class GameplayWinKeyBlocker : Component
{ {
private Bindable<bool> disableWinKey = null!; private Bindable<bool> disableWinKey = null!;
private IBindable<bool> localUserPlaying = null!; private IBindable<bool> localUserPlaying = null!;

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Catch.Tests.Mods namespace osu.Game.Rulesets.Catch.Tests.Mods
{ {
public class TestSceneCatchModFlashlight : ModTestScene public partial class TestSceneCatchModFlashlight : ModTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new CatchRuleset(); protected override Ruleset CreatePlayerRuleset() => new CatchRuleset();

View File

@ -15,7 +15,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Catch.Tests namespace osu.Game.Rulesets.Catch.Tests
{ {
[TestFixture] [TestFixture]
public class TestSceneCatchTouchInput : OsuTestScene public partial class TestSceneCatchTouchInput : OsuTestScene
{ {
[Test] [Test]
public void TestBasic() public void TestBasic()

View File

@ -10,7 +10,7 @@ using osuTK;
namespace osu.Game.Rulesets.Catch.Edit namespace osu.Game.Rulesets.Catch.Edit
{ {
public class CatchEditorPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer public partial class CatchEditorPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer
{ {
protected override Container<Drawable> Content => content; protected override Container<Drawable> Content => content;
private readonly Container content; private readonly Container content;
@ -29,7 +29,7 @@ namespace osu.Game.Rulesets.Catch.Edit
}; };
} }
private class ScalingContainer : Container private partial class ScalingContainer : Container
{ {
public ScalingContainer() public ScalingContainer()
{ {

View File

@ -15,7 +15,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
internal class ArgonBananaPiece : ArgonFruitPiece internal partial class ArgonBananaPiece : ArgonFruitPiece
{ {
private Container stabilisedPieceContainer = null!; private Container stabilisedPieceContainer = null!;

View File

@ -10,7 +10,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
public class ArgonCatcher : CompositeDrawable public partial class ArgonCatcher : CompositeDrawable
{ {
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()

View File

@ -13,7 +13,7 @@ using osuTK;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
internal class ArgonDropletPiece : CatchHitObjectPiece internal partial class ArgonDropletPiece : CatchHitObjectPiece
{ {
protected override Drawable HyperBorderPiece => hyperBorderPiece; protected override Drawable HyperBorderPiece => hyperBorderPiece;

View File

@ -13,7 +13,7 @@ using osuTK;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
internal class ArgonFruitPiece : CatchHitObjectPiece internal partial class ArgonFruitPiece : CatchHitObjectPiece
{ {
protected override Drawable HyperBorderPiece => hyperBorderPiece; protected override Drawable HyperBorderPiece => hyperBorderPiece;

View File

@ -16,7 +16,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
public class ArgonHitExplosion : CompositeDrawable, IHitExplosion public partial class ArgonHitExplosion : CompositeDrawable, IHitExplosion
{ {
public override bool RemoveWhenNotAlive => true; public override bool RemoveWhenNotAlive => true;

View File

@ -18,7 +18,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Skinning.Argon namespace osu.Game.Rulesets.Catch.Skinning.Argon
{ {
public class ArgonJudgementPiece : CompositeDrawable, IAnimatableJudgement public partial class ArgonJudgementPiece : CompositeDrawable, IAnimatableJudgement
{ {
protected readonly HitResult Result; protected readonly HitResult Result;
@ -100,7 +100,7 @@ namespace osu.Game.Rulesets.Catch.Skinning.Argon
public Drawable? GetAboveHitObjectsProxiedContent() => null; public Drawable? GetAboveHitObjectsProxiedContent() => null;
private class RingExplosion : CompositeDrawable private partial class RingExplosion : CompositeDrawable
{ {
private readonly float travel = 52; private readonly float travel = 52;
@ -169,7 +169,7 @@ namespace osu.Game.Rulesets.Catch.Skinning.Argon
this.FadeOutFromOne(1000, Easing.OutQuint); this.FadeOutFromOne(1000, Easing.OutQuint);
} }
public class RingPiece : CircularContainer public partial class RingPiece : CircularContainer
{ {
public RingPiece(float thickness = 9) public RingPiece(float thickness = 9)
{ {

View File

@ -0,0 +1,15 @@
// 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.
using osu.Framework.Graphics;
using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Catch.UI
{
public partial class CatchRelaxCursorContainer : GameplayCursorContainer
{
// Just hide the cursor in relax.
// The main goal here is to show that we have a cursor so the game never shows the global one.
protected override Drawable CreateCursor() => Empty();
}
}

View File

@ -15,7 +15,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Catch.UI namespace osu.Game.Rulesets.Catch.UI
{ {
public class CatchTouchInputMapper : VisibilityContainer public partial class CatchTouchInputMapper : VisibilityContainer
{ {
public override bool PropagatePositionalInputSubTree => true; public override bool PropagatePositionalInputSubTree => true;
public override bool PropagateNonPositionalInputSubTree => true; public override bool PropagateNonPositionalInputSubTree => true;
@ -35,6 +35,8 @@ namespace osu.Game.Rulesets.Catch.UI
private void load(CatchInputManager catchInputManager, OsuColour colours) private void load(CatchInputManager catchInputManager, OsuColour colours)
{ {
const float width = 0.15f; const float width = 0.15f;
// Ratio between normal move area height and total input height
const float normal_area_height_ratio = 0.45f;
keyBindingContainer = catchInputManager.KeyBindingContainer; keyBindingContainer = catchInputManager.KeyBindingContainer;
@ -54,18 +56,18 @@ namespace osu.Game.Rulesets.Catch.UI
Width = width, Width = width,
Children = new Drawable[] Children = new Drawable[]
{ {
leftDashBox = new InputArea(TouchCatchAction.DashLeft, trackedActionSources)
{
RelativeSizeAxes = Axes.Both,
Width = 0.5f,
},
leftBox = new InputArea(TouchCatchAction.MoveLeft, trackedActionSources) leftBox = new InputArea(TouchCatchAction.MoveLeft, trackedActionSources)
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Width = 0.5f, Height = normal_area_height_ratio,
Colour = colours.Gray9, Colour = colours.Gray9,
Anchor = Anchor.TopRight, Anchor = Anchor.BottomRight,
Origin = Anchor.TopRight, Origin = Anchor.BottomRight,
},
leftDashBox = new InputArea(TouchCatchAction.DashLeft, trackedActionSources)
{
RelativeSizeAxes = Axes.Both,
Height = 1 - normal_area_height_ratio,
}, },
} }
}, },
@ -80,15 +82,15 @@ namespace osu.Game.Rulesets.Catch.UI
rightBox = new InputArea(TouchCatchAction.MoveRight, trackedActionSources) rightBox = new InputArea(TouchCatchAction.MoveRight, trackedActionSources)
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Width = 0.5f, Height = normal_area_height_ratio,
Colour = colours.Gray9, Colour = colours.Gray9,
Anchor = Anchor.BottomRight,
Origin = Anchor.BottomRight,
}, },
rightDashBox = new InputArea(TouchCatchAction.DashRight, trackedActionSources) rightDashBox = new InputArea(TouchCatchAction.DashRight, trackedActionSources)
{ {
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Width = 0.5f, Height = 1 - normal_area_height_ratio,
Anchor = Anchor.TopRight,
Origin = Anchor.TopRight,
}, },
} }
}, },
@ -203,7 +205,7 @@ namespace osu.Game.Rulesets.Catch.UI
protected override void PopOut() => mainContent.FadeOut(300, Easing.OutQuint); protected override void PopOut() => mainContent.FadeOut(300, Easing.OutQuint);
private class InputArea : CompositeDrawable, IKeyBindingHandler<CatchAction> private partial class InputArea : CompositeDrawable, IKeyBindingHandler<CatchAction>
{ {
private readonly TouchCatchAction handledAction; private readonly TouchCatchAction handledAction;

View File

@ -7,7 +7,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Mania.Tests.Mods namespace osu.Game.Rulesets.Mania.Tests.Mods
{ {
public class TestSceneManiaModFlashlight : ModTestScene public partial class TestSceneManiaModFlashlight : ModTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset(); protected override Ruleset CreatePlayerRuleset() => new ManiaRuleset();

View File

@ -11,7 +11,7 @@ using osu.Game.Rulesets.Mania.UI;
namespace osu.Game.Rulesets.Mania.Tests.Skinning namespace osu.Game.Rulesets.Mania.Tests.Skinning
{ {
public class TestSceneBarLine : ManiaSkinnableTestScene public partial class TestSceneBarLine : ManiaSkinnableTestScene
{ {
[Test] [Test]
public void TestMinor() public void TestMinor()

View File

@ -15,7 +15,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
public class ArgonHitExplosion : CompositeDrawable, IHitExplosion public partial class ArgonHitExplosion : CompositeDrawable, IHitExplosion
{ {
public override bool RemoveWhenNotAlive => true; public override bool RemoveWhenNotAlive => true;

View File

@ -11,7 +11,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
public class ArgonHitTarget : CompositeDrawable public partial class ArgonHitTarget : CompositeDrawable
{ {
private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>(); private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>();

View File

@ -17,7 +17,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Argon
/// <summary> /// <summary>
/// Represents length-wise portion of a hold note. /// Represents length-wise portion of a hold note.
/// </summary> /// </summary>
public class ArgonHoldBodyPiece : CompositeDrawable, IHoldNoteBody public partial class ArgonHoldBodyPiece : CompositeDrawable, IHoldNoteBody
{ {
protected readonly Bindable<Color4> AccentColour = new Bindable<Color4>(); protected readonly Bindable<Color4> AccentColour = new Bindable<Color4>();
protected readonly IBindable<bool> IsHitting = new Bindable<bool>(); protected readonly IBindable<bool> IsHitting = new Bindable<bool>();

View File

@ -14,7 +14,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
internal class ArgonHoldNoteTailPiece : CompositeDrawable internal partial class ArgonHoldNoteTailPiece : CompositeDrawable
{ {
private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>(); private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>();
private readonly IBindable<Color4> accentColour = new Bindable<Color4>(); private readonly IBindable<Color4> accentColour = new Bindable<Color4>();
@ -38,6 +38,8 @@ namespace osu.Game.Rulesets.Mania.Skinning.Argon
}, },
new Container new Container
{ {
Anchor = Anchor.BottomLeft,
Origin = Anchor.BottomLeft,
RelativeSizeAxes = Axes.Both, RelativeSizeAxes = Axes.Both,
Height = 0.82f, Height = 0.82f,
Masking = true, Masking = true,
@ -54,6 +56,8 @@ namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
RelativeSizeAxes = Axes.X, RelativeSizeAxes = Axes.X,
Height = ArgonNotePiece.CORNER_RADIUS * 2, Height = ArgonNotePiece.CORNER_RADIUS * 2,
Anchor = Anchor.BottomLeft,
Origin = Anchor.BottomLeft,
}, },
}; };
} }

View File

@ -18,7 +18,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
public class ArgonJudgementPiece : CompositeDrawable, IAnimatableJudgement public partial class ArgonJudgementPiece : CompositeDrawable, IAnimatableJudgement
{ {
protected readonly HitResult Result; protected readonly HitResult Result;
@ -100,7 +100,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Argon
public Drawable? GetAboveHitObjectsProxiedContent() => null; public Drawable? GetAboveHitObjectsProxiedContent() => null;
private class RingExplosion : CompositeDrawable private partial class RingExplosion : CompositeDrawable
{ {
private readonly float travel = 52; private readonly float travel = 52;
@ -169,7 +169,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Argon
this.FadeOutFromOne(1000, Easing.OutQuint); this.FadeOutFromOne(1000, Easing.OutQuint);
} }
public class RingPiece : CircularContainer public partial class RingPiece : CircularContainer
{ {
public RingPiece(float thickness = 9) public RingPiece(float thickness = 9)
{ {

View File

@ -19,7 +19,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
public class ArgonKeyArea : CompositeDrawable, IKeyBindingHandler<ManiaAction> public partial class ArgonKeyArea : CompositeDrawable, IKeyBindingHandler<ManiaAction>
{ {
private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>(); private readonly IBindable<ScrollingDirection> direction = new Bindable<ScrollingDirection>();

View File

@ -16,7 +16,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
internal class ArgonNotePiece : CompositeDrawable internal partial class ArgonNotePiece : CompositeDrawable
{ {
public const float NOTE_HEIGHT = 42; public const float NOTE_HEIGHT = 42;

View File

@ -6,7 +6,7 @@ using osu.Framework.Graphics.Containers;
namespace osu.Game.Rulesets.Mania.Skinning.Argon namespace osu.Game.Rulesets.Mania.Skinning.Argon
{ {
public class ArgonStageBackground : CompositeDrawable public partial class ArgonStageBackground : CompositeDrawable
{ {
public ArgonStageBackground() public ArgonStageBackground()
{ {

View File

@ -13,7 +13,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneHitCirclePlacementBlueprint : PlacementBlueprintTestScene public partial class TestSceneHitCirclePlacementBlueprint : PlacementBlueprintTestScene
{ {
protected override DrawableHitObject CreateHitObject(HitObject hitObject) => new DrawableHitCircle((HitCircle)hitObject); protected override DrawableHitObject CreateHitObject(HitObject hitObject) => new DrawableHitCircle((HitCircle)hitObject);
protected override PlacementBlueprint CreateBlueprint() => new HitCirclePlacementBlueprint(); protected override PlacementBlueprint CreateBlueprint() => new HitCirclePlacementBlueprint();

View File

@ -15,7 +15,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneHitCircleSelectionBlueprint : SelectionBlueprintTestScene public partial class TestSceneHitCircleSelectionBlueprint : SelectionBlueprintTestScene
{ {
private HitCircle hitCircle; private HitCircle hitCircle;
private DrawableHitCircle drawableObject; private DrawableHitCircle drawableObject;
@ -61,7 +61,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
AddAssert("blueprint positioned over hitobject", () => blueprint.CirclePiece.Position == hitCircle.StackedPosition); AddAssert("blueprint positioned over hitobject", () => blueprint.CirclePiece.Position == hitCircle.StackedPosition);
} }
private class TestBlueprint : HitCircleSelectionBlueprint private partial class TestBlueprint : HitCircleSelectionBlueprint
{ {
public new HitCirclePiece CirclePiece => base.CirclePiece; public new HitCirclePiece CirclePiece => base.CirclePiece;

View File

@ -14,7 +14,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSceneObjectBeatSnap : TestSceneOsuEditor public partial class TestSceneObjectBeatSnap : TestSceneOsuEditor
{ {
private OsuPlayfield playfield; private OsuPlayfield playfield;

View File

@ -14,7 +14,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneObjectMerging : TestSceneOsuEditor public partial class TestSceneObjectMerging : TestSceneOsuEditor
{ {
private OsuSelectionHandler selectionHandler => Editor.ChildrenOfType<OsuSelectionHandler>().First(); private OsuSelectionHandler selectionHandler => Editor.ChildrenOfType<OsuSelectionHandler>().First();

View File

@ -17,7 +17,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSceneObjectObjectSnap : TestSceneOsuEditor public partial class TestSceneObjectObjectSnap : TestSceneOsuEditor
{ {
private OsuPlayfield playfield; private OsuPlayfield playfield;

View File

@ -21,7 +21,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuComposerSelection : TestSceneOsuEditor public partial class TestSceneOsuComposerSelection : TestSceneOsuEditor
{ {
protected override IBeatmap CreateBeatmap(RulesetInfo ruleset) => new TestBeatmap(ruleset, false); protected override IBeatmap CreateBeatmap(RulesetInfo ruleset) => new TestBeatmap(ruleset, false);

View File

@ -27,7 +27,7 @@ using osuTK.Graphics;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneOsuDistanceSnapGrid : OsuManualInputManagerTestScene public partial class TestSceneOsuDistanceSnapGrid : OsuManualInputManagerTestScene
{ {
private const float beat_length = 100; private const float beat_length = 100;
@ -217,7 +217,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
return Precision.AlmostEquals(expectedDistance, Vector2.Distance(snappedPosition, grid_position)); return Precision.AlmostEquals(expectedDistance, Vector2.Distance(snappedPosition, grid_position));
}); });
private class SnappingCursorContainer : CompositeDrawable private partial class SnappingCursorContainer : CompositeDrawable
{ {
public Func<Vector2, Vector2> GetSnapPosition; public Func<Vector2, Vector2> GetSnapPosition;

View File

@ -9,7 +9,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSceneOsuEditor : EditorTestScene public partial class TestSceneOsuEditor : EditorTestScene
{ {
protected override Ruleset CreateEditorRuleset() => new OsuRuleset(); protected override Ruleset CreateEditorRuleset() => new OsuRuleset();
} }

View File

@ -15,7 +15,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneOsuEditorGrids : EditorTestScene public partial class TestSceneOsuEditorGrids : EditorTestScene
{ {
protected override Ruleset CreateEditorRuleset() => new OsuRuleset(); protected override Ruleset CreateEditorRuleset() => new OsuRuleset();

View File

@ -14,7 +14,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneOsuEditorSelectInvalidPath : EditorTestScene public partial class TestSceneOsuEditorSelectInvalidPath : EditorTestScene
{ {
protected override Ruleset CreateEditorRuleset() => new OsuRuleset(); protected override Ruleset CreateEditorRuleset() => new OsuRuleset();

View File

@ -18,7 +18,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestScenePathControlPointVisualiser : OsuManualInputManagerTestScene public partial class TestScenePathControlPointVisualiser : OsuManualInputManagerTestScene
{ {
private Slider slider; private Slider slider;
private PathControlPointVisualiser visualiser; private PathControlPointVisualiser visualiser;

View File

@ -23,7 +23,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderControlPointPiece : SelectionBlueprintTestScene public partial class TestSceneSliderControlPointPiece : SelectionBlueprintTestScene
{ {
private Slider slider; private Slider slider;
private DrawableSlider drawableObject; private DrawableSlider drawableObject;
@ -349,7 +349,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
private void assertControlPointPosition(int index, Vector2 position) => private void assertControlPointPosition(int index, Vector2 position) =>
AddAssert($"control point {index} at {position}", () => Precision.AlmostEquals(position, slider.Path.ControlPoints[index].Position, 1)); AddAssert($"control point {index} at {position}", () => Precision.AlmostEquals(position, slider.Path.ControlPoints[index].Position, 1));
private class TestSliderBlueprint : SliderSelectionBlueprint private partial class TestSliderBlueprint : SliderSelectionBlueprint
{ {
public new SliderBodyPiece BodyPiece => base.BodyPiece; public new SliderBodyPiece BodyPiece => base.BodyPiece;
public new TestSliderCircleOverlay HeadOverlay => (TestSliderCircleOverlay)base.HeadOverlay; public new TestSliderCircleOverlay HeadOverlay => (TestSliderCircleOverlay)base.HeadOverlay;
@ -364,7 +364,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
protected override SliderCircleOverlay CreateCircleOverlay(Slider slider, SliderPosition position) => new TestSliderCircleOverlay(slider, position); protected override SliderCircleOverlay CreateCircleOverlay(Slider slider, SliderPosition position) => new TestSliderCircleOverlay(slider, position);
} }
private class TestSliderCircleOverlay : SliderCircleOverlay private partial class TestSliderCircleOverlay : SliderCircleOverlay
{ {
public new HitCirclePiece CirclePiece => base.CirclePiece; public new HitCirclePiece CirclePiece => base.CirclePiece;

View File

@ -19,7 +19,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSceneSliderLengthValidity : TestSceneOsuEditor public partial class TestSceneSliderLengthValidity : TestSceneOsuEditor
{ {
private OsuPlayfield playfield; private OsuPlayfield playfield;

View File

@ -18,7 +18,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderPlacementBlueprint : PlacementBlueprintTestScene public partial class TestSceneSliderPlacementBlueprint : PlacementBlueprintTestScene
{ {
[SetUp] [SetUp]
public void Setup() => Schedule(() => public void Setup() => Schedule(() =>

View File

@ -20,7 +20,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderSelectionBlueprint : SelectionBlueprintTestScene public partial class TestSceneSliderSelectionBlueprint : SelectionBlueprintTestScene
{ {
private Slider slider; private Slider slider;
private DrawableSlider drawableObject; private DrawableSlider drawableObject;
@ -194,7 +194,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
private void checkControlPointSelected(int index, bool selected) private void checkControlPointSelected(int index, bool selected)
=> AddAssert($"control point {index} {(selected ? "selected" : "not selected")}", () => blueprint.ControlPointVisualiser.Pieces[index].IsSelected.Value == selected); => AddAssert($"control point {index} {(selected ? "selected" : "not selected")}", () => blueprint.ControlPointVisualiser.Pieces[index].IsSelected.Value == selected);
private class TestSliderBlueprint : SliderSelectionBlueprint private partial class TestSliderBlueprint : SliderSelectionBlueprint
{ {
public new SliderBodyPiece BodyPiece => base.BodyPiece; public new SliderBodyPiece BodyPiece => base.BodyPiece;
public new TestSliderCircleOverlay HeadOverlay => (TestSliderCircleOverlay)base.HeadOverlay; public new TestSliderCircleOverlay HeadOverlay => (TestSliderCircleOverlay)base.HeadOverlay;
@ -209,7 +209,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Editor
protected override SliderCircleOverlay CreateCircleOverlay(Slider slider, SliderPosition position) => new TestSliderCircleOverlay(slider, position); protected override SliderCircleOverlay CreateCircleOverlay(Slider slider, SliderPosition position) => new TestSliderCircleOverlay(slider, position);
} }
private class TestSliderCircleOverlay : SliderCircleOverlay private partial class TestSliderCircleOverlay : SliderCircleOverlay
{ {
public new HitCirclePiece CirclePiece => base.CirclePiece; public new HitCirclePiece CirclePiece => base.CirclePiece;

View File

@ -26,7 +26,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderSnapping : EditorTestScene public partial class TestSceneSliderSnapping : EditorTestScene
{ {
private const double beat_length = 1000; private const double beat_length = 1000;

View File

@ -19,7 +19,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderSplitting : EditorTestScene public partial class TestSceneSliderSplitting : EditorTestScene
{ {
protected override Ruleset CreateEditorRuleset() => new OsuRuleset(); protected override Ruleset CreateEditorRuleset() => new OsuRuleset();

View File

@ -15,7 +15,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderStreamConversion : TestSceneOsuEditor public partial class TestSceneSliderStreamConversion : TestSceneOsuEditor
{ {
private BindableBeatDivisor beatDivisor => (BindableBeatDivisor)Editor.Dependencies.Get(typeof(BindableBeatDivisor)); private BindableBeatDivisor beatDivisor => (BindableBeatDivisor)Editor.Dependencies.Get(typeof(BindableBeatDivisor));

View File

@ -22,7 +22,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSliderVelocityAdjust : OsuGameTestScene public partial class TestSceneSliderVelocityAdjust : OsuGameTestScene
{ {
private Screens.Edit.Editor editor => Game.ScreenStack.CurrentScreen as Screens.Edit.Editor; private Screens.Edit.Editor editor => Game.ScreenStack.CurrentScreen as Screens.Edit.Editor;

View File

@ -13,7 +13,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSpinnerPlacementBlueprint : PlacementBlueprintTestScene public partial class TestSceneSpinnerPlacementBlueprint : PlacementBlueprintTestScene
{ {
protected override DrawableHitObject CreateHitObject(HitObject hitObject) => new DrawableSpinner((Spinner)hitObject); protected override DrawableHitObject CreateHitObject(HitObject hitObject) => new DrawableSpinner((Spinner)hitObject);

View File

@ -15,7 +15,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
public class TestSceneSpinnerSelectionBlueprint : SelectionBlueprintTestScene public partial class TestSceneSpinnerSelectionBlueprint : SelectionBlueprintTestScene
{ {
public TestSceneSpinnerSelectionBlueprint() public TestSceneSpinnerSelectionBlueprint()
{ {

View File

@ -19,7 +19,7 @@ using osuTK.Input;
namespace osu.Game.Rulesets.Osu.Tests.Editor namespace osu.Game.Rulesets.Osu.Tests.Editor
{ {
[TestFixture] [TestFixture]
public class TestSliderScaling : TestSceneOsuEditor public partial class TestSliderScaling : TestSceneOsuEditor
{ {
private OsuPlayfield playfield; private OsuPlayfield playfield;

View File

@ -18,7 +18,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Osu.Tests namespace osu.Game.Rulesets.Osu.Tests
{ {
[HeadlessTest] [HeadlessTest]
public class LegacyMainCirclePieceTest : OsuTestScene public partial class LegacyMainCirclePieceTest : OsuTestScene
{ {
[Resolved] [Resolved]
private IRenderer renderer { get; set; } = null!; private IRenderer renderer { get; set; } = null!;
@ -101,7 +101,7 @@ namespace osu.Game.Rulesets.Osu.Tests
AddAssert("check overlay sprite", () => piece.OverlaySprite?.Texture?.AssetName == expectedOverlay); AddAssert("check overlay sprite", () => piece.OverlaySprite?.Texture?.AssetName == expectedOverlay);
} }
private class TestLegacyMainCirclePiece : LegacyMainCirclePiece private partial class TestLegacyMainCirclePiece : LegacyMainCirclePiece
{ {
public new Sprite? CircleSprite => base.CircleSprite.ChildrenOfType<Sprite>().DistinctBy(s => s.Texture.AssetName).SingleOrDefault(); public new Sprite? CircleSprite => base.CircleSprite.ChildrenOfType<Sprite>().DistinctBy(s => s.Texture.AssetName).SingleOrDefault();
public new Sprite? OverlaySprite => base.OverlaySprite.ChildrenOfType<Sprite>().DistinctBy(s => s.Texture.AssetName).SingleOrDefault(); public new Sprite? OverlaySprite => base.OverlaySprite.ChildrenOfType<Sprite>().DistinctBy(s => s.Texture.AssetName).SingleOrDefault();

View File

@ -5,7 +5,7 @@ using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public abstract class OsuModTestScene : ModTestScene public abstract partial class OsuModTestScene : ModTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset(); protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();
} }

View File

@ -15,7 +15,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModAlternate : OsuModTestScene public partial class TestSceneOsuModAlternate : OsuModTestScene
{ {
[Test] [Test]
public void TestInputAlternating() => CreateModTest(new ModTestData public void TestInputAlternating() => CreateModTest(new ModTestData

View File

@ -15,7 +15,7 @@ using osu.Game.Rulesets.Osu.UI;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModAutoplay : OsuModTestScene public partial class TestSceneOsuModAutoplay : OsuModTestScene
{ {
[Test] [Test]
public void TestSpmUnaffectedByRateAdjust() public void TestSpmUnaffectedByRateAdjust()

View File

@ -15,7 +15,7 @@ using osu.Game.Rulesets.Osu.Objects.Drawables;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModDifficultyAdjust : OsuModTestScene public partial class TestSceneOsuModDifficultyAdjust : OsuModTestScene
{ {
[Test] [Test]
public void TestNoAdjustment() => CreateModTest(new ModTestData public void TestNoAdjustment() => CreateModTest(new ModTestData

View File

@ -7,7 +7,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModDoubleTime : OsuModTestScene public partial class TestSceneOsuModDoubleTime : OsuModTestScene
{ {
[TestCase(0.5)] [TestCase(0.5)]
[TestCase(1.01)] [TestCase(1.01)]

View File

@ -6,7 +6,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModFlashlight : OsuModTestScene public partial class TestSceneOsuModFlashlight : OsuModTestScene
{ {
[TestCase(600)] [TestCase(600)]
[TestCase(120)] [TestCase(120)]

View File

@ -6,7 +6,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModFreezeFrame : OsuModTestScene public partial class TestSceneOsuModFreezeFrame : OsuModTestScene
{ {
[Test] [Test]
public void TestFreezeFrame() public void TestFreezeFrame()

View File

@ -13,7 +13,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModHidden : OsuModTestScene public partial class TestSceneOsuModHidden : OsuModTestScene
{ {
[Test] [Test]
public void TestDefaultBeatmapTest() => CreateModTest(new ModTestData public void TestDefaultBeatmapTest() => CreateModTest(new ModTestData

View File

@ -6,7 +6,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModMagnetised : OsuModTestScene public partial class TestSceneOsuModMagnetised : OsuModTestScene
{ {
[TestCase(0.1f)] [TestCase(0.1f)]
[TestCase(0.5f)] [TestCase(0.5f)]

View File

@ -9,7 +9,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModMuted : OsuModTestScene public partial class TestSceneOsuModMuted : OsuModTestScene
{ {
/// <summary> /// <summary>
/// Ensures that a final volume combo of 0 (i.e. "always muted" mode) constantly plays metronome and completely mutes track. /// Ensures that a final volume combo of 0 (i.e. "always muted" mode) constantly plays metronome and completely mutes track.
@ -45,8 +45,8 @@ namespace osu.Game.Rulesets.Osu.Tests.Mods
InverseMuting = { Value = false }, InverseMuting = { Value = false },
})); }));
AddAssert("mute combo count = 0", () => muted.MuteComboCount.Value == 0); AddAssert("mute combo count copied", () => muted.MuteComboCount.Value, () => Is.EqualTo(0));
AddAssert("inverse muting = false", () => muted.InverseMuting.Value == false); AddAssert("inverse muting copied", () => muted.InverseMuting.Value, () => Is.False);
} }
} }
} }

View File

@ -18,7 +18,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModNoScope : OsuModTestScene public partial class TestSceneOsuModNoScope : OsuModTestScene
{ {
[Test] [Test]
public void TestVisibleDuringBreak() public void TestVisibleDuringBreak()

View File

@ -11,7 +11,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModPerfect : ModPerfectTestScene public partial class TestSceneOsuModPerfect : ModPerfectTestScene
{ {
protected override Ruleset CreatePlayerRuleset() => new OsuRuleset(); protected override Ruleset CreatePlayerRuleset() => new OsuRuleset();

View File

@ -12,7 +12,7 @@ using osuTK;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModRandom : OsuModTestScene public partial class TestSceneOsuModRandom : OsuModTestScene
{ {
[TestCase(1)] [TestCase(1)]
[TestCase(7)] [TestCase(7)]

View File

@ -6,7 +6,7 @@ using osu.Game.Rulesets.Osu.Mods;
namespace osu.Game.Rulesets.Osu.Tests.Mods namespace osu.Game.Rulesets.Osu.Tests.Mods
{ {
public class TestSceneOsuModRepel : OsuModTestScene public partial class TestSceneOsuModRepel : OsuModTestScene
{ {
[TestCase(0.1f)] [TestCase(0.1f)]
[TestCase(0.5f)] [TestCase(0.5f)]

Some files were not shown because too many files have changed in this diff Show More