Files
Elite-Gaming-FiveM/resources/ulc/client/c_doors.lua
T
2025-01-28 07:05:49 -08:00

86 lines
2.9 KiB
Lua

local doors = {
[0] = false, -- d front
[1] = false, -- p front
[2] = false, -- d rear
[3] = false, -- p rear
[4] = false, -- hood
[5] = false -- trunk
}
local function intNot(value)
result = 0
if value == 0 then
result = 1
end
return result
end
-- state 1 = closed, state 0 = open
local function onDoorStateChange(door, newDoorState)
--print("Handling door change", door, newDoorState)
if door == 0 or door == 2 then -- if driver side
for _, v in pairs(MyVehicleConfig.doorConfig.driverSide.enable) do
--print("Enable extra:", v)
ULC:SetStage(v, newDoorState, true, true, false, false, true, true)
end
for _, v in pairs(MyVehicleConfig.doorConfig.driverSide.disable) do
--print("Disable extra:", v, intNot(newDoorState))
ULC:SetStage(v, intNot(newDoorState), true, true, false, false, true, true)
end
elseif door == 1 or door == 3 then -- if pass side
for _, v in pairs(MyVehicleConfig.doorConfig.passSide.enable) do
--print("Enable extra:", v)
ULC:SetStage(v, newDoorState, true, true, false, false, true, true)
end
for _, v in pairs(MyVehicleConfig.doorConfig.passSide.disable) do
--print("Disable extra:", v, intNot(newDoorState))
ULC:SetStage(v, intNot(newDoorState), true, true, false, false, true, true)
end
elseif door == 5 then -- if trunk
for _, v in pairs(MyVehicleConfig.doorConfig.trunk.enable) do
ULC:SetStage(v, newDoorState, true, true, false, false, true, true)
end
for _, v in pairs(MyVehicleConfig.doorConfig.trunk.disable) do
ULC:SetStage(v, intNot(newDoorState), true, true, false, false, true, true)
end
end
end
CreateThread(function()
local sleep = 1000
while true do
Wait(sleep)
if not MyVehicle then
sleep = 1000
goto continue
end
if not MyVehicleConfig.doorConfig or false then
sleep = 1000
goto continue
end
if not MyVehicleConfig.doorConfig.useDoors then
sleep = 1000
goto continue
end
sleep = 250
for k, v in pairs(doors) do
if GetVehicleDoorAngleRatio(MyVehicle, k) > 0.0 then
if v == false then
-- print("Setting door", k, "open.")
doors[k] = true -- set door open
onDoorStateChange(k, 0) -- handle what to do
end
else
if v == true then
-- print("Setting door", k, "closed.")
doors[k] = false -- set door closed
onDoorStateChange(k, 1) -- handle what to do
end
end
end
::continue::
end
end)