// 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 osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics.Containers; using osu.Game.Rulesets.Mania.UI; using osu.Game.Skinning; namespace osu.Game.Rulesets.Mania.Skinning { /// /// A which is placed somewhere within a . /// public class LegacyManiaColumnElement : LegacyManiaElement { [Resolved] protected Column Column { get; private set; } /// /// The column index to use for texture lookups, in the case of no user-provided configuration. /// protected int FallbackColumnIndex { get; private set; } [BackgroundDependencyLoader] private void load() { if (Stage == null) FallbackColumnIndex = Column.Index % 2 + 1; else { int dist = Math.Min(Column.Index, Stage.Columns.Count - Column.Index - 1); FallbackColumnIndex = dist % 2 + 1; } } protected override IBindable GetManiaSkinConfig(ISkin skin, LegacyManiaSkinConfigurationLookups lookup, int? index = null) => base.GetManiaSkinConfig(skin, lookup, index ?? Column.Index); } }