From 67ea4a7e97bce85d0f5f861d021b7113809bc16b Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 7 May 2021 18:18:29 +0900 Subject: [PATCH] Read from skin config --- .../Play/HUD/SkinnableElementTargetContainer.cs | 17 +++++++++++++++-- osu.Game/Skinning/ISkin.cs | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/osu.Game/Screens/Play/HUD/SkinnableElementTargetContainer.cs b/osu.Game/Screens/Play/HUD/SkinnableElementTargetContainer.cs index 7ba32e2d46..8da7950c57 100644 --- a/osu.Game/Screens/Play/HUD/SkinnableElementTargetContainer.cs +++ b/osu.Game/Screens/Play/HUD/SkinnableElementTargetContainer.cs @@ -1,11 +1,24 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using osu.Framework.Graphics.Containers; +using System; +using System.Collections.Generic; +using osu.Framework.Graphics; +using osu.Game.Skinning; namespace osu.Game.Screens.Play.HUD { - public class SkinnableElementTargetContainer : Container, ISkinnableTarget + public class SkinnableElementTargetContainer : SkinReloadableDrawable, ISkinnableTarget { + protected override void SkinChanged(ISkinSource skin, bool allowFallback) + { + base.SkinChanged(skin, allowFallback); + + var loadable = skin.GetConfig>(this.GetType()); + + ClearInternal(); + if (loadable != null) + LoadComponentsAsync(loadable.Value, AddRangeInternal); + } } } diff --git a/osu.Game/Skinning/ISkin.cs b/osu.Game/Skinning/ISkin.cs index 9fa781fa5d..5371893882 100644 --- a/osu.Game/Skinning/ISkin.cs +++ b/osu.Game/Skinning/ISkin.cs @@ -1,6 +1,8 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; +using System.Collections.Generic; using JetBrains.Annotations; using osu.Framework.Audio.Sample; using osu.Framework.Bindables; @@ -57,7 +59,5 @@ namespace osu.Game.Skinning /// A matching value boxed in an , or null if unavailable. [CanBeNull] IBindable GetConfig(TLookup lookup); - - // IEnumerable ComponentInfo { get; } } }