2025-06-09 15:07:26 +02:00

94 lines
2.9 KiB
Lua

function calculateTailgateData(
number_steps,
opening_angle,
tailgate_angle_v1,
tailgate_angle_v2,
tailgate_angle_v3,
tailgate_angle_v4,
tailgate_angle_v5,
tailgate2_angle_v1,
tailgate2_angle_v2,
tailgate2_angle_v3,
tailgate2_angle_v4,
tailgate2_angle_v5,
tailgate2_angle_v6,
tailgate2_angle_v7,
tailgate2_angle_v8,
tailgate2_angle_v9,
tailgate2_angle_v10,
tailgate2_angle_v11,
tailgate2_angle_v12,
tailgate2_angle_v13,
tailgate2_angle_v14,
tailgate2_angle_v15 )
local function fixFloatValue(val)
if val == nil then
val = 0.0
end
return val
end
local openingAngle = 0.0
local trunkOpenMin = 0.0
local trunkOpenMax = 0.0
-- set min and max trunk opening values based on 5 or 15 step trunk version
-- and choose proper angle value for current trunk state
if number_steps == "step_5" then
trunkOpenMin = fixFloatValue(tailgate_angle_v1)
trunkOpenMax = fixFloatValue(tailgate_angle_v5)
if opening_angle < 1.5 then
openingAngle = fixFloatValue(tailgate_angle_v1)
elseif opening_angle < 2.5 then
openingAngle = fixFloatValue(tailgate_angle_v2)
elseif opening_angle < 3.5 then
openingAngle = fixFloatValue(tailgate_angle_v3)
elseif opening_angle < 4.5 then
openingAngle = fixFloatValue(tailgate_angle_v4)
else
openingAngle = fixFloatValue(tailgate_angle_v5)
end
else
trunkOpenMin = fixFloatValue(tailgate2_angle_v1)
trunkOpenMax = fixFloatValue(tailgate2_angle_v15)
if opening_angle < 1.5 then
openingAngle = fixFloatValue(tailgate2_angle_v1)
elseif opening_angle < 2.5 then
openingAngle = fixFloatValue(tailgate2_angle_v2)
elseif opening_angle < 3.5 then
openingAngle = fixFloatValue(tailgate2_angle_v3)
elseif opening_angle < 4.5 then
openingAngle = fixFloatValue(tailgate2_angle_v4)
elseif opening_angle < 5.5 then
openingAngle = fixFloatValue(tailgate2_angle_v5)
elseif opening_angle < 6.5 then
openingAngle = fixFloatValue(tailgate2_angle_v6)
elseif opening_angle < 7.5 then
openingAngle = fixFloatValue(tailgate2_angle_v7)
elseif opening_angle < 8.5 then
openingAngle = fixFloatValue(tailgate2_angle_v8)
elseif opening_angle < 9.5 then
openingAngle = fixFloatValue(tailgate2_angle_v9)
elseif opening_angle < 10.5 then
openingAngle = fixFloatValue(tailgate2_angle_v10)
elseif opening_angle < 11.5 then
openingAngle = fixFloatValue(tailgate2_angle_v11)
elseif opening_angle < 12.5 then
openingAngle = fixFloatValue(tailgate2_angle_v12)
elseif opening_angle < 13.5 then
openingAngle = fixFloatValue(tailgate2_angle_v13)
elseif opening_angle < 14.5 then
openingAngle = fixFloatValue(tailgate2_angle_v14)
else
openingAngle = fixFloatValue(tailgate2_angle_v15)
end
end
return openingAngle, trunkOpenMin, trunkOpenMax
end