Add fallbacks to all fonts, even squad ones

This commit is contained in:
2020-11-12 14:55:04 -08:00
parent 16ef53ea65
commit ac1289a46e
5 changed files with 31 additions and 18 deletions

View File

@ -40,19 +40,15 @@ namespace ConformalDecals.Text {
public bool SmallCapsMask => (FontStyleMask & FontStyles.SmallCaps) != 0;
public DecalFont(ConfigNode node, IEnumerable<TMP_FontAsset> fontAssets) {
public DecalFont(string name, ConfigNode node, TMP_FontAsset font) {
if (name == null) throw new ArgumentNullException(nameof(name));
if (node == null) throw new ArgumentNullException(nameof(node));
if (fontAssets == null) throw new ArgumentNullException(nameof(fontAssets));
var name = ParseUtil.ParseString(node, "name");
FontAsset = fontAssets.First(o => o.name == name);
if (FontAsset == null) {
throw new FormatException($"Could not find font asset named {name}");
}
if (font == null) throw new ArgumentNullException(nameof(font));
Title = ParseUtil.ParseString(node, "title", true, name);
FontStyle = (FontStyles) ParseUtil.ParseInt(node, "style", true);
FontStyleMask = (FontStyles) ParseUtil.ParseInt(node, "styleMask", true);
FontAsset = font;
}

View File

@ -11,12 +11,13 @@ namespace ConformalDecals.Text {
[DatabaseLoaderAttrib(new[] {"decalfont"})]
public class FontLoader : DatabaseLoader<GameDatabase.TextureInfo> {
private const string FallbackName = "NotoSans-Regular SDF";
private static TMP_FontAsset _fallbackFont;
public static TMP_FontAsset FallbackFont { get; private set; }
public override IEnumerator Load(UrlDir.UrlFile urlFile, FileInfo fileInfo) {
if (_fallbackFont == null) {
_fallbackFont = Resources.FindObjectsOfTypeAll<TMP_FontAsset>().First(o => o.name == FallbackName);
if (_fallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'");
if (FallbackFont == null) {
FallbackFont = Resources.FindObjectsOfTypeAll<TMP_FontAsset>().First(o => o.name == FallbackName);
if (FallbackFont == null) Logging.LogError($"Could not find fallback font '{FallbackName}'");
}
Logging.Log($"Loading font file '{urlFile.fullPath}'");
@ -28,7 +29,7 @@ namespace ConformalDecals.Text {
var loadedFonts = bundle.LoadAllAssets<TMP_FontAsset>();
foreach (var font in loadedFonts) {
Logging.Log($"Adding font {font.name}");
font.fallbackFontAssets.Add(_fallbackFont);
font.fallbackFontAssets.Add(FallbackFont);
}
}