# 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 инвентаря и индекс слота