mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-02 03:08:52 +00:00
optimizations + more modules
This commit is contained in:
@@ -1,12 +1,55 @@
|
||||
ESX.Modules['menu_dialog'] = {};
|
||||
local self = ESX.Modules['menu_dialog']
|
||||
local Input = ESX.Modules['input']
|
||||
|
||||
self.Timeouts = {}
|
||||
self.OpenedMenus = {}
|
||||
self.MenuType = 'dialog'
|
||||
|
||||
self.RegisterControls = function()
|
||||
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.LOOK_LR)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.LOOK_UD)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.MELEE_ATTACK_ALTERNATE)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.VEH_MOUSE_CONTROL_OVERRIDE)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_UD)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_NEXT)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_PREV)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.SELECT_NEXT_WEAPON)
|
||||
Input.RegisterControl(Input.Groups.LOOK, Input.Controls.SELECT_PREV_WEAPON)
|
||||
|
||||
end
|
||||
|
||||
self.EnableControls = function()
|
||||
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.LOOK_LR)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.LOOK_UD)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.MELEE_ATTACK_ALTERNATE)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.VEH_MOUSE_CONTROL_OVERRIDE)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_UD)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_NEXT)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_PREV)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.SELECT_NEXT_WEAPON)
|
||||
Input.EnableControl(Input.Groups.LOOK, Input.Controls.SELECT_PREV_WEAPON)
|
||||
|
||||
end
|
||||
|
||||
self.DisableControls = function()
|
||||
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.LOOK_LR)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.LOOK_UD)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.MELEE_ATTACK_ALTERNATE)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.VEH_MOUSE_CONTROL_OVERRIDE)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_UD)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_NEXT)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.WEAPON_WHEEL_PREV)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.SELECT_NEXT_WEAPON)
|
||||
Input.DisableControl(Input.Groups.LOOK, Input.Controls.SELECT_PREV_WEAPON)
|
||||
|
||||
end
|
||||
|
||||
self.openMenu = function(namespace, name, data)
|
||||
|
||||
|
||||
for i=1, #self.Timeouts, 1 do
|
||||
ESX.ClearTimeout(self.Timeouts[i])
|
||||
end
|
||||
@@ -24,11 +67,14 @@ self.openMenu = function(namespace, name, data)
|
||||
ESX.FocusFrame('menu_dialog', true, true)
|
||||
end)
|
||||
|
||||
table.insert(self.Timeouts, timeoutId)
|
||||
table.insert(self.Timeouts, timeoutId)
|
||||
|
||||
self.DisableControls()
|
||||
|
||||
end
|
||||
|
||||
self.closeMenu = function(namespace, name)
|
||||
|
||||
|
||||
self.OpenedMenus[namespace .. '_' .. name] = nil
|
||||
|
||||
ESX.SendFrameMessage('menu_dialog', {
|
||||
@@ -38,7 +84,8 @@ self.closeMenu = function(namespace, name)
|
||||
data = data
|
||||
})
|
||||
|
||||
if ESX.Table.SizeOf(self.OpenedMenus) == 0 then
|
||||
if ESX.Table.SizeOf(self.OpenedMenus) == 0 then
|
||||
self.EnableControls()
|
||||
SetNuiFocus(false)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user