mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-17 06:56:03 +01:00
feat(cache): add lib.cache and update event
This commit is contained in:
46
resource/cache/client.lua
vendored
46
resource/cache/client.lua
vendored
@@ -1,17 +1,4 @@
|
||||
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()
|
||||
local ped = PlayerPedId()
|
||||
@@ -23,9 +10,7 @@ end
|
||||
function cache:getVehicle()
|
||||
local vehicle = GetVehiclePedIsIn(self.ped, false)
|
||||
if vehicle > 0 then
|
||||
if vehicle ~= self.vehicle then
|
||||
self:set('vehicle', vehicle)
|
||||
|
||||
if self:set('vehicle', vehicle) then
|
||||
if GetPedInVehicleSeat(vehicle, -1) == self.ped then
|
||||
self:set('driver', true)
|
||||
else
|
||||
@@ -36,10 +21,12 @@ function cache:getVehicle()
|
||||
end
|
||||
|
||||
function cache:onFoot()
|
||||
-- todo
|
||||
-- print('on foot')
|
||||
end
|
||||
|
||||
function cache:inVehicle()
|
||||
-- todo
|
||||
if self.driver then
|
||||
-- print('driving vehicle')
|
||||
else
|
||||
@@ -47,17 +34,36 @@ function cache:inVehicle()
|
||||
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()
|
||||
while true do
|
||||
cache:getPed()
|
||||
cache:getVehicle()
|
||||
|
||||
if not cache.vehicle then
|
||||
cache:onFoot()
|
||||
else
|
||||
cache:inVehicle()
|
||||
-- if not cache.vehicle then
|
||||
-- cache:onFoot()
|
||||
-- else
|
||||
-- cache:inVehicle()
|
||||
-- end
|
||||
|
||||
if cache.update then
|
||||
TriggerEvent('lualib:updateCache', update)
|
||||
table.wipe(update)
|
||||
end
|
||||
|
||||
Wait(100)
|
||||
end
|
||||
end)
|
||||
|
||||
function lib.cache(key)
|
||||
return cache[key]
|
||||
end
|
||||
Reference in New Issue
Block a user