33using System . Reflection ;
44using System . Runtime . CompilerServices ;
55using System . Threading . Tasks ;
6- using BeatSaberMarkupLanguage . Harmony_Patches ;
76using BeatSaberMarkupLanguage . Util ;
87using HarmonyLib ;
98using IPA ;
109using IPA . Config . Stores ;
1110using TMPro ;
11+ using UnityEngine ;
12+ using UnityEngine . TextCore ;
13+ using UnityEngine . TextCore . LowLevel ;
1214using Conf = IPA . Config . Config ;
1315using IPALogger = IPA . Logging . Logger ;
1416
@@ -58,18 +60,6 @@ public void OnExit()
5860 private async Task LoadAndSetUpFontFallbacksAsync ( )
5961 {
6062 await FontManager . AsyncLoadSystemFonts ( ) ;
61- await MainSystemInitAwaiter . WaitForMainSystemInitAsync ( ) ;
62-
63- TMP_FontAsset [ ] fontAssets = FontManager . CreateFallbackFonts ( FontNamesToLoad ) ;
64-
65- if ( fontAssets . Length == 0 )
66- {
67- Logger . Log . Error ( "Failed to find any fallback fonts" ) ;
68- return ;
69- }
70-
71- Logger . Log . Debug ( "Waiting for default font presence" ) ;
72-
7363 await MainMenuAwaiter . WaitForMainMenuAsync ( ) ;
7464
7565 Logger . Log . Debug ( "Setting up default font fallbacks" ) ;
@@ -78,8 +68,20 @@ private async Task LoadAndSetUpFontFallbacksAsync()
7868 TMP_FontAsset mainTextFont = BeatSaberUI . MainTextFont ;
7969 mainTextFont . fallbackFontAssets . RemoveAll ( ( asset ) => FontNamesToRemove . Contains ( asset . name ) ) ;
8070 mainTextFont . fallbackFontAssetTable . RemoveAll ( ( asset ) => FontNamesToRemove . Contains ( asset . name ) ) ;
81- mainTextFont . fallbackFontAssetTable . AddRange ( fontAssets ) ;
8271 mainTextFont . boldSpacing = 2.2f ; // default bold spacing is rather w i d e
72+
73+ if ( Config . UseColoredEmoji && FontManager . TryGetFontByFullName ( "Segoe UI Emoji" , out Font font ) )
74+ {
75+ TMP_FontAsset emoji = TMP_FontAsset . CreateFontAsset ( font , 90 , 9 , GlyphRenderMode . COLOR , 4096 , 4096 ) ;
76+ emoji . name = "Segoe UI Emoji (Color)" ;
77+ FaceInfo faceInfo = emoji . faceInfo ;
78+ faceInfo . scale = 0.85f ;
79+ emoji . faceInfo = faceInfo ;
80+
81+ mainTextFont . fallbackFontAssetTable . Add ( emoji ) ;
82+ }
83+
84+ mainTextFont . fallbackFontAssetTable . AddRange ( FontManager . CreateFallbackFonts ( FontNamesToLoad ) ) ;
8385 }
8486 }
8587}
0 commit comments