Files
VoxelEngine/doc/ru/5.XML-разметка-интерфейса.md
T

113 lines
6.6 KiB
Markdown

# XML разметка интерфейса
# Специфические типы
**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"` - черный непрозрачный
# Общие атрибуты элементов
- `id` - идентификатор элемента. Тип: строка.
- `pos` - позиция элемента. Тип: 2D вектор.
- `size` - размер элемента. Тип: 2D вектор.
- `color` - цвет элемента. Тип: RGBA цвет.
- `margin` - внешний отступ элемента. Тип: 4D вектор.
Порядок: `"left,top,right,bottom"`
- `visible` - видимость элемента. Тип: логический ("true"/"false").
- `position-func` - поставщик позиции элемента (два числа), вызываемый при изменении размера контейнера, в котором находится элемент, либо при добавлении элемента в контейнер. Может быть вызван до вызова on_hud_open.
# Общие атрибуты контейнеров
В число контейнеров также входят панели и кнопки.
- `padding` - внутренний отступ элемента. Тип: 4D вектор.
Порядок: `"left,top,right,bottom"`
- `scrollable` - возможность скроллинга. Работает только у Panel. Тип: логический.
# Общие атрибуты панелей
В число панелей также входят кнопки.
- `max-length` - максимальная длина, на которую растягивается панель до начала скроллинга (если scrollable = true). Тип: число
# Основные элементы
## Кнопка `button`
Внутренний текст - текст кнопки.
- `text-align` - выравнивание текста ("left", "center" или "right"). Тип: строка.
- `onclick` - lua функция вызываемая при нажатии на кнопку.
## Изображение `image`
- `src` - имя изображения в папке textures без указания расширения. Тип: строка. Например `gui/error`
## Изображение `image`
- `src` - имя изображения в папке textures без указания расширения. Тип: строка. Например `gui/error`
# Текстовое поле `textbox`
Внутренний текст - изначально введенный текст
- `placeholder` - текст подстановки (используется текстовое поле пусто)
- `consumer` - lua функция-приемник введенного текста. Вызывается только при завершении ввода
## Ползунок `trackbar`
- `min` - минимальное значение. Тип: число. По-умолчанию: 0
- `max` - максимальное значение. Тип: число. По-умолчанию: 1
- `value` - изначальное значение. Тип: число. По-умолчанию: 0
- `step` - размер деления ползунка. Тип: число. По-умолчанию: 1
- `track-width` - ширина указателя (в делениях). Тип: число. По-умолчанию: 1
- `consumer` - lua функция-приемник установленного значения
- `supplier` - lua функция-поставщик значения
# Элементы инвентаря
## Инвентарь `inventory`
Элемент является контейнером. На данный момент не имеет специфических атрибутов.
> [!WARNING]
> Расположение инвентарей управляется движком и не может быть изменено свойствами pos, margin и т.д.
## Одиночный слот `slot`
Элемент должен находиться внутри `inventory` элемента, без посредников.
- `index` - индекс слота инвентаря. (Нумерация с 0)
- `item-source` - включает поведение подобное панели контента. Тип: логический
- `sharefunc` - lua событие вызываемое при использовании ЛКМ + Shift. Передается id инвентаря и индекс слота
- `updatefunc` - lua событие вызываемое при изменении содержимого слота
- `onrightclick` - lua событие вызываемое при использовании ПКМ. Передается id инвентаря и индекс слота
## Решетка слотов `slots-grid`
Элемент должен находиться внутри `inventory` элемента, без посредников.
- `start-index` - индекс первого слота
- `rows` - число рядов (не указывается, если указано cols).
- `cols` - число столбцов (не указывается, если указано rows).
- `count` - общее число слотов (не указывается, если указаны rows и cols).
- `interval` - интервал между слотами. Тип: число.
- `padding` - отступ вокруг решетки слотов. Тип: число. (*атрибут будет удален*)
- `sharefunc` - lua событие вызываемое при использовании ЛКМ + Shift. Передается id инвентаря и индекс слота
- `updatefunc` - lua событие вызываемое при изменении содержимого слота
- `onrightclick` - lua событие вызываемое при использовании ПКМ. Передается id инвентаря и индекс слота