9.1 KiB
Digilines Touchscreen
The touchscreen is designed to be a customizable interface for input and display, it allows creating a custom formspec using a series of digiline commands, usually from a Luacontroller.
Commands
set
- Changes settings.
digiline_send("touchscreen", {
command = "set",
locked = false,
no_prepend = false,
real_coordinates = false,
fixed_size = false,
width = 10,
height = 8,
focus = "<name>",
})
add
- Adds an element, appending it after other elements.
digiline_send("touchscreen", {
command = "add",
element = "<element>",
})
insert
- Adds an element at a specific index.
digiline_send("touchscreen", {
command = "insert",
index = 1,
element = "<element>",
})
replace
- Replaces an existing element.
digiline_send("touchscreen", {
command = "replace",
index = 1,
element = "<element>",
})
remove
- Removes an element.
digiline_send("touchscreen", {
command = "remove",
index = 1,
})
clear
- Removes all elements, but keeps settings.
digiline_send("touchscreen", {
command = "clear",
})
Supported formspec elements
Standard elements:
tooltip
image
animated_image
model
item_image
bgcolor
background
background9
pwdfield
field
field_close_on_enter
textarea
label
hypertext
vertlabel
button
image_button
item_image_button
button_exit
image_button_exit
textlist
tabheader
box
dropdown
checkbox
style
style_type
Elements as settings:
size
no_prepend
real_coordinates
set_focus
Special elements:
tooltip_area
- Separate element for the alternate syntax oftooltip
.table
- Combination oftable
,tableoptions
andtablecolumns
.item_grid
- Helper for displaying a grid of item buttons or images.
Unsupported formspec elements
These elements, for design or other reasons, are not supported by the touchscreen:
formspec_version
position
anchor
container
container_end
scroll_container
scroll_container_end
scrollbar
scrollbaroptions
list
listring
listcolors
Formspec element reference
Example code for each of the supported formspec elements. For more details see the Minetest Lua API.
All values except command
and element
are optional, with default values being used when a value is nil or invalid.
tooltip
digiline_send("touchscreen", {
command = "add",
element = "tooltip",
element_name = "button",
tooltip_text = "tooltip",
bgcolor = "#303030",
fontcolor = "#ffffff",
})
tooltip_area
digiline_send("touchscreen", {
command = "add",
element = "tooltip_area",
X = 0,
Y = 0,
W = 100,
H = 100,
tooltip_text = "tooltip area",
bgcolor = "#303030",
fontcolor = "#ffffff",
})
image
digiline_send("touchscreen", {
command = "add",
element = "image",
X = 0,
Y = 0,
W = 1,
H = 1,
texture_name = "default_dirt.png",
})
animated_image
digiline_send("touchscreen", {
command = "add",
element = "animated_image",
X = 0,
Y = 0,
W = 1,
H = 1,
name = "animated_image",
texture_name = "default_lava_flowing_animated.png",
frame_count = 16,
frame_duration = 200,
frame_start = 1,
})
model
digiline_send("touchscreen", {
command = "add",
element = "model",
X = 0,
Y = 0,
W = 2,
H = 2,
name = "model",
mesh = "character.b3d",
textures = {character.png},
rotation_x = 0,
rotation_y = 0,
continuous = false,
mouse_control = true,
})
item_image
digiline_send("touchscreen", {
command = "add",
element = "item_image",
X = 0,
Y = 0,
W = 1,
H = 1,
item_name = "default:dirt_with_grass",
})
bgcolor
digiline_send("touchscreen", {
command = "add",
element = "bgcolor",
bgcolor = "#ffffff",
fullscreen = false,
fbgcolor = "",
})
background
digiline_send("touchscreen", {
command = "add",
element = "background",
X = 0,
Y = 0,
W = 0,
H = 0,
texture_name = "digistuff_ts_bg.png",
auto_clip = true,
})
background9
digiline_send("touchscreen", {
command = "add",
element = "background9",
X = 0,
Y = 0,
W = 0,
H = 0,
texture_name = "digistuff_ts_bg.png",
auto_clip = true,
middle = 3,
})
pwdfield
digiline_send("touchscreen", {
command = "add",
element = "pwdfield",
X = 0,
Y = 0,
W = 3,
H = 0.8,
name = "pwdfield",
label = "",
})
field
digiline_send("touchscreen", {
command = "add",
element = "field",
X = 0,
Y = 0,
W = 3,
H = 0.8,
name = "field",
label = "field",
default = "",
})
field_close_on_enter
digiline_send("touchscreen", {
command = "add",
element = "field_close_on_enter",
name = "field",
close_on_enter = true,
})
textarea
digiline_send("touchscreen", {
command = "add",
element = "textarea",
X = 0,
Y = 0,
W = 4,
H = 3,
name = "textarea",
label = "",
default = "",
})
label
digiline_send("touchscreen", {
command = "add",
element = "label",
X = 0,
Y = 0,
label = "label",
})
hypertext
digiline_send("touchscreen", {
command = "add",
element = "hypertext",
X = 0,
Y = 0,
W = 4,
H = 3,
name = "hypertext",
text = "<i>hypertext</i>",
})
vertlabel
digiline_send("touchscreen", {
command = "add",
element = "vertlabel",
X = 0,
Y = 0,
label = "vertlabel",
})
button
digiline_send("touchscreen", {
command = "add",
element = "button",
X = 0,
Y = 0,
W = 3,
H = 0.8,
name = "button",
label = "button",
})
image_button
digiline_send("touchscreen", {
command = "add",
element = "image_button",
X = 0,
Y = 0,
W = 1,
H = 1,
texture_name = "default_stone_block.png",
name = "image_button",
label = "button",
noclip = true,
drawborder = true,
pressed_texture_name = "",
})
item_image_button
digiline_send("touchscreen", {
command = "add",
element = "item_image_button",
X = 0,
Y = 0,
W = 1,
H = 1,
item_name = "default:stone_block",
name = "item_image_button",
label = "",
})
button_exit
digiline_send("touchscreen", {
command = "add",
element = "button_exit",
X = 0,
Y = 0,
W = 3,
H = 0.8,
name = "button_exit",
label = "button",
})
image_button_exit
digiline_send("touchscreen", {
command = "add",
element = "image_button_exit",
X = 0,
Y = 0,
W = 1,
H = 1,
texture_name = "default_mese_block.png",
name = "image_button_exit",
label = "button",
})
textlist
digiline_send("touchscreen", {
command = "add",
element = "textlist",
X = 0,
Y = 0,
W = 4,
H = 3,
name = "textlist",
listelements = {"a", "b", "c"},
selected_id = 0,
transparent = false,
})
tabheader
digiline_send("touchscreen", {
command = "add",
element = "tabheader",
X = 0,
Y = 0,
name = "tabheader",
captions = {"a", "b", "c"},
current_tab = 0,
transparent = false,
draw_border = false,
})
box
digiline_send("touchscreen", {
command = "add",
element = "box",
X = 0,
Y = 0,
W = 1,
H = 1,
color = "#ffffff",
})
dropdown
digiline_send("touchscreen", {
command = "add",
element = "dropdown",
X = 0,
Y = 0,
W = 3,
H = 0.8,
name = "dropdown",
choices = {"a", "b", "c"},
selected_id = 0,
index_event = false,
})
checkbox
digiline_send("touchscreen", {
command = "add",
element = "checkbox",
X = 0,
Y = 0,
name = "checkbox",
label = "checkbox",
selected = false,
})
style
digiline_send("touchscreen", {
command = "add",
element = "style",
selectors = {
"button_name",
},
properties = {
border = false,
},
})
style_type
digiline_send("touchscreen", {
command = "add",
element = "style_type",
selectors = {
"button",
},
properties = {
border = false,
},
})
table
digiline_send("touchscreen", {
command = "add",
element = "table",
X = 0,
Y = 0,
W = 4,
H = 3,
name = "table",
cells = {"a", "b", "c"},
selected_id = 0,
color = "#ffffff",
background = "#000000",
border = true,
highlight = "#466432",
highlight_text = "#ffffff",
opendepth = 0,
columns = {
{type = "text", align = "center"},
},
})
item_grid
W
andH
are the size of the grid in number of items.name
is a prefix for the buttons, which are numbered with their index. (e.g.grid_1
,grid_2
, ...)size
is the size of the buttons. Used for width and height.spacing
is the space between buttons. Used for vertical and horizontal spacing.interactable
determines whether buttons or images are used.offset
is for paginating the list of items.
digiline_send("touchscreen", {
command = "add",
element = "item_grid",
X = 0,
Y = 0,
W = 1,
H = 1,
name = "grid",
spacing = 0,
size = 1,
interactable = true,
items = {
"default:dirt 99",
},
offset = 1,
})