feat(cache): add lib.cache and update event

This commit is contained in:
Linden
2022-03-01 12:28:04 +00:00
parent adf08e44b8
commit f8d68df5e9

View File

@@ -1,17 +1,4 @@
local cache = {} local cache = {}
local player = LocalPlayer.state
local states = {
['vehicle'] = true,
['driver'] = true
}
function cache:set(key, value)
if value ~= self[key] then
self[key] = value
if states[key] then player:set(key, value, false) end
end
end
function cache:getPed() function cache:getPed()
local ped = PlayerPedId() local ped = PlayerPedId()
@@ -23,9 +10,7 @@ end
function cache:getVehicle() function cache:getVehicle()
local vehicle = GetVehiclePedIsIn(self.ped, false) local vehicle = GetVehiclePedIsIn(self.ped, false)
if vehicle > 0 then if vehicle > 0 then
if vehicle ~= self.vehicle then if self:set('vehicle', vehicle) then
self:set('vehicle', vehicle)
if GetPedInVehicleSeat(vehicle, -1) == self.ped then if GetPedInVehicleSeat(vehicle, -1) == self.ped then
self:set('driver', true) self:set('driver', true)
else else
@@ -36,10 +21,12 @@ function cache:getVehicle()
end end
function cache:onFoot() function cache:onFoot()
-- todo
-- print('on foot') -- print('on foot')
end end
function cache:inVehicle() function cache:inVehicle()
-- todo
if self.driver then if self.driver then
-- print('driving vehicle') -- print('driving vehicle')
else else
@@ -47,17 +34,36 @@ function cache:inVehicle()
end end
end end
local update = {}
function cache:set(key, value)
if value ~= self[key] then
self[key] = value
update[key] = value
return true
end
end
CreateThread(function() CreateThread(function()
while true do while true do
cache:getPed() cache:getPed()
cache:getVehicle() cache:getVehicle()
if not cache.vehicle then -- if not cache.vehicle then
cache:onFoot() -- cache:onFoot()
else -- else
cache:inVehicle() -- cache:inVehicle()
-- end
if cache.update then
TriggerEvent('lualib:updateCache', update)
table.wipe(update)
end end
Wait(100) Wait(100)
end end
end) end)
function lib.cache(key)
return cache[key]
end