aboutsummaryrefslogtreecommitdiff
path: root/font_api
diff options
context:
space:
mode:
authorPierre-Yves Rollo <dev@pyrollo.com>2018-07-13 20:41:53 +0200
committerPierre-Yves Rollo <dev@pyrollo.com>2018-07-13 20:41:53 +0200
commit8c7557e45d4744fe35ad058950062cf771640126 (patch)
treebb9de2617cafe919c1176334182a4d1a59bbfbc0 /font_api
parente51afb851c996ad60d59b2c1f3e608b0d9b50864 (diff)
downloaddisplay_modpack-8c7557e45d4744fe35ad058950062cf771640126.tar.gz
display_modpack-8c7557e45d4744fe35ad058950062cf771640126.tar.bz2
display_modpack-8c7557e45d4744fe35ad058950062cf771640126.zip
Rework all nodes displaying text according to new font_api
Diffstat (limited to 'font_api')
-rw-r--r--font_api/font.lua16
-rw-r--r--font_api/init.lua12
2 files changed, 15 insertions, 13 deletions
diff --git a/font_api/font.lua b/font_api/font.lua
index 6c848f6..4619e7a 100644
--- a/font_api/font.lua
+++ b/font_api/font.lua
@@ -17,11 +17,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
--]]
-
---[[
- Margins, spacings, can be negative numbers
-]]--
-
-- Local functions
------------------
@@ -146,10 +141,10 @@ function font_api.Font:get_height(nb_of_lines)
return
(
(self.height or 0) +
- (self.margin_top or 0) +
- (self.margin_bottom or 0)
+ (self.margintop or 0) +
+ (self.marginbottom or 0)
) * nb_of_lines +
- (self.line_spacing or 0) * (nb_of_lines -1)
+ (self.linespacing or 0) * (nb_of_lines -1)
else
return nb_of_lines == 0 and 0 or nil
end
@@ -192,6 +187,7 @@ function font_api.Font:make_line_texture(line, texturew, x, y)
-- Replace chars with no texture by the NULL(0) char
if self.widths[char] == nil
+or char == 88
then
print(string.format("["..font_api.name
.."] Missing char %d (%04x)",char,char))
@@ -243,6 +239,8 @@ function font_api.Font:make_text_texture(text, texturew, textureh, maxlines,
y = (textureh - textheight) / 2
end
end
+
+ y = y + (self.margintop or 0)
for _, line in pairs(lines) do
if halign == "left" then
@@ -259,7 +257,7 @@ function font_api.Font:make_text_texture(text, texturew, textureh, maxlines,
(texturew - line.width) / 2, y)
end
- y = y + self:get_height() + (self.line_spacing or 0)
+ y = y + self:get_height() + (self.linespacing or 0)
end
texture = string.format("[combine:%dx%d", texturew, textureh)..texture
diff --git a/font_api/init.lua b/font_api/init.lua
index 2dc38ec..06619be 100644
--- a/font_api/init.lua
+++ b/font_api/init.lua
@@ -45,10 +45,14 @@ function font_api.on_display_update(pos, objref)
if entity and ndef.display_entities[entity.name] then
local def = ndef.display_entities[entity.name]
local font = font_api.get_font(meta:get_string("font") or def.font_name)
- objref:set_properties({
- textures={font:make_text_texture(text,
- def.size.x * def.resolution.x * font.height,
- def.size.y * def.resolution.y * font.height,
+
+ local maxlines = def.maxlines or 1 -- TODO:How to do w/o maxlines ?
+
+ objref:set_properties({
+ textures={font:make_text_texture(text,
+ font:get_height(maxlines) * def.size.x / def.size.y
+ / (def.aspect_ratio or 1),
+ font:get_height(maxlines),
def.maxlines, def.halign, def.valign, def.color)},
visual_size = def.size
})