16 KiB
XML разметка интерфейса
См. также ui элементы в скриптинге.
Специфические типы
2D вектор - пара чисел, разделенная запятой. Примеры:
"500,200""0.4,53.01""0,0"
3D вектор - три числа, разделенная запятой. Примеры:
"60,30,53""0.4,0.1,0.753"
4D вектор - четыре числа, разделенная запятой. Примеры:
"10,5,10,3""0.1,0.5,0.0,0.0"
RGBA цвет - на данный момент доступна только HEX запись. Примеры:
"#FF8000"- оранжевый непрозрачный"#FFFFFF80"- белый полупрозрачный"#000000FF"- черный непрозрачный
Общие атрибуты элементов
enabled- при значении false блокирует элемент, в отличие от interactive, обозначая это состояние визуально.id- идентификатор элемента. Тип: строка.pos- позиция элемента. Тип: 2D вектор.size- размер элемента. Тип: 2D вектор.context- указывает контекст перевода для@-строк.color- цвет элемента. Тип: RGBA цвет.hover-color- цвет элемента при наведении курсора. Тип: RGBA цвет.pressed-color- цвет элемента при нажатии на элемент. Тип: RGBA цвет.margin- внешний отступ элемента. Тип: 4D вектор. Порядок:"left,top,right,bottom"visible- видимость элемента. Тип: логический ("true"/"false").min-size- минимальный размер элемента. Тип: 2D вектор.position-func- поставщик позиции элемента (два числа), вызываемый при изменении размера контейнера, в котором находится элемент, либо при добавлении элемента в контейнер. Может быть вызван до вызова on_hud_open.size-func- поставщик размера элемента (два числа), вызываемый при изменении размера контейнера, в котором находится элемент, либо при добавлении элемента в контейнер. Может быть вызван до вызова on_hud_open.onclick- lua функция вызываемая при нажатии на элемент.ondoubleclick- lua функция вызываемая при двойном нажатии на элемент.onfocus- lua функция вызываемая при фокусировке на элемент.ondefocus- lua функция вызываемая при потере фокуса элеметом.onmouseover- lua функция вызываемая при входе курсора в элемент.onmouseover- lua функция вызываемая при выходе курсора из элемента.tooltip- текст всплывающей подсказкиtooltip-delay- задержка появления всплывающей подсказкиgravity- автоматическое позиционирование элемента в контейнере. (Не работает в автоматических контейнерах, как panel). Значения: top-left, top-center, top-right, center-left, center-center, center-right, bottom-left, bottom-center, bottom-right.z-index- определяет порядок элементов, при большем значении будет перекрывать элементы с меньшим.interactive- при значении false наведение на элемент и все под-элементы будет игнорироваться.cursor- курсор, отображаемый при наведении на элемент (arrow/text/pointer/crosshair/ew-resize/ns-resize/...).
Атрибуты шаблонов
ifпри значениях ('', 'false', 'nil') элемент будет проигнорирован, включая под-элементы.ifnotто же, что иif, но с обратным условием.
Общие атрибуты контейнеров
В число контейнеров также входят панели и кнопки.
scrollable- возможность скроллинга. Тип: логический.scroll-step- шаг скроллинга. Тип: целочисленный.
Общие атрибуты панелей
В число панелей также входят кнопки.
padding- внутренний отступ элемента. Тип: 4D вектор. Порядок:"left,top,right,bottom"max-length- максимальная длина, на которую растягивается панель до начала скроллинга (если scrollable = true). Тип: число.min-length- минимальная длина панели. Тип: число.orientation- ориентация панели: horizontal/vertical.interval- пространство между элементами. Тип: число.
Основные элементы
Контейнер - container
Примитивный контейнер.
Используйте статические позиции / gravity / скрипт для позиционирования элементов.
Панель - panel
Простая панель. Располагает элементы в порядке, определяемом атрибутом orientation, подгоняя ширину (вертикальная) или высоту (горизонтальная) к своим.
Разделитель - splitbox
Панель управляющая размерами и позицией двух элементов. Позволяет пользователю двигать разделитель, меняя размер элементов.
split-pos- начальная позиция разделителя от 0.0 до 1.0.
Кнопка - button
Внутренний текст - текст кнопки.
text-align- выравнивание текста ("left", "center" или "right"). Тип: строка.
Флажок - checkbox
checked- определяет состояние отметки.supplier- поставщик состояния отметки (вызывается каждый кадр)consumer- lua функция-приемник состояния отметки.
Метка - label
valign- вертикальное выравнивание текста: top/center/bottomsupplier- поставщик текста (вызывается каждый кадр)autoresize- автоматическое изменение размера элемента (по-умолчанию - false). Не влияет на размер шрифта.multiline- разрешает отображение многострочного текста.text-wrap- разрешает автоматический перенос текста (работает только при multiline: "true")markup- язык разметки текста ("md" - Markdown).
Изображение - image
src- имя изображения в папке textures без указания расширения. Тип: строка. Напримерgui/errorregion- под-регион изображения x1, y1, x2, y2 от 0.0, 0.0 (левый верхний угол), 1.0, 1.0 (правый нижний угол)
Холст - canvas
- Нет дополнительных свойств
Текстовое поле - textbox
Внутренний текст - изначально введенный текст
placeholder- текст подстановки (используется если текстовое поле пусто)hint- текст, отображаемый, если текстовое поле пусто (не отправляется в consumer, sub-consumer и validator).supplier- поставщик текста (вызывается каждый кадр)consumer- lua функция-приемник введенного текста. Вызывается только при завершении вводаsub-consumer- lua функция-приемник вводимого текста. Вызывается во время ввода или удаления текста.oncontrolkey- lua функция вызываемая для сочетаний вида (Ctrl + ?). На вход подаётся числовой код второй клавиши. Код клавиши для сравнения можно получить черезinput.keycode("имя_клавиши")autoresize- автоматическое изменение размера элемента (по-умолчанию - false). Не влияет на размер шрифта.multiline- разрешает отображение многострочного текста.text-wrap- разрешает автоматический перенос текста (работает только при multiline: "true")editable- определяет возможность редактирования текста.line-numbers- включает отображение номеров строк.keep-line-selection- продолжать отображать выбранную строку при потере фокуса.error-color- цвет при вводе некорректных данных (текст не проходит проверку валидатора). Тип: RGBA цвет.text-color- цвет текста. Тип: RGBA цвет.validator- lua функция, проверяющая текст на корректность. Принимает на вход строку, возвращает true если текст корректен.onup- lua функция вызываемая при нажатии стрелки вверх.ondown- lua функция вызываемая при нажатии стрелки вниз.syntax- подстветка синтаксиса ("lua" - Lua).markup- язык разметки текста ("md" - Markdown).
Ползунок - trackbar
min- минимальное значение. Тип: число. По-умолчанию: 0max- максимальное значение. Тип: число. По-умолчанию: 1value- изначальное значение. Тип: число. По-умолчанию: 0step- размер деления ползунка. Тип: число. По-умолчанию: 1track-width- ширина указателя (в пикселях). Тип: число. По-умолчанию: 12track-color- цвет указателя при наведении курсора. Тип: RGBA цвет.consumer- lua функция-приемник установленного значенияsub-consumer- lua функция-приемник промежуточных значений (используйте для обновления текста приchange-on-release="true")supplier- lua функция-поставщик значенияchange-on-release- Вызов функции-приемника (consumer) происходит только тогда, когда пользователь отпускает указатель. Тип: логический. По-умолчанию: false
Рамка встраивания - iframe
Контейнер для встраивания внешнего документа. Масштабирует содержимое под свой размер.
src- id документа в форматепак:имя(пак/layouts/имя.xml)
Меню выбора - select
Раскрывающийся список. Опции описываются под-элементами option, атрибут value которых содержит значение, внутренний текст - текст отображаемый в UI.
Пример описания списка:
<select selected="entity" width="200"
onselect="function(opt) print(opt) end">
<option value="block">Блок</option>
<option value="item">Предмет</option>
<option value="entity">Сущность</option>
</select>
width- минимальная ширина содержимого. По-умолчанию: 100.selected- изначально выбранное значение. По-умолчанию: "".onselect- функция, в которую передаётся выбранное пользователем значение
Элементы инвентаря
Инвентарь - inventory
Элемент является контейнером. На данный момент не имеет специфических атрибутов.
Warning
Расположение инвентарей управляется движком и не может быть изменено свойствами pos, margin и т.д.
Одиночный слот - slot
Элемент должен находиться внутри inventory элемента, без посредников.
index- индекс слота инвентаря. (Нумерация с 0)item-source- включает поведение подобное панели контента. Тип: логическийsharefunc- lua событие вызываемое при использовании ЛКМ + Shift. Передается id инвентаря и индекс слотаupdatefunc- lua событие вызываемое при изменении содержимого слотаonrightclick- lua событие вызываемое при использовании ПКМ. Передается id инвентаря и индекс слотаtaking- возможность взять предмет из слота.placing- возможность положить предмет в слот.
Сетка слотов - slots-grid
Элемент должен находиться внутри inventory элемента, без посредников.
start-index- индекс первого слотаrows- число рядов (не указывается, если указано cols).cols- число столбцов (не указывается, если указано rows).count- общее число слотов (не указывается, если указаны rows и cols).interval- интервал между слотами. Тип: число.padding- отступ вокруг решетки слотов. Тип: число. (атрибут будет удален)sharefunc- lua событие вызываемое при использовании ЛКМ + Shift. Передается id инвентаря и индекс слотаupdatefunc- lua событие вызываемое при изменении содержимого слотаonrightclick- lua событие вызываемое при использовании ПКМ. Передается id инвентаря и индекс слотаtaking- возможность взять предмет из слота.placing- возможность положить предмет в слот.