display_modpack/font_lib/API.md

2.5 KiB

Font Lib API

This document describes Font Lib API. Font Lib creates textures for font display on entities.

Provided methods

get_text_size

font_lib.get_text_size(font_name, text)

Computes size for a given font and text

font_name: Font name of registered font to use

text: Text to be rendered

Returns: rendered text width, height

make_line_texture

font_lib.make_line_texture(font_name, text, width, x, y)

Builds texture part for a text line

font_name: Font name of registered font to use

text: Text to be rendered

texturew: Width of the texture (extra text is not rendered)

x: Starting x position in texture

y: Vertical position of the line in texture

Returns: Texture string

make_multiline_texture

font_lib.make_multiline_texture(font_name, text, width, height, maxlines, valign, color)

Builds texture for a multiline colored text

font_name: Font name of registered font to use

text: Text to be rendered

texturew: Width of the texture (extra text will be truncated)

textureh: Height of the texture

maxlines: Maximum number of lines

valign: Vertical text align ("top", "bottom" or "center")

color: Color of the text

Returns: Texture string

register_font

font_lib.register_font(font_name, height, widths)

Registers a new font in font_lib.

font_name: Name of the font to register (this name will be used to address the font later)

height: Height of the font in pixels (all font textures should have the same height)

widths : An array containing the width of each font texture, indexed by its UTF code

All textures corresponding to the indexes in widths array should be present in textures directory with a name matching the pattern :

font_<font_name>_<utf_code>.png

<font_name>: Name of the font as given in the first argument

<utf_code>: UTF code of the char in 4 hexadecimal digits

To ease that declaration, a shell is provided to build a <font_name>.lua file from the texture files (see provided tools).

set_fallback_font

function font_lib.set_fallback_font(font_name)

Defines the fallback font to be used instead of given font if not registered.

font_name: Name of the font to be used as fallback font (has to be registered)

Provided tools

make_font_lua.sh

Still in early stage of development.

This script analyses textures in textures directory and creates a font_<font_name>.lua files with a call to register_font with images information.