Fix visual tests missing dependency for ColourCodedNotes

This commit is contained in:
Justus Franklin Tumacder
2021-04-24 21:07:17 +08:00
parent 3103fd8343
commit 8b01082cbb
7 changed files with 69 additions and 7 deletions

View File

@ -4,10 +4,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Rulesets.Edit; using osu.Game.Rulesets.Edit;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.Objects.Drawables; using osu.Game.Rulesets.Mania.Objects.Drawables;
using osu.Game.Rulesets.Mania.UI; using osu.Game.Rulesets.Mania.UI;
using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Mods;
@ -28,6 +30,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
[Cached(typeof(IScrollingInfo))] [Cached(typeof(IScrollingInfo))]
private IScrollingInfo scrollingInfo; private IScrollingInfo scrollingInfo;
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaPlacementBlueprintTestScene() protected ManiaPlacementBlueprintTestScene()
{ {
scrollingInfo = ((ScrollingTestContainer)HitObjectContainer).ScrollingInfo; scrollingInfo = ((ScrollingTestContainer)HitObjectContainer).ScrollingInfo;
@ -41,6 +46,13 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
}); });
} }
[BackgroundDependencyLoader]
private void load(RulesetConfigCache configCache)
{
var config = (ManiaRulesetConfigManager)configCache.GetConfigFor(Ruleset.Value.CreateInstance());
config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
protected override SnapResult SnapForBlueprint(PlacementBlueprint blueprint) protected override SnapResult SnapForBlueprint(PlacementBlueprint blueprint)
{ {
var time = column.TimeAtScreenSpacePosition(InputManager.CurrentState.Mouse.Position); var time = column.TimeAtScreenSpacePosition(InputManager.CurrentState.Mouse.Position);

View File

@ -2,8 +2,10 @@
// See the LICENCE file in the repository root for full licence text. // See the LICENCE file in the repository root for full licence text.
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.UI; using osu.Game.Rulesets.Mania.UI;
using osu.Game.Tests.Visual; using osu.Game.Tests.Visual;
using osuTK.Graphics; using osuTK.Graphics;
@ -15,6 +17,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
[Cached(Type = typeof(IAdjustableClock))] [Cached(Type = typeof(IAdjustableClock))]
private readonly IAdjustableClock clock = new StopwatchClock(); private readonly IAdjustableClock clock = new StopwatchClock();
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaSelectionBlueprintTestScene() protected ManiaSelectionBlueprintTestScene()
{ {
Add(new Column(0) Add(new Column(0)
@ -26,6 +31,13 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
}); });
} }
[BackgroundDependencyLoader]
private void load(RulesetConfigCache configCache)
{
var config = (ManiaRulesetConfigManager)configCache.GetConfigFor(Ruleset.Value.CreateInstance());
config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
public ManiaPlayfield Playfield => null; public ManiaPlayfield Playfield => null;
} }
} }

View File

@ -1,9 +1,12 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. // Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text. // See the LICENCE file in the repository root for full licence text.
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Tests.Visual; using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Mania.Tests namespace osu.Game.Rulesets.Mania.Tests
@ -13,11 +16,21 @@ namespace osu.Game.Rulesets.Mania.Tests
private readonly Container<Drawable> content; private readonly Container<Drawable> content;
protected override Container<Drawable> Content => content ?? base.Content; protected override Container<Drawable> Content => content ?? base.Content;
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaInputTestScene(int keys) protected ManiaInputTestScene(int keys)
{ {
base.Content.Add(content = new LocalInputManager(keys)); base.Content.Add(content = new LocalInputManager(keys));
} }
[BackgroundDependencyLoader]
private void load(RulesetConfigCache configCache)
{
var config = (ManiaRulesetConfigManager)configCache.GetConfigFor(Ruleset.Value.CreateInstance());
config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
private class LocalInputManager : ManiaInputManager private class LocalInputManager : ManiaInputManager
{ {
public LocalInputManager(int variant) public LocalInputManager(int variant)

View File

@ -7,6 +7,7 @@ using osu.Framework.Bindables;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.UI.Scrolling; using osu.Game.Rulesets.UI.Scrolling;
using osu.Game.Rulesets.UI.Scrolling.Algorithms; using osu.Game.Rulesets.UI.Scrolling.Algorithms;
using osu.Game.Tests.Visual; using osu.Game.Tests.Visual;
@ -24,6 +25,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
[Cached(Type = typeof(IScrollingInfo))] [Cached(Type = typeof(IScrollingInfo))]
private readonly TestScrollingInfo scrollingInfo = new TestScrollingInfo(); private readonly TestScrollingInfo scrollingInfo = new TestScrollingInfo();
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected override Ruleset CreateRulesetForSkinProvider() => new ManiaRuleset(); protected override Ruleset CreateRulesetForSkinProvider() => new ManiaRuleset();
protected ManiaSkinnableTestScene() protected ManiaSkinnableTestScene()
@ -38,6 +42,13 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
}); });
} }
[BackgroundDependencyLoader]
private void load(RulesetConfigCache configCache)
{
var config = (ManiaRulesetConfigManager)configCache.GetConfigFor(Ruleset.Value.CreateInstance());
config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
[Test] [Test]
public void TestScrollingDown() public void TestScrollingDown()
{ {

View File

@ -15,6 +15,7 @@ using osu.Game.Beatmaps;
using osu.Game.Beatmaps.ControlPoints; using osu.Game.Beatmaps.ControlPoints;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.Objects; using osu.Game.Rulesets.Mania.Objects;
using osu.Game.Rulesets.Mania.Objects.Drawables; using osu.Game.Rulesets.Mania.Objects.Drawables;
using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Objects.Drawables;
@ -29,6 +30,16 @@ namespace osu.Game.Rulesets.Mania.Tests
[TestFixture] [TestFixture]
public class TestSceneNotes : OsuTestScene public class TestSceneNotes : OsuTestScene
{ {
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
[BackgroundDependencyLoader]
private void load(RulesetConfigCache configCache)
{
var config = (ManiaRulesetConfigManager)configCache.GetConfigFor(Ruleset.Value.CreateInstance());
config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
[Test] [Test]
public void TestVariousNotes() public void TestVariousNotes()
{ {

View File

@ -26,9 +26,9 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
private OsuColour colours { get; set; } private OsuColour colours { get; set; }
[Resolved] [Resolved]
private Bindable<bool> configColourCode { get; set; } private Bindable<bool> configColourCodedNotes { get; set; }
[Resolved] [Resolved(canBeNull: true)]
private SnapFinder snapFinder { get; set; } private SnapFinder snapFinder { get; set; }
protected virtual ManiaSkinComponents Component => ManiaSkinComponents.Note; protected virtual ManiaSkinComponents Component => ManiaSkinComponents.Note;
@ -60,10 +60,13 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
{ {
base.LoadComplete(); base.LoadComplete();
if (snapFinder != null)
{
HitObject.StartTimeBindable.BindValueChanged(_ => Snap = snapFinder.FindSnap(HitObject), true); HitObject.StartTimeBindable.BindValueChanged(_ => Snap = snapFinder.FindSnap(HitObject), true);
SnapBindable.BindValueChanged(snap => UpdateSnapColour(configColourCode.Value, snap.NewValue), true); SnapBindable.BindValueChanged(snap => UpdateSnapColour(configColourCodedNotes.Value, snap.NewValue), true);
configColourCode.BindValueChanged(colourCode => UpdateSnapColour(colourCode.NewValue, Snap)); configColourCodedNotes.BindValueChanged(colourCode => UpdateSnapColour(colourCode.NewValue, Snap));
}
} }
protected override void OnDirectionChanged(ValueChangedEvent<ScrollingDirection> e) protected override void OnDirectionChanged(ValueChangedEvent<ScrollingDirection> e)

View File

@ -56,7 +56,7 @@ namespace osu.Game.Rulesets.Mania.UI
protected new ManiaRulesetConfigManager Config => (ManiaRulesetConfigManager)base.Config; protected new ManiaRulesetConfigManager Config => (ManiaRulesetConfigManager)base.Config;
[Cached] [Cached]
protected readonly Bindable<bool> configColourCode = new Bindable<bool>(); protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
public ScrollVisualisationMethod ScrollMethod public ScrollVisualisationMethod ScrollMethod
{ {
@ -114,7 +114,7 @@ namespace osu.Game.Rulesets.Mania.UI
Config.BindWith(ManiaRulesetSetting.ScrollTime, configTimeRange); Config.BindWith(ManiaRulesetSetting.ScrollTime, configTimeRange);
Config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCode); Config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
} }
protected override void AdjustScrollSpeed(int amount) protected override void AdjustScrollSpeed(int amount)