local env = env local MODROOT = env.MODROOT GLOBAL.setfenv(1, GLOBAL) local FONT_PREFIX = "ru_" local FONT_POSTFIX = "__ru" local CACHED_FONTS = { CHATFONT = CHATFONT, CHATFONT_OUTLINE = CHATFONT_OUTLINE, UIFONT = UIFONT, TALKINGFONT = TALKINGFONT, TALKINGFONT_WORMWOOD = TALKINGFONT_WORMWOOD, NEWFONT = NEWFONT, } local LOCALIZED = { ["belisaplumilla50"] = true, ["talkingfont"] = true, ["bellefair50"] = true, ["bellefair_outline50"] = true, ["talkingfont_wormwood"] = true, ["spirequal"] = true, } local function ApplyLocalizedFonts() CHATFONT = CACHED_FONTS.CHATFONT CHATFONT_OUTLINE = CACHED_FONTS.CHATFONT_OUTLINE UIFONT = CACHED_FONTS.UIFONT TALKINGFONT = CACHED_FONTS.TALKINGFONT NEWFONT = CACHED_FONTS.NEWFONT for FontName in pairs(LOCALIZED) do TheSim:UnloadFont(FONT_PREFIX..FontName) end TheSim:UnloadPrefabs({"RLP_fonts"}) TheSim:UnloadPrefabs({"NRF_fonts"}) local LocalizedFontAssets = {} for FontName in pairs(LOCALIZED) do table.insert(LocalizedFontAssets, Asset("FONT", MODROOT.."fonts/"..FontName..FONT_POSTFIX..".zip")) end local LocalizedFontsPrefab = require("prefabs/nrf_fonts")(LocalizedFontAssets) RegisterPrefabs(LocalizedFontsPrefab) TheSim:LoadPrefabs({"NRF_fonts"}) for FontName in pairs(LOCALIZED) do TheSim:LoadFont(MODROOT.."fonts/"..FontName..FONT_POSTFIX..".zip", FONT_PREFIX..FontName) end local fallbacks = {} for _, v in pairs(FONTS) do local FontName = v.filename:sub(7, -5) if LOCALIZED[FontName] then fallbacks[FontName] = {v.alias, unpack(v.fallback)} end end for FontName in pairs(LOCALIZED) do TheSim:SetupFontFallbacks(FONT_PREFIX..FontName, fallbacks[FontName]) end UIFONT = FONT_PREFIX.."belisaplumilla50" CHATFONT = FONT_PREFIX.."bellefair50" CHATFONT_OUTLINE = FONT_PREFIX.."bellefair_outline50" TALKINGFONT = FONT_PREFIX.."talkingfont" NEWFONT = FONT_PREFIX.."spirequal" TheSim:AdjustFontAdvance(CHATFONT, -2.5) end local _UnregisterAllPrefabs = Sim.UnregisterAllPrefabs Sim.UnregisterAllPrefabs = function(self, ...) _UnregisterAllPrefabs(self, ...) ApplyLocalizedFonts() end local _RegisterPrefabs = ModManager.RegisterPrefabs ModManager.RegisterPrefabs = function(self, ...) _RegisterPrefabs(self, ...) ApplyLocalizedFonts() end local _Start = Start function Start(...) ApplyLocalizedFonts() return _Start(...) end