Fix default font chosing when multiple fonts

This commit is contained in:
Pierre-Yves Rollo 2018-07-16 10:18:08 +02:00
parent fac6dfe1f8
commit 4b02cfdfca
3 changed files with 15 additions and 2 deletions

@ -44,7 +44,8 @@ function font_api.on_display_update(pos, objref)
if entity and ndef.display_entities[entity.name] then if entity and ndef.display_entities[entity.name] then
local def = ndef.display_entities[entity.name] local def = ndef.display_entities[entity.name]
local font = font_api.get_font(meta:get_string("font") or def.font_name) local font = font_api.get_font(meta:get_string("font") ~= ""
and meta:get_string("font") or def.font_name)
local maxlines = def.maxlines or 1 -- TODO:How to do w/o maxlines ? local maxlines = def.maxlines or 1 -- TODO:How to do w/o maxlines ?

@ -49,7 +49,17 @@ local function get_default_font()
end end
end end
-- If failed, choose first font -- If failed, choose first font without default = false
if default_font == nil then
for _, font in pairs(font_api.registered_fonts) do
if font.default then
default_font = font
break
end
end
end
-- If failed, chose first font
if default_font == nil then if default_font == nil then
for _, font in pairs(font_api.registered_fonts) do for _, font in pairs(font_api.registered_fonts) do
default_font = font default_font = font
@ -112,6 +122,7 @@ end
-- If registering different sizes of the same font, add size in the font name -- If registering different sizes of the same font, add size in the font name
-- (e.g. times_10, times_12...). -- (e.g. times_10, times_12...).
-- @param def font definition. A associative array with following keys : -- @param def font definition. A associative array with following keys :
-- @key default True (by default) if this font may be used as default font
-- @key height (mandatory) Height in pixels of all font textures -- @key height (mandatory) Height in pixels of all font textures
-- @key widths (mandatory) Array of character widths in pixels, indexed by -- @key widths (mandatory) Array of character widths in pixels, indexed by
-- UTF codepoints -- UTF codepoints

@ -14,6 +14,7 @@
font_api.register_font( font_api.register_font(
'metro', 'metro',
{ {
default = true,
margintop = 3, margintop = 3,
linespacing = -2, linespacing = -2,
height = 15, height = 15,