1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-03 10:12:54 +08:00

Add support to use legacy combo fonts for the counter on legacy skins

This commit is contained in:
Salman Ahmed 2020-08-03 21:40:13 +03:00
parent 9d10658e3c
commit 29053048ff
5 changed files with 18 additions and 4 deletions

View File

@ -13,6 +13,7 @@ namespace osu.Game.Rulesets.Catch
Droplet,
CatcherIdle,
CatcherFail,
CatcherKiai
CatcherKiai,
CatchComboCounter
}
}

View File

@ -6,6 +6,7 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Game.Skinning;
using osuTK;
using static osu.Game.Skinning.LegacySkinConfiguration;
namespace osu.Game.Rulesets.Catch.Skinning
{
@ -51,6 +52,16 @@ namespace osu.Game.Rulesets.Catch.Skinning
case CatchSkinComponents.CatcherKiai:
return this.GetAnimation("fruit-catcher-kiai", true, true, true) ??
this.GetAnimation("fruit-ryuuta", true, true, true);
case CatchSkinComponents.CatchComboCounter:
var comboFont = GetConfig<LegacySetting, string>(LegacySetting.ComboPrefix)?.Value ?? "score";
var fontOverlap = GetConfig<LegacySetting, float>(LegacySetting.ComboOverlap)?.Value ?? -2f;
// For simplicity, let's use legacy combo font texture existence as a way to identify legacy skins from default.
if (HasFont(comboFont))
return new LegacyComboCounter(Source, comboFont, fontOverlap);
break;
}
return null;

View File

@ -94,7 +94,7 @@ namespace osu.Game.Rulesets.Osu.Skinning
var font = GetConfig<OsuSkinConfiguration, string>(OsuSkinConfiguration.HitCirclePrefix)?.Value ?? "default";
var overlap = GetConfig<OsuSkinConfiguration, float>(OsuSkinConfiguration.HitCircleOverlap)?.Value ?? -2;
return !hasFont(font)
return !HasFont(font)
? null
: new LegacySpriteText(Source, font)
{
@ -145,7 +145,5 @@ namespace osu.Game.Rulesets.Osu.Skinning
return Source.GetConfig<TLookup, TValue>(lookup);
}
private bool hasFont(string fontName) => Source.GetTexture($"{fontName}-0") != null;
}
}

View File

@ -15,6 +15,8 @@ namespace osu.Game.Skinning
public enum LegacySetting
{
Version,
ComboPrefix,
ComboOverlap,
AnimationFramerate,
LayeredHitSounds,
}

View File

@ -47,5 +47,7 @@ namespace osu.Game.Skinning
}
public abstract IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup);
protected bool HasFont(string fontPrefix) => GetTexture($"{fontPrefix}-0") != null;
}
}