Дизайнер
-
Автор темы
- #1
✦ pui – perfect user interface
pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".
главные особенности
это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.
ссылка на библиотеку
документация
pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".
главные особенности
- встроенная CFG-система.
- система "зависимостей" – идеально для создания кастомных табов.
- полная совместимость с дефолтным ui (смело можете делать так:
local ui = require "neverlose/pui"
). - всё, что вам потребуется, можно объявить при вызове самого элемента.
- сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
- оптимизация – используйте значения элементов не вызывая тяжелые функции.
- автоматический подгон текстур под DPI скейл
- и многое другое...
конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
и запустим кфг систему:
(также вы можете сделать все сразу:)
самое сложное позади. теперь вы можете использовать кфг-систему.
давайте сохраним наши контролы:
и загрузим:
как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.
все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
local menu = {
rage = {
double_tap = pui.switch("rage", "double tap", false, nil, function (group)
return {
ticks = group:slider("ticks", 0, 14, 12)
}
end)
},
visuals = {
night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
},
antiaim = {
enable = pui.switch("anti-aim", "enable aa"),
default = {
yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
return {
backstab = group:switch("avoid backstab")
}
end)
}
}
}
code_language.lua:
pui.setup(menu)
code_language.lua:
local menu = pui.setup({
...
})
самое сложное позади. теперь вы можете использовать кфг-систему.
давайте сохраним наши контролы:
сохраняем и json'им конфиг:
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
загружаем:
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг
как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.
все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
local config = pui.save("antiaim", "default")
pui.load(config)
-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
и вот результат:
теперь подробнее об этом.
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
local group = pui.create("\f<cog> Settings")
group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beautiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beautiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beautiful four-way gradient]")
теперь подробнее об этом.
\r
- сброс цвета. то же самое, что и \aDEFAULT, но короче.\v
- акцентный цвет. берется из темы чита, а точнее link-active\f<иконка>
- иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.\bЦВЕТ\bЦВЕТ...[строка]
- градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
совместимость и гибкость
вот несколько примеров использования pui:
как видите, комбинаций много.
вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
должно сработать. тесты будут проведены чуть позже.
вот несколько примеров использования pui:
Код:
local group = pui.create("group")
group:label("label")
pui.label("group", "label")
local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")
-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл
вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
таким образом, вы можете создать кастомную таб-систему.
вот небольшой пример:
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.
element:depend(...)
- это функция, позволяющая вам создавать визуальные зависимости с другими элементами.таким образом, вы можете создать кастомную таб-систему.
вот небольшой пример:
label:depend:
local group = pui.create("group", "ff", 1)
local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"
label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.
это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.
используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.
ссылка на библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
документация
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: