Add skin source fallback chain

This commit is contained in:
Dean Herbert
2018-03-20 16:26:36 +09:00
parent fd0391daf7
commit 9ad4e9284a
12 changed files with 142 additions and 23 deletions

View File

@ -4,19 +4,26 @@
using System;
using osu.Framework.Audio.Sample;
using osu.Framework.Graphics;
using osu.Game.Rulesets.Objects.Types;
using OpenTK.Graphics;
namespace osu.Game.Skinning
{
public abstract class Skin : IDisposable
public abstract class Skin : IDisposable, ISkinSource
{
public readonly SkinInfo SkinInfo;
public virtual SkinConfiguration Configuration { get; protected set; }
public event Action SourceChanged;
public abstract Drawable GetDrawableComponent(string componentName);
public abstract SampleChannel GetSample(string sampleName);
public virtual Color4? GetComboColour(IHasComboIndex comboObject) =>
Configuration.ComboColours.Count == 0 ? (Color4?)null : Configuration.ComboColours[comboObject.ComboIndex % Configuration.ComboColours.Count];
protected Skin(SkinInfo skin)
{
SkinInfo = skin;