Files
ox_lib/resource/cache/client.lua
Linden 39d5bbae3d refactor(resource/cache): new cache event
Rather than sending a bulk update of cache, trigger different events for
each key.
2022-07-28 23:09:23 +10:00

48 lines
1.0 KiB
Lua

local cache = {}
cache.playerId = PlayerId()
cache.serverId = GetPlayerServerId(cache.playerId)
local GetVehiclePedIsUsing = GetVehiclePedIsUsing
local GetPedInVehicleSeat = GetPedInVehicleSeat
local GetVehicleMaxNumberOfPassengers = GetVehicleMaxNumberOfPassengers
function cache:getVehicle()
local vehicle = GetVehiclePedIsUsing(self.ped)
if vehicle > 0 then
self:set('vehicle', vehicle)
if not cache.seat or GetPedInVehicleSeat(vehicle, cache.seat) ~= cache.ped then
for i = -1, GetVehicleMaxNumberOfPassengers(vehicle) - 1 do
if GetPedInVehicleSeat(vehicle, i) == self.ped then
return self:set('seat', i)
end
end
end
else
self:set('vehicle', false)
self:set('seat', false)
end
end
function cache:set(key, value)
if value ~= self[key] then
self[key] = value
TriggerEvent(('ox_lib:cache:%s'):format(key), value)
return true
end
end
CreateThread(function()
while true do
cache:set('ped', PlayerPedId())
cache:getVehicle()
Wait(100)
end
end)
function lib.cache(key)
return cache[key]
end
_ENV.cache = cache