- 6
- 59
Moon Imgui Addons
Привет! Уже на протяжении полугода лежит в тёмном ящике этот проект, поэтому пустим его в свет, может, пригодится новичкам в lua.
Данная библиотека собирает несколько полезных (или не очень) элементов для mimgui в одну общую библиотеку для того, чтобы всем облегчить жизнь😄
Так-же, плюсом предоставляю демо-скрипт, в котором подробно рассказано о каждом элементе библиотеки (Активация: F2)
Установка библиотеки:
- Cохранить ADDONS.lua в
GTA/moonloader/lib
Вызывается как самая обычная библиотека через:
Lua:
local addons = require "ADDONS"
А вот примеры всех элементов из этой библиотеки:
( Сразу если что извиняюсь за качество GIF-ок )
- Описание: Кастомные кнопки с красивыми анимациями
Использование:
Lua:addons.MaterialButton(string str_id, ImVec2 size, float duration)-- and addons.AnimButton(string label, ImVec2 size, float duration)
-
Описание: Кнопка с возможностью сделать её не активной
Использование:
Lua:addons.StateButton(bool state, ...) -- где ... это аргументы стандартной imgui-кнопки
- Описание: Кнопка в двух состояниях: включена и выключена
Использование:
Lua:addons.ToggleButton(string str_id, ImBool value)
- Описание: Кнопка закрытия окна
Использование:
Lua:addons.CloseButton(string str_id, ImBool value, ImVec2 size, float rounding)
- Описание: Кнопки для переходов между чем-либо
Использование:
Lua:addons.HeaderButton(bool state, string str_id)
- Описание: Кнопки для переходов между чем-либо
Использование:
Lua:addons.PageButton(bool state, string (FA Icon) icon, string name, float but_wide)
-
Описание: Подсказка при наведении на предыдущий элемент
Использование:
Lua:addons.Hint(string str_id, string hint_text, ImVec4 color, bool no_center)
- Описание: Функция для выравнивания текста
Использование:
Lua:addons.AlignedText(string text, int align, ImVec4 color) -- aligns: 1(left); 2(centre); 3(right)
- Описание: Круговой прогресс-бар
Использование:
Lua:addons.CircularProgressBar(int value, float radius, float thickness, string format)
- Описание: Превью изображения, при нажатии на которое открывается изображение в полном размере
Использование:
Lua:addons.Picture(string str_id, ImTextureID image, ImVec2 size, float mult, string hint)
Помимо этих элементов в библиотеке присутствуют функции для упрощения действий при работе с Imgui
Вот их полный список:
Lua:
float value = addons.limit(float value, float min, float max)
-- Функция, которая устанавливает "рамки" для входящего в неё числа.
-- Например если число (1-ый аргумент) будет больше max, то вернётся max, аналогично с min
ImVec4 value = addons.bringVec4To(ImVec4 from, ImVec4 dest, float start_time, float duration)
ImVec2 value = addons.bringVec2To(ImVec2 from, ImVec2 dest, float start_time, float duration)
float value = addons.bringFloatTo(float from, float dest, float start_time, float duration)
-- Функции для плавного перехода от одного значения к другому
-- Подробнее тут: https://www.blast.hk/threads/13380/post-793501
Bool bool = addons.isPlaceHovered(ImVec2 a, ImVec2 b)
-- Проверка находится ли курсор в указанной области экрана
ImVec4 color = addons.getContrastColor(ImVec4 bg_col, ImVec4 col_1, ImVec4 col_2)
-- Получение нужного цвета текста в зависимости от цвета фона
-- Например что бы на чёрном фоне был белый текст, а не белом - чёрный
ImVec4 color = addons.set_alpha(ImVec4 color, float alpha)
-- Получение цвета с нужной прозрачностью
Автор: @Cosmo
Идейный вдохновитель: @jr.quintero