osu/osu.Game/Skinning/SkinConfiguration.cs

55 lines
1.7 KiB
C#
Raw Normal View History

// 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.
2018-04-13 09:19:50 +00:00
using System.Collections.Generic;
using System.Linq;
using osu.Framework.Extensions.IEnumerableExtensions;
2018-04-13 09:19:50 +00:00
using osu.Game.Beatmaps.Formats;
2018-11-20 07:51:59 +00:00
using osuTK.Graphics;
2018-04-13 09:19:50 +00:00
namespace osu.Game.Skinning
{
/// <summary>
/// An empty skin configuration.
/// </summary>
2018-04-13 09:19:50 +00:00
public class SkinConfiguration : IHasComboColours, IHasCustomColours
{
public readonly SkinInfo SkinInfo = new SkinInfo();
internal bool AllowDefaultColoursFallback;
public static List<Color4> DefaultComboColours = new List<Color4>
{
new Color4(255, 192, 0, 255),
new Color4(0, 202, 0, 255),
new Color4(18, 124, 255, 255),
new Color4(242, 24, 57, 255),
};
private List<Color4> comboColours = new List<Color4>();
public IReadOnlyList<Color4> ComboColours
{
get
{
if (comboColours.Count > 0)
return comboColours;
if (AllowDefaultColoursFallback)
return DefaultComboColours;
return null;
}
set => comboColours = value.ToList();
}
2018-04-13 09:19:50 +00:00
public void AddComboColours(params Color4[] colours) => colours.ForEach(c => comboColours.Add(c));
public void ClearComboColours() => comboColours.Clear();
2018-04-13 09:19:50 +00:00
public Dictionary<string, Color4> CustomColours { get; set; } = new Dictionary<string, Color4>();
public readonly Dictionary<string, string> ConfigDictionary = new Dictionary<string, string>();
2018-04-13 09:19:50 +00:00
}
}