mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-04 16:23:21 +00:00
single resource concept + first attempt to reorganize code
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
local self = ESX.Modules['menu_default']
|
||||
|
||||
AddEventHandler('esx:nui_ready', function()
|
||||
ESX.CreateFrame('menu_default', 'nui://' .. GetCurrentResourceName() .. '/modules/menu_default/data/html/ui.html')
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 18, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 150 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'ENTER'})
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 177, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 150 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'BACKSPACE'})
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 27, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 300 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'TOP'})
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 173, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 300 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'DOWN'})
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 174, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 300 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'LEFT'})
|
||||
end)
|
||||
|
||||
ESX.Modules['input'].On('pressed', 0, 175, function(lastTime)
|
||||
if (GetGameTimer() - lastTime) < 300 then return end
|
||||
ESX.SendFrameMessage('menu_default', {action = 'controlPressed', control = 'RIGHT'})
|
||||
end)
|
||||
|
||||
|
||||
AddEventHandler('menu_default:message:menu_submit', function(data)
|
||||
local menu = ESX.UI.Menu.GetOpened(self.MenuType, data._namespace, data._name)
|
||||
|
||||
if menu.submit ~= nil then
|
||||
menu.submit(data, menu)
|
||||
end
|
||||
end)
|
||||
|
||||
AddEventHandler('menu_default:message:menu_cancel', function(data)
|
||||
|
||||
local menu = ESX.UI.Menu.GetOpened(self.MenuType, data._namespace, data._name)
|
||||
|
||||
if menu.cancel ~= nil then
|
||||
menu.cancel(data, menu)
|
||||
end
|
||||
end)
|
||||
|
||||
AddEventHandler('menu_default:message:menu_change', function(data)
|
||||
local menu = ESX.UI.Menu.GetOpened(self.MenuType, data._namespace, data._name)
|
||||
|
||||
for i=1, #data.elements, 1 do
|
||||
menu.setElement(i, 'value', data.elements[i].value)
|
||||
|
||||
if data.elements[i].selected then
|
||||
menu.setElement(i, 'selected', true)
|
||||
else
|
||||
menu.setElement(i, 'selected', false)
|
||||
end
|
||||
end
|
||||
|
||||
if menu.change ~= nil then
|
||||
menu.change(data, menu)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
local self = ESX.Modules['menu_default']
|
||||
|
||||
ESX.UI.Menu.RegisterType(self.MenuType, self.OpenMenu, self.CloseMenu)
|
||||
|
||||
ESX.Modules['input'].RegisterControl(0, 18)
|
||||
ESX.Modules['input'].RegisterControl(0, 177)
|
||||
ESX.Modules['input'].RegisterControl(0, 27)
|
||||
ESX.Modules['input'].RegisterControl(0, 173)
|
||||
ESX.Modules['input'].RegisterControl(0, 174)
|
||||
ESX.Modules['input'].RegisterControl(0, 175)
|
||||
@@ -0,0 +1,26 @@
|
||||
ESX.Modules['menu_default'] = {};
|
||||
local self = ESX.Modules['menu_default']
|
||||
|
||||
self.GUI = {}
|
||||
self.GUI.Time = 0
|
||||
self.MenuType = 'default'
|
||||
|
||||
self.OpenMenu = function(namespace, name, data)
|
||||
ESX.SendFrameMessage('menu_default', {
|
||||
action = 'openMenu',
|
||||
namespace = namespace,
|
||||
name = name,
|
||||
data = data
|
||||
})
|
||||
end
|
||||
|
||||
self.CloseMenu = function(namespace, name)
|
||||
ESX.SendFrameMessage('menu_default', {
|
||||
action = 'closeMenu',
|
||||
namespace = namespace,
|
||||
name = name,
|
||||
data = data
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user