diff --git a/vmf/scripts/mods/vmf/modules/core/keybindings.lua b/vmf/scripts/mods/vmf/modules/core/keybindings.lua index b6fd7b6..2db74ef 100644 --- a/vmf/scripts/mods/vmf/modules/core/keybindings.lua +++ b/vmf/scripts/mods/vmf/modules/core/keybindings.lua @@ -287,7 +287,7 @@ function vmf.generate_keybinds() for mod, mod_keybinds in pairs(_raw_keybinds_data) do for _, raw_keybind_data in pairs(mod_keybinds) do - local keys = raw_keybind_data[4] + local keys = raw_keybind_data.keys local primary_key = keys[1] local modifier_keys = {} for i = 2, #keys do @@ -296,15 +296,15 @@ function vmf.generate_keybinds() local keybind_data = { mod = mod, - global = raw_keybind_data[1], - trigger = raw_keybind_data[2], - type = raw_keybind_data[3], + global = raw_keybind_data.global, + trigger = raw_keybind_data.trigger, + type = raw_keybind_data.type, ctrl = modifier_keys["ctrl"], alt = modifier_keys["alt"], shift = modifier_keys["shift"], - function_name = raw_keybind_data[5], - view_name = raw_keybind_data[6] + function_name = raw_keybind_data.function_name, + view_name = raw_keybind_data.view_name } _keybinds[primary_key] = _keybinds[primary_key] or { @@ -318,10 +318,10 @@ end -- Adds/removes keybinds. -function vmf.add_mod_keybind(mod, setting_id, global, trigger, type, keys, function_name, view_name) - if #keys > 0 then +function vmf.add_mod_keybind(mod, setting_id, raw_keybind_data) + if #raw_keybind_data.keys > 0 then _raw_keybinds_data[mod] = _raw_keybinds_data[mod] or {} - _raw_keybinds_data[mod][setting_id] = {global, trigger, type, keys, function_name, view_name} + _raw_keybinds_data[mod][setting_id] = raw_keybind_data elseif _raw_keybinds_data[mod] and _raw_keybinds_data[mod][setting_id] then _raw_keybinds_data[mod][setting_id] = nil end diff --git a/vmf/scripts/mods/vmf/modules/core/options.lua b/vmf/scripts/mods/vmf/modules/core/options.lua index a352e3b..8a8cf15 100644 --- a/vmf/scripts/mods/vmf/modules/core/options.lua +++ b/vmf/scripts/mods/vmf/modules/core/options.lua @@ -542,8 +542,18 @@ local function initialize_default_settings_and_keybinds(mod, initialized_widgets mod:set(data.setting_id, data.default_value) end if data.type == "keybind" then - vmf.add_mod_keybind(mod, data.setting_id, data.keybind_global, data.keybind_trigger, data.keybind_type, - mod:get(data.setting_id), data.function_name, data.view_name) + vmf.add_mod_keybind( + mod, + data.setting_id, + { + global = data.keybind_global, + trigger = data.keybind_trigger, + type = data.keybind_type, + keys = mod:get(data.setting_id), + function_name = data.function_name, + view_name = data.view_name + } + ) end end end diff --git a/vmf/scripts/mods/vmf/modules/legacy/options.lua b/vmf/scripts/mods/vmf/modules/legacy/options.lua index 7a4118b..60404f8 100644 --- a/vmf/scripts/mods/vmf/modules/legacy/options.lua +++ b/vmf/scripts/mods/vmf/modules/legacy/options.lua @@ -208,11 +208,12 @@ vmf.initialize_mod_options_legacy = function (mod, widgets_definition) vmf.add_mod_keybind( mod, new_widget_definition.setting_id, - nil, - new_widget_definition.keybind_trigger, - new_widget_definition.keybind_type, - keybind, - new_widget_definition.function_name + { + trigger = new_widget_definition.keybind_trigger, + type = new_widget_definition.keybind_type, + keys = keybind, + function_name = new_widget_definition.function_name + } ) end end diff --git a/vmf/scripts/mods/vmf/modules/ui/options/vmf_options_view.lua b/vmf/scripts/mods/vmf/modules/ui/options/vmf_options_view.lua index 5b7392e..5ac74e6 100644 --- a/vmf/scripts/mods/vmf/modules/ui/options/vmf_options_view.lua +++ b/vmf/scripts/mods/vmf/modules/ui/options/vmf_options_view.lua @@ -3306,12 +3306,14 @@ local function set_new_keybind(keybind_widget_content) vmf.add_mod_keybind( get_mod(keybind_widget_content.mod_name), keybind_widget_content.setting_id, - keybind_widget_content.keybind_global, - keybind_widget_content.keybind_trigger, - keybind_widget_content.keybind_type, - keybind_widget_content.keys, - keybind_widget_content.function_name, - keybind_widget_content.view_name + { + global = keybind_widget_content.keybind_global, + trigger = keybind_widget_content.keybind_trigger, + type = keybind_widget_content.keybind_type, + keys = keybind_widget_content.keys, + function_name = keybind_widget_content.function_name, + view_name = keybind_widget_content.view_name + } ) end