Make italic font chooseable

This commit is contained in:
Infi
2024-07-25 15:19:08 +02:00
parent 9c86ee788f
commit 41c59f6aa0
6 changed files with 90 additions and 22 deletions
+22 -18
View File
@@ -130,27 +130,31 @@ public class FontManager
}
));
// load italic version if it exists, else default to regular
ItalicFont = Plugin.Interface.UiBuilder.FontAtlas.NewDelegateFontHandle(
e => e.OnPreBuild(
tk =>
{
var italicVersion = Plugin.Config.GlobalFontV2.FontId.Family.Fonts.FirstOrDefault(f => f.EnglishName.Contains("Italic"));
if (Plugin.Config.ItalicEnabled)
{
ItalicFont = Plugin.Interface.UiBuilder.FontAtlas.NewDelegateFontHandle(
e => e.OnPreBuild(
tk =>
{
var config = new SafeFontConfig {SizePt = Plugin.Config.GlobalFontV2.SizePt, GlyphRanges = Ranges};
config.MergeFont = Plugin.Config.ItalicFontV2.FontId.AddToBuildToolkit(tk, config);
var config = new SafeFontConfig {SizePt = Plugin.Config.GlobalFontV2.SizePt, GlyphRanges = Ranges};
config.MergeFont = italicVersion?.AddToBuildToolkit(tk, config) ?? Plugin.Config.GlobalFontV2.FontId.AddToBuildToolkit(tk, config);
config.SizePt = Plugin.Config.JapaneseFontV2.SizePt;
config.GlyphRanges = JpRange;
Plugin.Config.JapaneseFontV2.FontId.AddToBuildToolkit(tk, config);
config.SizePt = Plugin.Config.JapaneseFontV2.SizePt;
config.GlyphRanges = JpRange;
Plugin.Config.JapaneseFontV2.FontId.AddToBuildToolkit(tk, config);
config.SizePt = Plugin.Config.SymbolsFontSizeV2;
config.GlyphRanges = SymRange;
tk.AddFontFromMemory(GameSymFont, config, "ChatTwo2 Sym Font");
config.SizePt = Plugin.Config.SymbolsFontSizeV2;
config.GlyphRanges = SymRange;
tk.AddFontFromMemory(GameSymFont, config, "ChatTwo2 Sym Font");
tk.Font = config.MergeFont;
}
));
tk.Font = config.MergeFont;
}
));
}
else
{
ItalicFont = null;
}
}
public static float SizeInPt(float px) => (float) (px * 3.0 / 4.0);