Настройки, ввод и данные
Три механизма решают разные задачи:
| Механизм | Для чего используется |
|---|---|
Config |
Настройки, которые пользователь меняет в интерфейсе модуля. |
InputActions |
Кнопки и другие действия управления. |
Storage |
Внутренние локальные данные между включениями модуля. |
Config: пользователь выбирает значение
Заголовок раздела «Config: пользователь выбирает значение»config.json содержит JSON-массив настроек:
[ { "label": "Show status", "key": "ShowStatus", "type": "bool", "value": true }, { "label": "Text size", "key": "TextSize", "type": "number", "value": 18, "min": 12, "max": 32 }]if Config.ShowStatus then ImGui:DrawText( "Active", Rect.new(20, 20, 180, 40), Config.TextSize, Color.new(1, 1, 1), TextAnchor.MiddleLeft )endНе используйте Config как хранилище: игра заново заполняет таблицу сохранёнными настройками после изменения UI.
InputActions: пользователь нажимает кнопку
Заголовок раздела «InputActions: пользователь нажимает кнопку»inputs.json:
{ "Actions": [ { "Name": "ToggleStatus", "Type": "Button", "Binding": { "Path": "<Keyboard>/f8" } } ]}main.lua:
local action = InputActions:FindAction("ToggleStatus")local visible = true
if action ~= nil then action:OnPerformed(function() visible = not visible end)endПроверяйте nil: действие с другим именем или неверным описанием не будет найдено.
Storage: модуль запоминает состояние
Заголовок раздела «Storage: модуль запоминает состояние»if Storage.StatusVisible == nil then Storage.StatusVisible = trueend
local visible = Storage.StatusVisible
local function Toggle() visible = not visible Storage.StatusVisible = visibleendfalse является допустимым значением, поэтому начальное состояние проверяется через == nil, а не if not ....
Что передавать в Reflex server
Заголовок раздела «Что передавать в Reflex server»Config, InputActions и Storage относятся к клиенту. Серверная часть получает собственный Config при загрузке, но не видит клиентский ввод и Storage.
Если серверу нужно актуальное клиентское состояние, отправьте небольшую проверенную таблицу через Network.
Подробности форматов: Config, InputAction и Storage.