single resource concept + first attempt to reorganize code

This commit is contained in:
Jérémie N'gadi
2020-05-11 04:21:10 +02:00
parent 383aceffb4
commit 390cce6195
100 changed files with 7118 additions and 282 deletions
+67
View File
@@ -0,0 +1,67 @@
local self = ESX.Modules['input']
Citizen.CreateThread(function()
while true do
local events = {
pressed = {},
released = {},
dpressed = {},
dreleased = {},
}
for group, ids in pairs(self.RegisteredControls) do
for i=1, #ids, 1 do
local id = ids[i]
if self.IsControlEnabled(group, id) then
if IsControlJustPressed(group, id) then
events.pressed[#events.pressed + 1] = {group, id, self.LastPressed[group][id]}
end
if IsControlJustReleased(group, id) then
events.released[#events.released + 1] = {group, id, self.LastReleased[group][id]}
end
else
DisableControlAction(group, id, true);
if IsDisabledControlJustPressed(group, id) then
events.dpressed[#events.dpressed + 1] = {group, id, self.LastDisabledPressed[group][id]}
self.LastDisabledPressed[group][id] = GetGameTimer()
end
if IsDisabledControlJustReleased(group, id) then
events.dreleased[#events.dreleased + 1] = {group, id, self.LastDisabledReleased[group][id]}
self.LastDisabledReleased[group][id] = GetGameTimer()
end
end
end
end
for i=1, #events.pressed, 1 do
TriggerEvent('esx:input:pressed:' .. events.pressed[i][1] .. ':' .. events.pressed[i][2], events.pressed[i][3])
end
for i=1, #events.released, 1 do
TriggerEvent('esx:input:released:' .. events.released[i][1] .. ':' .. events.released[i][2], events.released[i][3])
end
for i=1, #events.dpressed, 1 do
TriggerEvent('esx:input:disabled:pressed:' .. events.dpressed[i][1] .. ':' .. events.dpressed[i][2], events.dpressed[i][3])
end
for i=1, #events.dreleased, 1 do
TriggerEvent('esx:input:disabled:released:' .. events.dreleased[i][1] .. ':' .. events.dreleased[i][2], events.dreleased[i][3])
end
Citizen.Wait(0)
end
end)