add{type=…, name=…, style=…} → LuaGuiElement | Add a child element. |
clear() | Remove children of this element. |
destroy() | Remove this element, along with its children. |
clear_items() | Clears the items in this dropdown. |
get_item(index) → LocalisedString | Gets an item at the given index from this dropdown. |
set_item(index, LocalisedString) | Sets an item at the given index in this dropdown. |
add_item(LocalisedString, index) | Adds an item at the end or at the given index in this dropdown. |
remove_item(index) | Removes an item at the given index in this dropdown. |
gui :: LuaGui [R] | The GUI this element is a part of. |
parent :: LuaGuiElement [R] | The direct parent of this element; nil if this is a top-level element. |
name :: string [R] | The name of this element. |
caption :: LocalisedString [RW] | The text displayed on the element. |
value :: double [RW] | How much this progress bar is filled. |
direction :: string [RW] | Direction of the layout. |
style :: LuaStyle or string [RW] | The style of this element. |
text :: string [RW] | The text contained in a textfield or text-box. |
children_names :: array of string [R] | Names of all the children of this element. |
state :: boolean [RW] | Is this checkbox checked? |
player_index :: uint [R] | Index into LuaGameScript::players specifying the player who owns this element. |
sprite :: SpritePath [RW] | Path the the image to display on this sprite-button. |
tooltip :: LocalisedString [RW] | |
vertical_scroll_policy :: string [RW] | Allowed values are: "always", "never", or "auto" |
horizontal_scroll_policy :: string [RW] | Allowed values are: "always", "never", or "auto" |
type :: string [R] | The type of this GUI element. |
children :: array of LuaGuiElement [R] | The children elements |
items :: array of LocalisedString [RW] | The items in this dropdown. |
selected_index :: uint [RW] | The selected index for this dropdown. |
single_line :: boolean [RW] | If this label should render its contents on single line or multiple based off the max width of the label. |
want_ellipsis :: boolean [RW] | If this label text should render text outside the label area as ". |
position :: Position [RW] | The position this camera is focused on. |
surface_index :: uint [RW] | The surface index this camera is using. |
zoom :: double [RW] | The zoom this camera is using. |
elem_type :: string [R] | The elem type of this choose-elem-button. |
elem_value :: string or SignalID [RW] | The elem value of this choose-elem-button or nil if there is no value. |
selectable :: boolean [RW] | If the contents of this text-box are selectable. |
word_wrap :: boolean [RW] | If this text-box will word-wrap automatically. |
read_only :: boolean [RW] | If this text-box is read-only. |
enabled :: boolean [RW] | If this GUI element is enabled. |
valid :: boolean [R] | Is this object valid? |
help() → string | All methods, and properties that this object supports. |
An element of the custom GUI. This type is used to represent any kind of a GUI element -- labels as well
as buttons as well as frames are all instances of this type. Just like LuaEntity, different kinds
of elements support different attributes; attempting to access an attribute on an element that doesn't support
it (for instance, trying to access the value
of a text field) will result in a run-time error.
The following kinds of GUI elements are supported:
"button"
: Clickable elements that fire on_gui_click when clicked."sprite-button"
: A button that displays an image rather than text."checkbox"
: Clickable elements with a cross in the mdidle that can be turned off or on. They also
fire on_gui_click when clicked."flow"
: Invisible containers that lay out children either horizontally or vertically. All three root
GUI elements (top
, left
and center
; see LuaGui) are flows."frame"
: Grey semi-transparent boxes that contain other elements. They have a caption, and, just
like flows, they lay out children either horizontally or vertically."label"
: A piece of text."progressbar"
: Indicate progress by displaying a partially filled bar."table"
: An invisible container that lays out children in a specific number of columns.
Column width is given by the largest element contained in that row."textfield"
: Boxes of text the user can type in."radiobutton"
: Identical to checkbox except circular."sprite"
: An element that shows an image."scroll-pane"
: Similar to a flow but includes the ability to show and use scroll bars."drop-down"
: A drop down list of other elements."camera"
: A camera that shows the game at the given position on the given surface."choose-elem-button"
: A button that lets the player pick one of an: item, entity, tile, or signal similar to the filter-select window."text-box"
: A multi-line text box that supports selection and copy-paste. Each GUI element allows access to its children by having them as attributes. Thus, one can use the
parent.child
syntax to refer to children. Lua also supports the parent["child"]
syntax to refer to the
same element. This can be used in cases where the child has a name that isn't a valid Lua identifier.
greeting
to the top flow. Immediately after, it will change its text
to illustrate accessing child elements.
game.player.gui.top.add{type="label", name="greeting", caption="Hi"}
game.player.gui.top.greeting.caption = "Hello there!"
game.player.gui.top["greeting"].caption = "Actually, nevermind, I don't like your face"
Add a child element.
"button"
, "sprite-button"
,
"checkbox"
, "flow"
, "frame"
, "label"
, "table"
, "progressbar"
, "textfield"
, "radiobutton"
, "sprite"
, "scroll-pane"
, "camera"
, "drop-down"
, or "text-box"
.type
Remove children of this element. Any LuaGuiElement objects referring to the destroyed elements become invalid after this operation.
game.player.gui.top.clear()
Remove this element, along with its children. Any LuaGuiElement objects referring to the destroyed elements become invalid after this operation.
game.player.gui.top.greeting.destroy()
Clears the items in this dropdown.
Gets an item at the given index from this dropdown.
Sets an item at the given index in this dropdown.
Adds an item at the end or at the given index in this dropdown.
Removes an item at the given index in this dropdown.
The GUI this element is a part of.
The direct parent of this element; nil
if this is a top-level element.
The name of this element.
game.player.gui.top.greeting.name == "greeting"
The text displayed on the element. For frames, this is the "heading". For other elements, like buttons or labels, this is the content.
How much this progress bar is filled. It is a value in range [0, 1].
Direction of the layout. May be either "horizontal"
or "vertical"
.
The style of this element. When read, this evaluates to a LuaStyle. For writing, it only accepts a string that specifies the textual identifier of the desired style.
The text contained in a textfield or text-box.
Names of all the children of this element. These are the identifiers that can be used to access the child as an attribute of this element.
Is this checkbox checked?
Index into LuaGameScript::players specifying the player who owns this element.
Path the the image to display on this sprite-button.
Allowed values are: "always", "never", or "auto"
Allowed values are: "always", "never", or "auto"
The type of this GUI element.
The children elements
The items in this dropdown.
The selected index for this dropdown. 0 if none.
If this label should render its contents on single line or multiple based off the max width of the label.
If this label text should render text outside the label area as "...".
The position this camera is focused on.
The surface index this camera is using.
The zoom this camera is using.
The elem type of this choose-elem-button.
The elem value of this choose-elem-button or nil
if there is no value.
If the contents of this text-box are selectable.
If this text-box will word-wrap automatically.
If this text-box is read-only.
If this GUI element is enabled.