1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-14 02:13:21 +08:00

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.Collections.Generic;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Timing;
using osu.Game.Rulesets.Edit;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.Objects.Drawables;
using osu.Game.Rulesets.Mania.UI;
using osu.Game.Rulesets.Mods;
@ -28,6 +30,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
[Cached(typeof(IScrollingInfo))]
private IScrollingInfo scrollingInfo;
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaPlacementBlueprintTestScene()
{
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)
{
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.
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Timing;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.UI;
using osu.Game.Tests.Visual;
using osuTK.Graphics;
@ -15,6 +17,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Editor
[Cached(Type = typeof(IAdjustableClock))]
private readonly IAdjustableClock clock = new StopwatchClock();
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaSelectionBlueprintTestScene()
{
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;
}
}

View File

@ -1,9 +1,12 @@
// 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.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Input.Bindings;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Tests.Visual;
namespace osu.Game.Rulesets.Mania.Tests
@ -13,11 +16,21 @@ namespace osu.Game.Rulesets.Mania.Tests
private readonly Container<Drawable> content;
protected override Container<Drawable> Content => content ?? base.Content;
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected ManiaInputTestScene(int 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
{
public LocalInputManager(int variant)

View File

@ -7,6 +7,7 @@ using osu.Framework.Bindables;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.UI.Scrolling;
using osu.Game.Rulesets.UI.Scrolling.Algorithms;
using osu.Game.Tests.Visual;
@ -24,6 +25,9 @@ namespace osu.Game.Rulesets.Mania.Tests.Skinning
[Cached(Type = typeof(IScrollingInfo))]
private readonly TestScrollingInfo scrollingInfo = new TestScrollingInfo();
[Cached]
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
protected override Ruleset CreateRulesetForSkinProvider() => new ManiaRuleset();
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]
public void TestScrollingDown()
{

View File

@ -15,6 +15,7 @@ using osu.Game.Beatmaps;
using osu.Game.Beatmaps.ControlPoints;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Rulesets.Mania.Configuration;
using osu.Game.Rulesets.Mania.Objects;
using osu.Game.Rulesets.Mania.Objects.Drawables;
using osu.Game.Rulesets.Objects.Drawables;
@ -29,6 +30,16 @@ namespace osu.Game.Rulesets.Mania.Tests
[TestFixture]
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]
public void TestVariousNotes()
{

View File

@ -26,9 +26,9 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
private OsuColour colours { get; set; }
[Resolved]
private Bindable<bool> configColourCode { get; set; }
private Bindable<bool> configColourCodedNotes { get; set; }
[Resolved]
[Resolved(canBeNull: true)]
private SnapFinder snapFinder { get; set; }
protected virtual ManiaSkinComponents Component => ManiaSkinComponents.Note;
@ -60,10 +60,13 @@ namespace osu.Game.Rulesets.Mania.Objects.Drawables
{
base.LoadComplete();
HitObject.StartTimeBindable.BindValueChanged(_ => Snap = snapFinder.FindSnap(HitObject), true);
if (snapFinder != null)
{
HitObject.StartTimeBindable.BindValueChanged(_ => Snap = snapFinder.FindSnap(HitObject), true);
SnapBindable.BindValueChanged(snap => UpdateSnapColour(configColourCode.Value, snap.NewValue), true);
configColourCode.BindValueChanged(colourCode => UpdateSnapColour(colourCode.NewValue, Snap));
SnapBindable.BindValueChanged(snap => UpdateSnapColour(configColourCodedNotes.Value, snap.NewValue), true);
configColourCodedNotes.BindValueChanged(colourCode => UpdateSnapColour(colourCode.NewValue, Snap));
}
}
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;
[Cached]
protected readonly Bindable<bool> configColourCode = new Bindable<bool>();
protected readonly Bindable<bool> configColourCodedNotes = new Bindable<bool>();
public ScrollVisualisationMethod ScrollMethod
{
@ -114,7 +114,7 @@ namespace osu.Game.Rulesets.Mania.UI
Config.BindWith(ManiaRulesetSetting.ScrollTime, configTimeRange);
Config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCode);
Config.BindWith(ManiaRulesetSetting.ColourCodedNotes, configColourCodedNotes);
}
protected override void AdjustScrollSpeed(int amount)