Use new UpdateComboColour method to simplify colouring

This commit is contained in:
Dean Herbert 2020-02-19 15:16:19 +09:00
parent fec5c4a73a
commit 3f99d25e37
3 changed files with 19 additions and 11 deletions

View File

@ -1,7 +1,7 @@
// 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.Bindables; using System.Collections.Generic;
using osu.Framework.Utils; using osu.Framework.Utils;
using osuTK.Graphics; using osuTK.Graphics;
@ -14,16 +14,9 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
} }
protected override void LoadComplete()
{
base.LoadComplete();
AccentColour.BindValueChanged(accentChanged, true);
}
private Color4? colour; private Color4? colour;
private void accentChanged(ValueChangedEvent<Color4> obj) protected override void UpdateComboColour(Color4 proposedColour, IReadOnlyList<Color4> comboColours)
{ {
// override any external colour changes with banananana // override any external colour changes with banananana
AccentColour.Value = (colour ??= getBananaColour()); AccentColour.Value = (colour ??= getBananaColour());

View File

@ -1,6 +1,7 @@
// 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 System.Collections.Generic;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
@ -15,13 +16,13 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
public override bool StaysOnPlate => false; public override bool StaysOnPlate => false;
protected Container ScaleContainer;
public DrawableDroplet(Droplet h) public DrawableDroplet(Droplet h)
: base(h) : base(h)
{ {
} }
protected Container ScaleContainer;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load() private void load()
{ {
@ -46,5 +47,11 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
ScaleContainer.Scale = new Vector2(HitObject.Scale); ScaleContainer.Scale = new Vector2(HitObject.Scale);
} }
protected override void UpdateComboColour(Color4 proposedColour, IReadOnlyList<Color4> comboColours)
{
// ignore the incoming combo colour as we use a custom lookup
AccentColour.Value = comboColours[HitObject.IndexInBeatmap % comboColours.Count];
}
} }
} }

View File

@ -2,12 +2,14 @@
// 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 System; using System;
using System.Collections.Generic;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Utils; using osu.Framework.Utils;
using osu.Game.Skinning; using osu.Game.Skinning;
using osuTK; using osuTK;
using osuTK.Graphics;
namespace osu.Game.Rulesets.Catch.Objects.Drawable namespace osu.Game.Rulesets.Catch.Objects.Drawable
{ {
@ -42,6 +44,12 @@ namespace osu.Game.Rulesets.Catch.Objects.Drawable
scaleContainer.Scale = new Vector2(HitObject.Scale); scaleContainer.Scale = new Vector2(HitObject.Scale);
} }
protected override void UpdateComboColour(Color4 proposedColour, IReadOnlyList<Color4> comboColours)
{
// ignore the incoming combo colour as we use a custom lookup
AccentColour.Value = comboColours[(HitObject.IndexInBeatmap + 1) % comboColours.Count];
}
private CatchSkinComponents getComponent(FruitVisualRepresentation hitObjectVisualRepresentation) private CatchSkinComponents getComponent(FruitVisualRepresentation hitObjectVisualRepresentation)
{ {
switch (hitObjectVisualRepresentation) switch (hitObjectVisualRepresentation)