mirror of
https://github.com/ppy/osu.git
synced 2024-11-13 22:07:25 +08:00
Merge pull request #12848 from frenzibyte/remove-hud-component-lookup
Remove HUD skin component lookup in favour of the `MainHUDComponents` target system
This commit is contained in:
commit
d00cd7be31
@ -10,14 +10,6 @@ trim_trailing_whitespace = true
|
|||||||
|
|
||||||
#Roslyn naming styles
|
#Roslyn naming styles
|
||||||
|
|
||||||
#PascalCase for public and protected members
|
|
||||||
dotnet_naming_style.pascalcase.capitalization = pascal_case
|
|
||||||
dotnet_naming_symbols.public_members.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
|
|
||||||
dotnet_naming_symbols.public_members.applicable_kinds = property,method,field,event
|
|
||||||
dotnet_naming_rule.public_members_pascalcase.severity = error
|
|
||||||
dotnet_naming_rule.public_members_pascalcase.symbols = public_members
|
|
||||||
dotnet_naming_rule.public_members_pascalcase.style = pascalcase
|
|
||||||
|
|
||||||
#camelCase for private members
|
#camelCase for private members
|
||||||
dotnet_naming_style.camelcase.capitalization = camel_case
|
dotnet_naming_style.camelcase.capitalization = camel_case
|
||||||
|
|
||||||
@ -197,4 +189,4 @@ dotnet_diagnostic.IDE0069.severity = none
|
|||||||
dotnet_diagnostic.CA2225.severity = none
|
dotnet_diagnostic.CA2225.severity = none
|
||||||
|
|
||||||
# Banned APIs
|
# Banned APIs
|
||||||
dotnet_diagnostic.RS0030.severity = error
|
dotnet_diagnostic.RS0030.severity = error
|
||||||
|
@ -95,7 +95,7 @@ namespace osu.Game.Rulesets.Catch.Tests
|
|||||||
CircleSize = circleSize
|
CircleSize = circleSize
|
||||||
};
|
};
|
||||||
|
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
var droppedObjectContainer = new Container<CaughtObject>
|
var droppedObjectContainer = new Container<CaughtObject>
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Catch.Tests
|
|||||||
{
|
{
|
||||||
scoreProcessor = new ScoreProcessor();
|
scoreProcessor = new ScoreProcessor();
|
||||||
|
|
||||||
SetContents(() => new CatchComboDisplay
|
SetContents(_ => new CatchComboDisplay
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -19,22 +19,22 @@ namespace osu.Game.Rulesets.Catch.Tests
|
|||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
AddStep("show pear", () => SetContents(() => createDrawableFruit(0)));
|
AddStep("show pear", () => SetContents(_ => createDrawableFruit(0)));
|
||||||
AddStep("show grape", () => SetContents(() => createDrawableFruit(1)));
|
AddStep("show grape", () => SetContents(_ => createDrawableFruit(1)));
|
||||||
AddStep("show pineapple / apple", () => SetContents(() => createDrawableFruit(2)));
|
AddStep("show pineapple / apple", () => SetContents(_ => createDrawableFruit(2)));
|
||||||
AddStep("show raspberry / orange", () => SetContents(() => createDrawableFruit(3)));
|
AddStep("show raspberry / orange", () => SetContents(_ => createDrawableFruit(3)));
|
||||||
|
|
||||||
AddStep("show banana", () => SetContents(createDrawableBanana));
|
AddStep("show banana", () => SetContents(_ => createDrawableBanana()));
|
||||||
|
|
||||||
AddStep("show droplet", () => SetContents(() => createDrawableDroplet()));
|
AddStep("show droplet", () => SetContents(_ => createDrawableDroplet()));
|
||||||
AddStep("show tiny droplet", () => SetContents(createDrawableTinyDroplet));
|
AddStep("show tiny droplet", () => SetContents(_ => createDrawableTinyDroplet()));
|
||||||
|
|
||||||
AddStep("show hyperdash pear", () => SetContents(() => createDrawableFruit(0, true)));
|
AddStep("show hyperdash pear", () => SetContents(_ => createDrawableFruit(0, true)));
|
||||||
AddStep("show hyperdash grape", () => SetContents(() => createDrawableFruit(1, true)));
|
AddStep("show hyperdash grape", () => SetContents(_ => createDrawableFruit(1, true)));
|
||||||
AddStep("show hyperdash pineapple / apple", () => SetContents(() => createDrawableFruit(2, true)));
|
AddStep("show hyperdash pineapple / apple", () => SetContents(_ => createDrawableFruit(2, true)));
|
||||||
AddStep("show hyperdash raspberry / orange", () => SetContents(() => createDrawableFruit(3, true)));
|
AddStep("show hyperdash raspberry / orange", () => SetContents(_ => createDrawableFruit(3, true)));
|
||||||
|
|
||||||
AddStep("show hyperdash droplet", () => SetContents(() => createDrawableDroplet(true)));
|
AddStep("show hyperdash droplet", () => SetContents(_ => createDrawableDroplet(true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable createDrawableFruit(int indexInBeatmap, bool hyperdash = false) =>
|
private Drawable createDrawableFruit(int indexInBeatmap, bool hyperdash = false) =>
|
||||||
|
@ -14,13 +14,13 @@ namespace osu.Game.Rulesets.Catch.Tests
|
|||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
AddStep("fruit changes visual and hyper", () => SetContents(() => new TestDrawableCatchHitObjectSpecimen(new DrawableFruit(new Fruit
|
AddStep("fruit changes visual and hyper", () => SetContents(_ => new TestDrawableCatchHitObjectSpecimen(new DrawableFruit(new Fruit
|
||||||
{
|
{
|
||||||
IndexInBeatmapBindable = { BindTarget = indexInBeatmap },
|
IndexInBeatmapBindable = { BindTarget = indexInBeatmap },
|
||||||
HyperDashBindable = { BindTarget = hyperDash },
|
HyperDashBindable = { BindTarget = hyperDash },
|
||||||
}))));
|
}))));
|
||||||
|
|
||||||
AddStep("droplet changes hyper", () => SetContents(() => new TestDrawableCatchHitObjectSpecimen(new DrawableDroplet(new Droplet
|
AddStep("droplet changes hyper", () => SetContents(_ => new TestDrawableCatchHitObjectSpecimen(new DrawableDroplet(new Droplet
|
||||||
{
|
{
|
||||||
HyperDashBindable = { BindTarget = hyperDash },
|
HyperDashBindable = { BindTarget = hyperDash },
|
||||||
}))));
|
}))));
|
||||||
|
@ -18,7 +18,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[SetUp]
|
[SetUp]
|
||||||
public void SetUp() => Schedule(() =>
|
public void SetUp() => Schedule(() =>
|
||||||
{
|
{
|
||||||
SetContents(() => new FillFlowContainer
|
SetContents(_ => new FillFlowContainer
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new FillFlowContainer
|
SetContents(_ => new FillFlowContainer
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new FillFlowContainer
|
SetContents(_ => new FillFlowContainer
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -23,7 +23,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
{
|
{
|
||||||
if (hitWindows.IsHitResultAllowed(result))
|
if (hitWindows.IsHitResultAllowed(result))
|
||||||
{
|
{
|
||||||
AddStep("Show " + result.GetDescription(), () => SetContents(() =>
|
AddStep("Show " + result.GetDescription(), () => SetContents(_ =>
|
||||||
new DrawableManiaJudgement(new JudgementResult(new HitObject { StartTime = Time.Current }, new Judgement())
|
new DrawableManiaJudgement(new JudgementResult(new HitObject { StartTime = Time.Current }, new Judgement())
|
||||||
{
|
{
|
||||||
Type = result
|
Type = result
|
||||||
|
@ -53,7 +53,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
var pool = new DrawablePool<PoolableHitExplosion>(5);
|
var pool = new DrawablePool<PoolableHitExplosion>(5);
|
||||||
hitExplosionPools.Add(pool);
|
hitExplosionPools.Add(pool);
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new FillFlowContainer
|
SetContents(_ => new FillFlowContainer
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -23,7 +23,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
new StageDefinition { Columns = 2 }
|
new StageDefinition { Columns = 2 }
|
||||||
};
|
};
|
||||||
|
|
||||||
SetContents(() => new ManiaPlayfield(stageDefinitions));
|
SetContents(_ => new ManiaPlayfield(stageDefinitions));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
new StageDefinition { Columns = 2 }
|
new StageDefinition { Columns = 2 }
|
||||||
};
|
};
|
||||||
|
|
||||||
SetContents(() => new ManiaPlayfield(stageDefinitions));
|
SetContents(_ => new ManiaPlayfield(stageDefinitions));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
ManiaAction normalAction = ManiaAction.Key1;
|
ManiaAction normalAction = ManiaAction.Key1;
|
||||||
ManiaAction specialAction = ManiaAction.Special1;
|
ManiaAction specialAction = ManiaAction.Special1;
|
||||||
|
@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new SkinnableDrawable(new ManiaSkinComponent(ManiaSkinComponents.StageBackground, stageDefinition: new StageDefinition { Columns = 4 }),
|
SetContents(_ => new SkinnableDrawable(new ManiaSkinComponent(ManiaSkinComponents.StageBackground, stageDefinition: new StageDefinition { Columns = 4 }),
|
||||||
_ => new DefaultStageBackground())
|
_ => new DefaultStageBackground())
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
|
@ -13,7 +13,7 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new SkinnableDrawable(new ManiaSkinComponent(ManiaSkinComponents.StageForeground, stageDefinition: new StageDefinition { Columns = 4 }), _ => null)
|
SetContents(_ => new SkinnableDrawable(new ManiaSkinComponent(ManiaSkinComponents.StageForeground, stageDefinition: new StageDefinition { Columns = 4 }), _ => null)
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -64,7 +64,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
{
|
{
|
||||||
int poolIndex = 0;
|
int poolIndex = 0;
|
||||||
|
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
DrawablePool<TestDrawableOsuJudgement> pool;
|
DrawablePool<TestDrawableOsuJudgement> pool;
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
|
|
||||||
private void loadContent(bool automated = true, Func<SkinProvidingContainer> skinProvider = null)
|
private void loadContent(bool automated = true, Func<SkinProvidingContainer> skinProvider = null)
|
||||||
{
|
{
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
var inputManager = automated ? (InputManager)new MovingCursorInputManager() : new OsuInputManager(new OsuRuleset().RulesetInfo);
|
var inputManager = automated ? (InputManager)new MovingCursorInputManager() : new OsuInputManager(new OsuRuleset().RulesetInfo);
|
||||||
var skinContainer = skinProvider?.Invoke() ?? new SkinProvidingContainer(null);
|
var skinContainer = skinProvider?.Invoke() ?? new SkinProvidingContainer(null);
|
||||||
|
@ -23,18 +23,18 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestVariousHitCircles()
|
public void TestVariousHitCircles()
|
||||||
{
|
{
|
||||||
AddStep("Miss Big Single", () => SetContents(() => testSingle(2)));
|
AddStep("Miss Big Single", () => SetContents(_ => testSingle(2)));
|
||||||
AddStep("Miss Medium Single", () => SetContents(() => testSingle(5)));
|
AddStep("Miss Medium Single", () => SetContents(_ => testSingle(5)));
|
||||||
AddStep("Miss Small Single", () => SetContents(() => testSingle(7)));
|
AddStep("Miss Small Single", () => SetContents(_ => testSingle(7)));
|
||||||
AddStep("Hit Big Single", () => SetContents(() => testSingle(2, true)));
|
AddStep("Hit Big Single", () => SetContents(_ => testSingle(2, true)));
|
||||||
AddStep("Hit Medium Single", () => SetContents(() => testSingle(5, true)));
|
AddStep("Hit Medium Single", () => SetContents(_ => testSingle(5, true)));
|
||||||
AddStep("Hit Small Single", () => SetContents(() => testSingle(7, true)));
|
AddStep("Hit Small Single", () => SetContents(_ => testSingle(7, true)));
|
||||||
AddStep("Miss Big Stream", () => SetContents(() => testStream(2)));
|
AddStep("Miss Big Stream", () => SetContents(_ => testStream(2)));
|
||||||
AddStep("Miss Medium Stream", () => SetContents(() => testStream(5)));
|
AddStep("Miss Medium Stream", () => SetContents(_ => testStream(5)));
|
||||||
AddStep("Miss Small Stream", () => SetContents(() => testStream(7)));
|
AddStep("Miss Small Stream", () => SetContents(_ => testStream(7)));
|
||||||
AddStep("Hit Big Stream", () => SetContents(() => testStream(2, true)));
|
AddStep("Hit Big Stream", () => SetContents(_ => testStream(2, true)));
|
||||||
AddStep("Hit Medium Stream", () => SetContents(() => testStream(5, true)));
|
AddStep("Hit Medium Stream", () => SetContents(_ => testStream(5, true)));
|
||||||
AddStep("Hit Small Stream", () => SetContents(() => testStream(7, true)));
|
AddStep("Hit Small Stream", () => SetContents(_ => testStream(7, true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable testSingle(float circleSize, bool auto = false, double timeOffset = 0, Vector2? positionOffset = null)
|
private Drawable testSingle(float circleSize, bool auto = false, double timeOffset = 0, Vector2? positionOffset = null)
|
||||||
|
@ -30,54 +30,54 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestVariousSliders()
|
public void TestVariousSliders()
|
||||||
{
|
{
|
||||||
AddStep("Big Single", () => SetContents(() => testSimpleBig()));
|
AddStep("Big Single", () => SetContents(_ => testSimpleBig()));
|
||||||
AddStep("Medium Single", () => SetContents(() => testSimpleMedium()));
|
AddStep("Medium Single", () => SetContents(_ => testSimpleMedium()));
|
||||||
AddStep("Small Single", () => SetContents(() => testSimpleSmall()));
|
AddStep("Small Single", () => SetContents(_ => testSimpleSmall()));
|
||||||
AddStep("Big 1 Repeat", () => SetContents(() => testSimpleBig(1)));
|
AddStep("Big 1 Repeat", () => SetContents(_ => testSimpleBig(1)));
|
||||||
AddStep("Medium 1 Repeat", () => SetContents(() => testSimpleMedium(1)));
|
AddStep("Medium 1 Repeat", () => SetContents(_ => testSimpleMedium(1)));
|
||||||
AddStep("Small 1 Repeat", () => SetContents(() => testSimpleSmall(1)));
|
AddStep("Small 1 Repeat", () => SetContents(_ => testSimpleSmall(1)));
|
||||||
AddStep("Big 2 Repeats", () => SetContents(() => testSimpleBig(2)));
|
AddStep("Big 2 Repeats", () => SetContents(_ => testSimpleBig(2)));
|
||||||
AddStep("Medium 2 Repeats", () => SetContents(() => testSimpleMedium(2)));
|
AddStep("Medium 2 Repeats", () => SetContents(_ => testSimpleMedium(2)));
|
||||||
AddStep("Small 2 Repeats", () => SetContents(() => testSimpleSmall(2)));
|
AddStep("Small 2 Repeats", () => SetContents(_ => testSimpleSmall(2)));
|
||||||
|
|
||||||
AddStep("Slow Slider", () => SetContents(testSlowSpeed)); // slow long sliders take ages already so no repeat steps
|
AddStep("Slow Slider", () => SetContents(_ => testSlowSpeed())); // slow long sliders take ages already so no repeat steps
|
||||||
AddStep("Slow Short Slider", () => SetContents(() => testShortSlowSpeed()));
|
AddStep("Slow Short Slider", () => SetContents(_ => testShortSlowSpeed()));
|
||||||
AddStep("Slow Short Slider 1 Repeats", () => SetContents(() => testShortSlowSpeed(1)));
|
AddStep("Slow Short Slider 1 Repeats", () => SetContents(_ => testShortSlowSpeed(1)));
|
||||||
AddStep("Slow Short Slider 2 Repeats", () => SetContents(() => testShortSlowSpeed(2)));
|
AddStep("Slow Short Slider 2 Repeats", () => SetContents(_ => testShortSlowSpeed(2)));
|
||||||
|
|
||||||
AddStep("Fast Slider", () => SetContents(() => testHighSpeed()));
|
AddStep("Fast Slider", () => SetContents(_ => testHighSpeed()));
|
||||||
AddStep("Fast Slider 1 Repeat", () => SetContents(() => testHighSpeed(1)));
|
AddStep("Fast Slider 1 Repeat", () => SetContents(_ => testHighSpeed(1)));
|
||||||
AddStep("Fast Slider 2 Repeats", () => SetContents(() => testHighSpeed(2)));
|
AddStep("Fast Slider 2 Repeats", () => SetContents(_ => testHighSpeed(2)));
|
||||||
AddStep("Fast Short Slider", () => SetContents(() => testShortHighSpeed()));
|
AddStep("Fast Short Slider", () => SetContents(_ => testShortHighSpeed()));
|
||||||
AddStep("Fast Short Slider 1 Repeat", () => SetContents(() => testShortHighSpeed(1)));
|
AddStep("Fast Short Slider 1 Repeat", () => SetContents(_ => testShortHighSpeed(1)));
|
||||||
AddStep("Fast Short Slider 2 Repeats", () => SetContents(() => testShortHighSpeed(2)));
|
AddStep("Fast Short Slider 2 Repeats", () => SetContents(_ => testShortHighSpeed(2)));
|
||||||
AddStep("Fast Short Slider 6 Repeats", () => SetContents(() => testShortHighSpeed(6)));
|
AddStep("Fast Short Slider 6 Repeats", () => SetContents(_ => testShortHighSpeed(6)));
|
||||||
|
|
||||||
AddStep("Perfect Curve", () => SetContents(() => testPerfect()));
|
AddStep("Perfect Curve", () => SetContents(_ => testPerfect()));
|
||||||
AddStep("Perfect Curve 1 Repeat", () => SetContents(() => testPerfect(1)));
|
AddStep("Perfect Curve 1 Repeat", () => SetContents(_ => testPerfect(1)));
|
||||||
AddStep("Perfect Curve 2 Repeats", () => SetContents(() => testPerfect(2)));
|
AddStep("Perfect Curve 2 Repeats", () => SetContents(_ => testPerfect(2)));
|
||||||
|
|
||||||
AddStep("Linear Slider", () => SetContents(() => testLinear()));
|
AddStep("Linear Slider", () => SetContents(_ => testLinear()));
|
||||||
AddStep("Linear Slider 1 Repeat", () => SetContents(() => testLinear(1)));
|
AddStep("Linear Slider 1 Repeat", () => SetContents(_ => testLinear(1)));
|
||||||
AddStep("Linear Slider 2 Repeats", () => SetContents(() => testLinear(2)));
|
AddStep("Linear Slider 2 Repeats", () => SetContents(_ => testLinear(2)));
|
||||||
|
|
||||||
AddStep("Bezier Slider", () => SetContents(() => testBezier()));
|
AddStep("Bezier Slider", () => SetContents(_ => testBezier()));
|
||||||
AddStep("Bezier Slider 1 Repeat", () => SetContents(() => testBezier(1)));
|
AddStep("Bezier Slider 1 Repeat", () => SetContents(_ => testBezier(1)));
|
||||||
AddStep("Bezier Slider 2 Repeats", () => SetContents(() => testBezier(2)));
|
AddStep("Bezier Slider 2 Repeats", () => SetContents(_ => testBezier(2)));
|
||||||
|
|
||||||
AddStep("Linear Overlapping", () => SetContents(() => testLinearOverlapping()));
|
AddStep("Linear Overlapping", () => SetContents(_ => testLinearOverlapping()));
|
||||||
AddStep("Linear Overlapping 1 Repeat", () => SetContents(() => testLinearOverlapping(1)));
|
AddStep("Linear Overlapping 1 Repeat", () => SetContents(_ => testLinearOverlapping(1)));
|
||||||
AddStep("Linear Overlapping 2 Repeats", () => SetContents(() => testLinearOverlapping(2)));
|
AddStep("Linear Overlapping 2 Repeats", () => SetContents(_ => testLinearOverlapping(2)));
|
||||||
|
|
||||||
AddStep("Catmull Slider", () => SetContents(() => testCatmull()));
|
AddStep("Catmull Slider", () => SetContents(_ => testCatmull()));
|
||||||
AddStep("Catmull Slider 1 Repeat", () => SetContents(() => testCatmull(1)));
|
AddStep("Catmull Slider 1 Repeat", () => SetContents(_ => testCatmull(1)));
|
||||||
AddStep("Catmull Slider 2 Repeats", () => SetContents(() => testCatmull(2)));
|
AddStep("Catmull Slider 2 Repeats", () => SetContents(_ => testCatmull(2)));
|
||||||
|
|
||||||
AddStep("Big Single, Large StackOffset", () => SetContents(() => testSimpleBigLargeStackOffset()));
|
AddStep("Big Single, Large StackOffset", () => SetContents(_ => testSimpleBigLargeStackOffset()));
|
||||||
AddStep("Big 1 Repeat, Large StackOffset", () => SetContents(() => testSimpleBigLargeStackOffset(1)));
|
AddStep("Big 1 Repeat, Large StackOffset", () => SetContents(_ => testSimpleBigLargeStackOffset(1)));
|
||||||
|
|
||||||
AddStep("Distance Overflow", () => SetContents(() => testDistanceOverflow()));
|
AddStep("Distance Overflow", () => SetContents(_ => testDistanceOverflow()));
|
||||||
AddStep("Distance Overflow 1 Repeat", () => SetContents(() => testDistanceOverflow(1)));
|
AddStep("Distance Overflow 1 Repeat", () => SetContents(_ => testDistanceOverflow(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -29,15 +29,15 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
public void TestVariousSpinners(bool autoplay)
|
public void TestVariousSpinners(bool autoplay)
|
||||||
{
|
{
|
||||||
string term = autoplay ? "Hit" : "Miss";
|
string term = autoplay ? "Hit" : "Miss";
|
||||||
AddStep($"{term} Big", () => SetContents(() => testSingle(2, autoplay)));
|
AddStep($"{term} Big", () => SetContents(_ => testSingle(2, autoplay)));
|
||||||
AddStep($"{term} Medium", () => SetContents(() => testSingle(5, autoplay)));
|
AddStep($"{term} Medium", () => SetContents(_ => testSingle(5, autoplay)));
|
||||||
AddStep($"{term} Small", () => SetContents(() => testSingle(7, autoplay)));
|
AddStep($"{term} Small", () => SetContents(_ => testSingle(7, autoplay)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestSpinningSamplePitchShift()
|
public void TestSpinningSamplePitchShift()
|
||||||
{
|
{
|
||||||
AddStep("Add spinner", () => SetContents(() => testSingle(5, true, 4000)));
|
AddStep("Add spinner", () => SetContents(_ => testSingle(5, true, 4000)));
|
||||||
AddUntilStep("Pitch starts low", () => getSpinningSample().Frequency.Value < 0.8);
|
AddUntilStep("Pitch starts low", () => getSpinningSample().Frequency.Value < 0.8);
|
||||||
AddUntilStep("Pitch increases", () => getSpinningSample().Frequency.Value > 0.8);
|
AddUntilStep("Pitch increases", () => getSpinningSample().Frequency.Value > 0.8);
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
[TestCase(true)]
|
[TestCase(true)]
|
||||||
public void TestLongSpinner(bool autoplay)
|
public void TestLongSpinner(bool autoplay)
|
||||||
{
|
{
|
||||||
AddStep("Very long spinner", () => SetContents(() => testSingle(5, autoplay, 4000)));
|
AddStep("Very long spinner", () => SetContents(_ => testSingle(5, autoplay, 4000)));
|
||||||
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
||||||
AddUntilStep("Check correct progress", () => drawableSpinner.Progress == (autoplay ? 1 : 0));
|
AddUntilStep("Check correct progress", () => drawableSpinner.Progress == (autoplay ? 1 : 0));
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
[TestCase(true)]
|
[TestCase(true)]
|
||||||
public void TestSuperShortSpinner(bool autoplay)
|
public void TestSuperShortSpinner(bool autoplay)
|
||||||
{
|
{
|
||||||
AddStep("Very short spinner", () => SetContents(() => testSingle(5, autoplay, 200)));
|
AddStep("Very short spinner", () => SetContents(_ => testSingle(5, autoplay, 200)));
|
||||||
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
||||||
AddUntilStep("Short spinner implicitly completes", () => drawableSpinner.Progress == 1);
|
AddUntilStep("Short spinner implicitly completes", () => drawableSpinner.Progress == 1);
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
AddStep("Bar line", () => SetContents(() =>
|
AddStep("Bar line", () => SetContents(_ =>
|
||||||
{
|
{
|
||||||
ScrollingHitObjectContainer hoc;
|
ScrollingHitObjectContainer hoc;
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
return cont;
|
return cont;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddStep("Bar line (major)", () => SetContents(() =>
|
AddStep("Bar line (major)", () => SetContents(_ =>
|
||||||
{
|
{
|
||||||
ScrollingHitObjectContainer hoc;
|
ScrollingHitObjectContainer hoc;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
AddStep("Drum roll", () => SetContents(() =>
|
AddStep("Drum roll", () => SetContents(_ =>
|
||||||
{
|
{
|
||||||
var hoc = new ScrollingHitObjectContainer();
|
var hoc = new ScrollingHitObjectContainer();
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
return hoc;
|
return hoc;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddStep("Drum roll (strong)", () => SetContents(() =>
|
AddStep("Drum roll (strong)", () => SetContents(_ =>
|
||||||
{
|
{
|
||||||
var hoc = new ScrollingHitObjectContainer();
|
var hoc = new ScrollingHitObjectContainer();
|
||||||
|
|
||||||
|
@ -17,25 +17,25 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
AddStep("Centre hit", () => SetContents(() => new DrawableHit(createHitAtCurrentTime())
|
AddStep("Centre hit", () => SetContents(_ => new DrawableHit(createHitAtCurrentTime())
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddStep("Centre hit (strong)", () => SetContents(() => new DrawableHit(createHitAtCurrentTime(true))
|
AddStep("Centre hit (strong)", () => SetContents(_ => new DrawableHit(createHitAtCurrentTime(true))
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddStep("Rim hit", () => SetContents(() => new DrawableHit(createHitAtCurrentTime())
|
AddStep("Rim hit", () => SetContents(_ => new DrawableHit(createHitAtCurrentTime())
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddStep("Rim hit (strong)", () => SetContents(() => new DrawableHit(createHitAtCurrentTime(true))
|
AddStep("Rim hit (strong)", () => SetContents(_ => new DrawableHit(createHitAtCurrentTime(true))
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
|
@ -54,16 +54,16 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
{
|
{
|
||||||
AddStep("set beatmap", () => setBeatmap());
|
AddStep("set beatmap", () => setBeatmap());
|
||||||
|
|
||||||
AddStep("clear state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Clear)));
|
AddStep("clear state", () => SetContents(_ => new TaikoMascotAnimation(TaikoMascotAnimationState.Clear)));
|
||||||
AddStep("idle state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Idle)));
|
AddStep("idle state", () => SetContents(_ => new TaikoMascotAnimation(TaikoMascotAnimationState.Idle)));
|
||||||
AddStep("kiai state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai)));
|
AddStep("kiai state", () => SetContents(_ => new TaikoMascotAnimation(TaikoMascotAnimationState.Kiai)));
|
||||||
AddStep("fail state", () => SetContents(() => new TaikoMascotAnimation(TaikoMascotAnimationState.Fail)));
|
AddStep("fail state", () => SetContents(_ => new TaikoMascotAnimation(TaikoMascotAnimationState.Fail)));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestInitialState()
|
public void TestInitialState()
|
||||||
{
|
{
|
||||||
AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both }));
|
AddStep("create mascot", () => SetContents(_ => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both }));
|
||||||
|
|
||||||
AddAssert("mascot initially idle", () => allMascotsIn(TaikoMascotAnimationState.Idle));
|
AddAssert("mascot initially idle", () => allMascotsIn(TaikoMascotAnimationState.Idle));
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
{
|
{
|
||||||
AddStep("set beatmap", () => setBeatmap());
|
AddStep("set beatmap", () => setBeatmap());
|
||||||
|
|
||||||
AddStep("create mascot", () => SetContents(() => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both }));
|
AddStep("create mascot", () => SetContents(_ => new DrawableTaikoMascot { RelativeSizeAxes = Axes.Both }));
|
||||||
|
|
||||||
AddStep("set clear state", () => mascots.ForEach(mascot => mascot.State.Value = TaikoMascotAnimationState.Clear));
|
AddStep("set clear state", () => mascots.ForEach(mascot => mascot.State.Value = TaikoMascotAnimationState.Clear));
|
||||||
AddStep("miss", () => mascots.ForEach(mascot => mascot.LastResult.Value = new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }));
|
AddStep("miss", () => mascots.ForEach(mascot => mascot.LastResult.Value = new JudgementResult(new Hit(), new TaikoJudgement()) { Type = HitResult.Miss }));
|
||||||
@ -181,7 +181,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
{
|
{
|
||||||
Beatmap.Value.Track.Start();
|
Beatmap.Value.Track.Start();
|
||||||
|
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
var ruleset = new TaikoRuleset();
|
var ruleset = new TaikoRuleset();
|
||||||
return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo));
|
return new DrawableTaikoRuleset(ruleset, Beatmap.Value.GetPlayableBeatmap(ruleset.RulesetInfo));
|
||||||
|
@ -22,16 +22,16 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNormalHit()
|
public void TestNormalHit()
|
||||||
{
|
{
|
||||||
AddStep("Great", () => SetContents(() => getContentFor(createHit(HitResult.Great))));
|
AddStep("Great", () => SetContents(_ => getContentFor(createHit(HitResult.Great))));
|
||||||
AddStep("Ok", () => SetContents(() => getContentFor(createHit(HitResult.Ok))));
|
AddStep("Ok", () => SetContents(_ => getContentFor(createHit(HitResult.Ok))));
|
||||||
AddStep("Miss", () => SetContents(() => getContentFor(createHit(HitResult.Miss))));
|
AddStep("Miss", () => SetContents(_ => getContentFor(createHit(HitResult.Miss))));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(HitResult.Great)]
|
[TestCase(HitResult.Great)]
|
||||||
[TestCase(HitResult.Ok)]
|
[TestCase(HitResult.Ok)]
|
||||||
public void TestStrongHit(HitResult type)
|
public void TestStrongHit(HitResult type)
|
||||||
{
|
{
|
||||||
AddStep("create hit", () => SetContents(() => getContentFor(createStrongHit(type))));
|
AddStep("create hit", () => SetContents(_ => getContentFor(createStrongHit(type))));
|
||||||
AddStep("visualise second hit",
|
AddStep("visualise second hit",
|
||||||
() => this.ChildrenOfType<HitExplosion>()
|
() => this.ChildrenOfType<HitExplosion>()
|
||||||
.ForEach(e => e.VisualiseSecondHit(new JudgementResult(new HitObject { StartTime = Time.Current }, new Judgement()))));
|
.ForEach(e => e.VisualiseSecondHit(new JudgementResult(new HitObject { StartTime = Time.Current }, new Judgement()))));
|
||||||
|
@ -17,7 +17,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load()
|
private void load()
|
||||||
{
|
{
|
||||||
SetContents(() => new TaikoInputManager(new TaikoRuleset().RulesetInfo)
|
SetContents(_ => new TaikoInputManager(new TaikoRuleset().RulesetInfo)
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Child = new Container
|
Child = new Container
|
||||||
|
@ -15,8 +15,8 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestKiaiHits()
|
public void TestKiaiHits()
|
||||||
{
|
{
|
||||||
AddStep("rim hit", () => SetContents(() => getContentFor(createHit(HitType.Rim))));
|
AddStep("rim hit", () => SetContents(_ => getContentFor(createHit(HitType.Rim))));
|
||||||
AddStep("centre hit", () => SetContents(() => getContentFor(createHit(HitType.Centre))));
|
AddStep("centre hit", () => SetContents(_ => getContentFor(createHit(HitType.Centre))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable getContentFor(DrawableTestHit hit)
|
private Drawable getContentFor(DrawableTestHit hit)
|
||||||
|
@ -37,7 +37,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
Beatmap.Value.Track.Start();
|
Beatmap.Value.Track.Start();
|
||||||
});
|
});
|
||||||
|
|
||||||
AddStep("Load playfield", () => SetContents(() => new TaikoPlayfield(new ControlPointInfo())
|
AddStep("Load playfield", () => SetContents(_ => new TaikoPlayfield(new ControlPointInfo())
|
||||||
{
|
{
|
||||||
Anchor = Anchor.CentreLeft,
|
Anchor = Anchor.CentreLeft,
|
||||||
Origin = Anchor.CentreLeft,
|
Origin = Anchor.CentreLeft,
|
||||||
|
@ -20,7 +20,7 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning
|
|||||||
|
|
||||||
public TestSceneTaikoScroller()
|
public TestSceneTaikoScroller()
|
||||||
{
|
{
|
||||||
AddStep("Load scroller", () => SetContents(() =>
|
AddStep("Load scroller", () => SetContents(_ =>
|
||||||
new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.Scroller), _ => Empty())
|
new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.Scroller), _ => Empty())
|
||||||
{
|
{
|
||||||
Clock = new FramedClock(clock),
|
Clock = new FramedClock(clock),
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
// 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 NUnit.Framework;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Game.Rulesets;
|
||||||
|
using osu.Game.Rulesets.Osu;
|
||||||
|
|
||||||
|
namespace osu.Game.Tests.Visual.Gameplay
|
||||||
|
{
|
||||||
|
public abstract class SkinnableHUDComponentTestScene : SkinnableTestScene
|
||||||
|
{
|
||||||
|
protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset();
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void SetUp() => Schedule(() =>
|
||||||
|
{
|
||||||
|
SetContents(skin =>
|
||||||
|
{
|
||||||
|
var implementation = skin != null
|
||||||
|
? CreateLegacyImplementation()
|
||||||
|
: CreateDefaultImplementation();
|
||||||
|
|
||||||
|
implementation.Anchor = Anchor.Centre;
|
||||||
|
implementation.Origin = Anchor.Centre;
|
||||||
|
return implementation;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
protected abstract Drawable CreateDefaultImplementation();
|
||||||
|
protected abstract Drawable CreateLegacyImplementation();
|
||||||
|
}
|
||||||
|
}
|
@ -29,8 +29,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
|
|
||||||
AddStep("allow skin lookup", () => storyboard.UseSkinSprites = false);
|
AddStep("allow skin lookup", () => storyboard.UseSkinSprites = false);
|
||||||
|
|
||||||
AddStep("create sprites", () => SetContents(
|
AddStep("create sprites", () => SetContents(_ => createSprite(lookup_name, Anchor.TopLeft, Vector2.Zero)));
|
||||||
() => createSprite(lookup_name, Anchor.TopLeft, Vector2.Zero)));
|
|
||||||
|
|
||||||
assertSpritesFromSkin(false);
|
assertSpritesFromSkin(false);
|
||||||
}
|
}
|
||||||
@ -42,8 +41,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
|
|
||||||
AddStep("allow skin lookup", () => storyboard.UseSkinSprites = true);
|
AddStep("allow skin lookup", () => storyboard.UseSkinSprites = true);
|
||||||
|
|
||||||
AddStep("create sprites", () => SetContents(
|
AddStep("create sprites", () => SetContents(_ => createSprite(lookup_name, Anchor.Centre, Vector2.Zero)));
|
||||||
() => createSprite(lookup_name, Anchor.Centre, Vector2.Zero)));
|
|
||||||
|
|
||||||
assertSpritesFromSkin(true);
|
assertSpritesFromSkin(true);
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestToggleEditor()
|
public void TestToggleEditor()
|
||||||
{
|
{
|
||||||
AddStep("show available components", () => SetContents(() => new SkinComponentToolbox(300)
|
AddStep("show available components", () => SetContents(_ => new SkinComponentToolbox(300)
|
||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
|
@ -27,7 +27,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
{
|
{
|
||||||
AddStep("create editor overlay", () =>
|
AddStep("create editor overlay", () =>
|
||||||
{
|
{
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
var ruleset = new OsuRuleset();
|
var ruleset = new OsuRuleset();
|
||||||
var mods = new[] { ruleset.GetAutoplayMod() };
|
var mods = new[] { ruleset.GetAutoplayMod() };
|
||||||
|
@ -3,26 +3,26 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Rulesets;
|
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
|
using osu.Game.Screens.Play.HUD;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Gameplay
|
namespace osu.Game.Tests.Visual.Gameplay
|
||||||
{
|
{
|
||||||
public class TestSceneSkinnableAccuracyCounter : SkinnableTestScene
|
public class TestSceneSkinnableAccuracyCounter : SkinnableHUDComponentTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset();
|
|
||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
||||||
|
|
||||||
|
protected override Drawable CreateDefaultImplementation() => new DefaultAccuracyCounter();
|
||||||
|
protected override Drawable CreateLegacyImplementation() => new LegacyAccuracyCounter();
|
||||||
|
|
||||||
[SetUpSteps]
|
[SetUpSteps]
|
||||||
public void SetUpSteps()
|
public void SetUpSteps()
|
||||||
{
|
{
|
||||||
AddStep("Set initial accuracy", () => scoreProcessor.Accuracy.Value = 1);
|
AddStep("Set initial accuracy", () => scoreProcessor.Accuracy.Value = 1);
|
||||||
AddStep("Create accuracy counters", () => SetContents(() => new SkinnableDrawable(new HUDSkinComponent(HUDSkinComponents.AccuracyCounter))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -3,26 +3,19 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Rulesets;
|
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Screens.Play.HUD;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Gameplay
|
namespace osu.Game.Tests.Visual.Gameplay
|
||||||
{
|
{
|
||||||
public class TestSceneComboCounter : SkinnableTestScene
|
public class TestSceneSkinnableComboCounter : SkinnableHUDComponentTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset();
|
|
||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
||||||
|
|
||||||
[SetUpSteps]
|
protected override Drawable CreateDefaultImplementation() => new DefaultComboCounter();
|
||||||
public void SetUpSteps()
|
protected override Drawable CreateLegacyImplementation() => new LegacyComboCounter();
|
||||||
{
|
|
||||||
AddStep("Create combo counters", () => SetContents(() => new SkinnableDrawable(new HUDSkinComponent(HUDSkinComponents.ComboCounter))));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestComboCounterIncrementing()
|
public void TestComboCounterIncrementing()
|
@ -77,7 +77,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
{
|
{
|
||||||
AddStep("create overlay", () =>
|
AddStep("create overlay", () =>
|
||||||
{
|
{
|
||||||
SetContents(() =>
|
SetContents(_ =>
|
||||||
{
|
{
|
||||||
hudOverlay = new HUDOverlay(null, Array.Empty<Mod>());
|
hudOverlay = new HUDOverlay(null, Array.Empty<Mod>());
|
||||||
|
|
||||||
|
@ -3,28 +3,28 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Rulesets;
|
|
||||||
using osu.Game.Rulesets.Judgements;
|
using osu.Game.Rulesets.Judgements;
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Rulesets.Osu.Judgements;
|
using osu.Game.Rulesets.Osu.Judgements;
|
||||||
using osu.Game.Rulesets.Osu.Objects;
|
using osu.Game.Rulesets.Osu.Objects;
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
|
using osu.Game.Screens.Play.HUD;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Gameplay
|
namespace osu.Game.Tests.Visual.Gameplay
|
||||||
{
|
{
|
||||||
public class TestSceneSkinnableHealthDisplay : SkinnableTestScene
|
public class TestSceneSkinnableHealthDisplay : SkinnableHUDComponentTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset();
|
|
||||||
|
|
||||||
[Cached(typeof(HealthProcessor))]
|
[Cached(typeof(HealthProcessor))]
|
||||||
private HealthProcessor healthProcessor = new DrainingHealthProcessor(0);
|
private HealthProcessor healthProcessor = new DrainingHealthProcessor(0);
|
||||||
|
|
||||||
|
protected override Drawable CreateDefaultImplementation() => new DefaultHealthDisplay();
|
||||||
|
protected override Drawable CreateLegacyImplementation() => new LegacyHealthDisplay();
|
||||||
|
|
||||||
[SetUpSteps]
|
[SetUpSteps]
|
||||||
public void SetUpSteps()
|
public void SetUpSteps()
|
||||||
{
|
{
|
||||||
AddStep("Create health displays", () => SetContents(() => new SkinnableDrawable(new HUDSkinComponent(HUDSkinComponents.HealthDisplay))));
|
|
||||||
AddStep(@"Reset all", delegate
|
AddStep(@"Reset all", delegate
|
||||||
{
|
{
|
||||||
healthProcessor.Health.Value = 1;
|
healthProcessor.Health.Value = 1;
|
||||||
|
@ -3,26 +3,20 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Rulesets;
|
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
|
using osu.Game.Screens.Play.HUD;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Gameplay
|
namespace osu.Game.Tests.Visual.Gameplay
|
||||||
{
|
{
|
||||||
public class TestSceneSkinnableScoreCounter : SkinnableTestScene
|
public class TestSceneSkinnableScoreCounter : SkinnableHUDComponentTestScene
|
||||||
{
|
{
|
||||||
protected override Ruleset CreateRulesetForSkinProvider() => new OsuRuleset();
|
|
||||||
|
|
||||||
[Cached]
|
[Cached]
|
||||||
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
private ScoreProcessor scoreProcessor = new ScoreProcessor();
|
||||||
|
|
||||||
[SetUpSteps]
|
protected override Drawable CreateDefaultImplementation() => new DefaultScoreCounter();
|
||||||
public void SetUpSteps()
|
protected override Drawable CreateLegacyImplementation() => new LegacyScoreCounter();
|
||||||
{
|
|
||||||
AddStep("Create score counters", () => SetContents(() => new SkinnableDrawable(new HUDSkinComponent(HUDSkinComponents.ScoreCounter))));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestScoreCounterIncrementing()
|
public void TestScoreCounterIncrementing()
|
||||||
|
@ -100,15 +100,15 @@ namespace osu.Game.Skinning
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
Children = new[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.ComboCounter)),
|
new DefaultComboCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.ScoreCounter)),
|
new DefaultScoreCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.AccuracyCounter)),
|
new DefaultAccuracyCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.HealthDisplay)),
|
new DefaultHealthDisplay(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.SongProgress)),
|
new SongProgress(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.BarHitErrorMeter)),
|
new BarHitErrorMeter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.BarHitErrorMeter)),
|
new BarHitErrorMeter(),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -116,35 +116,6 @@ namespace osu.Game.Skinning
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HUDSkinComponent hudComponent:
|
|
||||||
{
|
|
||||||
switch (hudComponent.Component)
|
|
||||||
{
|
|
||||||
case HUDSkinComponents.ComboCounter:
|
|
||||||
return new DefaultComboCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.ScoreCounter:
|
|
||||||
return new DefaultScoreCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.AccuracyCounter:
|
|
||||||
return new DefaultAccuracyCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.HealthDisplay:
|
|
||||||
return new DefaultHealthDisplay();
|
|
||||||
|
|
||||||
case HUDSkinComponents.SongProgress:
|
|
||||||
return new SongProgress();
|
|
||||||
|
|
||||||
case HUDSkinComponents.BarHitErrorMeter:
|
|
||||||
return new BarHitErrorMeter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.ColourHitErrorMeter:
|
|
||||||
return new ColourHitErrorMeter();
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -1,22 +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.
|
|
||||||
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace osu.Game.Skinning
|
|
||||||
{
|
|
||||||
public class HUDSkinComponent : ISkinComponent
|
|
||||||
{
|
|
||||||
public readonly HUDSkinComponents Component;
|
|
||||||
|
|
||||||
public HUDSkinComponent(HUDSkinComponents component)
|
|
||||||
{
|
|
||||||
Component = component;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual string ComponentName => Component.ToString();
|
|
||||||
|
|
||||||
public string LookupName =>
|
|
||||||
string.Join('/', new[] { "HUD", ComponentName }.Where(s => !string.IsNullOrEmpty(s)));
|
|
||||||
}
|
|
||||||
}
|
|
@ -362,16 +362,26 @@ namespace osu.Game.Skinning
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
Children = new[]
|
Children = this.HasFont(LegacyFont.Score)
|
||||||
{
|
? new Drawable[]
|
||||||
// TODO: these should fallback to the osu!classic skin.
|
{
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.ComboCounter)) ?? new DefaultComboCounter(),
|
new LegacyComboCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.ScoreCounter)) ?? new DefaultScoreCounter(),
|
new LegacyScoreCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.AccuracyCounter)) ?? new DefaultAccuracyCounter(),
|
new LegacyAccuracyCounter(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.HealthDisplay)) ?? new DefaultHealthDisplay(),
|
new LegacyHealthDisplay(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.SongProgress)) ?? new SongProgress(),
|
new SongProgress(),
|
||||||
GetDrawableComponent(new HUDSkinComponent(HUDSkinComponents.BarHitErrorMeter)) ?? new BarHitErrorMeter(),
|
new BarHitErrorMeter(),
|
||||||
}
|
}
|
||||||
|
: new Drawable[]
|
||||||
|
{
|
||||||
|
// TODO: these should fallback to using osu!classic skin textures, rather than doing this.
|
||||||
|
new DefaultComboCounter(),
|
||||||
|
new DefaultScoreCounter(),
|
||||||
|
new DefaultAccuracyCounter(),
|
||||||
|
new DefaultHealthDisplay(),
|
||||||
|
new SongProgress(),
|
||||||
|
new BarHitErrorMeter(),
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return skinnableTargetWrapper;
|
return skinnableTargetWrapper;
|
||||||
@ -379,29 +389,6 @@ namespace osu.Game.Skinning
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
case HUDSkinComponent hudComponent:
|
|
||||||
{
|
|
||||||
if (!this.HasFont(LegacyFont.Score))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
switch (hudComponent.Component)
|
|
||||||
{
|
|
||||||
case HUDSkinComponents.ComboCounter:
|
|
||||||
return new LegacyComboCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.ScoreCounter:
|
|
||||||
return new LegacyScoreCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.AccuracyCounter:
|
|
||||||
return new LegacyAccuracyCounter();
|
|
||||||
|
|
||||||
case HUDSkinComponents.HealthDisplay:
|
|
||||||
return new LegacyHealthDisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
case GameplaySkinComponent<HitResult> resultComponent:
|
case GameplaySkinComponent<HitResult> resultComponent:
|
||||||
Func<Drawable> createDrawable = () => getJudgementAnimation(resultComponent.Component);
|
Func<Drawable> createDrawable = () => getJudgementAnimation(resultComponent.Component);
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ namespace osu.Game.Tests.Visual
|
|||||||
|
|
||||||
private readonly List<Drawable> createdDrawables = new List<Drawable>();
|
private readonly List<Drawable> createdDrawables = new List<Drawable>();
|
||||||
|
|
||||||
public void SetContents(Func<Drawable> creationFunction)
|
protected void SetContents(Func<ISkin, Drawable> creationFunction)
|
||||||
{
|
{
|
||||||
createdDrawables.Clear();
|
createdDrawables.Clear();
|
||||||
|
|
||||||
@ -67,9 +67,9 @@ namespace osu.Game.Tests.Visual
|
|||||||
|
|
||||||
protected IEnumerable<Drawable> CreatedDrawables => createdDrawables;
|
protected IEnumerable<Drawable> CreatedDrawables => createdDrawables;
|
||||||
|
|
||||||
private Drawable createProvider(Skin skin, Func<Drawable> creationFunction, IBeatmap beatmap)
|
private Drawable createProvider(Skin skin, Func<ISkin, Drawable> creationFunction, IBeatmap beatmap)
|
||||||
{
|
{
|
||||||
var created = creationFunction();
|
var created = creationFunction(skin);
|
||||||
|
|
||||||
createdDrawables.Add(created);
|
createdDrawables.Add(created);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user