2024-06-16 16:36:30 +03:00

6.3 KiB

UI properties and methods

UI elements in scripts are accessed through a Document instance (document variable) by id specified in xml.

Example: print the pos property of an element with id: "worlds-panel" to the console:

print(document["worlds-panel"].pos)
-- or
local worldsPanel = document["worlds-panel"]
print(worldsPanel.pos)

The IDs of the elements are global for the document, that is, worlds-panel can be located either in the root element, and in a nested container.

The element id cannot be changed from a script.

The following tables will use abbreviated type descriptions, such as:

  • vec2 - an array of two numbers.
  • ivec2 - an array of two integers.
  • rgba - an array of four integers in the range [0..255] denoting RGBA constituent colors.

Element methods, according to OOP features in Lua, are called using the : operator instead of .

For example:

document["worlds-panel"]:clear()

General properties and methods

Properties that apply to all elements:

Title Type Reading Record Description
id string yes no element id
pos vec2 yes yes element position inside a container
wpos vec2 yes yes element position inside the window
size vec2 yes yes element size
interactive bool yes yes ability to interact with the element
enabled bool yes yes visually indicated version of interactive
visible bool yes yes element visibility
focused bool yes yes focus on element
color rgba yes yes element color
hoverColor rgba yes yes hover color
pressedColor rgba yes yes color when pressed
tooltip string yes yes tooltip text
tooltipDelay float yes yes tooltip delay

Common element methods:

Method Description
moveInto(container) moves the element to the specified container (the element is specified, not the id)
destruct() removes element

Containers

Common methods for containers (elements: container, panel, button, pagebox):

Method Description
clear() clears content
add(xml) adds an element, creating it using xml code. Example: container:add("<image src='test'/>")
setInterval(interval, callback) assigns a function to be executed repeatedly at an interval specified in milliseconds

Textbox

Properties:

Title Type Reading Record Description
text string yes yes entered text or placeholder
placeholder string yes yes placeholder (used if nothing has been entered)
caret int yes yes carriage position. textbox.caret = -1 will set the position to the end of the text
editable bool yes yes text mutability
multiline bool yes yes multiline support
textWrap bool yes yes automatic text wrapping (only with multiline: "true")
valid bool yes no is the entered text correct

Methods:

Method Description
paste(text) inserts the specified text at the caret position

Slider (trackbar)

Properties:

Title Type Reading Record Description
value float yes yes current value
min float yes yes minimum value
max float yes yes maximum value
step float yes yes division step
trackWidth float yes yes control element width
trackColor rgba yes yes control element color

Menu (pagebox)

Properties:

Title Type Reading Record Description
page string yes yes current page

Methods:

Method Description
back() switches to previous page
reset() resets page and switching history

Checkbox

Properties:

Title Type Reading Record Description
checked bool yes yes mark status

Button

Properties:

Title Type Reading Record Description
text string yes yes button text

Label

Properties:

Title Type Reading Record Description
text string yes yes label text

Image

Properties:

Title Type Reading Record Description
src string yes yes texture name

Inventory

Properties:

Title Type Reading Record Description
inventory int yes yes id of the inventory to which the element is bound