feature-fonts #23

Merged
PeaAshMeter merged 6 commits from feature-fonts into main 2025-12-14 23:26:58 +03:00
Showing only changes of commit 5c1a0b0c19 - Show all commits

View File

@ -36,6 +36,7 @@ end
--- A singleton to handle fonts --- A singleton to handle fonts
--- @class FontManager --- @class FontManager
--- @field private _themes table --- @field private _themes table
--- @field defaultTheme string?
local FontManager = { local FontManager = {
_themes = {} _themes = {}
} }
@ -54,14 +55,14 @@ function FontManager.newFont(name, size)
end end
--- @param name string --- @param name string
--- @return TextTheme? --- @return FontManager
function FontManager:loadTheme(name) function FontManager:loadTheme(name)
self._themes[name] = theme.new( self._themes[name] = theme.new(
function(size) function(size)
return self.newFont(name, size) return self.newFont(name, size)
end end
) )
return self._themes[name] return self
end end
--- @param name string --- @param name string
@ -70,14 +71,20 @@ function FontManager:getTheme(name)
return self._themes[name] return self._themes[name]
end end
--- @return TextTheme
function FontManager:getDefaultTheme()
return self._themes[self.defaultTheme]
end
--- initial setup --- initial setup
--- @param defaultFontName string --- @param defaultFontName string
function FontManager:load(defaultFontName) function FontManager:load(defaultFontName)
local t = self:loadTheme(defaultFontName) local t = self:loadTheme(defaultFontName):getTheme(defaultFontName)
if not t then if not t then
print("[FontManager]: default font " .. defaultFontName .. " is missing") print("[FontManager]: default font " .. defaultFontName .. " is missing")
return self return self
end end
self.defaultTheme = defaultFontName
local f = t:getVariant("medium") local f = t:getVariant("medium")
love.graphics.setFont(f) love.graphics.setFont(f)