56 lines
2.0 KiB
Lua
56 lines
2.0 KiB
Lua
|
function round(num, numDecimalPlaces)
|
||
|
return tonumber(string.format("%.".. numDecimalPlaces .. "f", num))
|
||
|
end
|
||
|
|
||
|
function roundVec(vec, numDecimalPlaces)
|
||
|
return vector3(round(vec.x, numDecimalPlaces), round(vec.y, numDecimalPlaces), round(vec.z, numDecimalPlaces))
|
||
|
end
|
||
|
|
||
|
function printoutHeader(name)
|
||
|
return "-- Name: " .. (name or "") .. " | " .. os.date("!%Y-%m-%dT%H:%M:%SZ\n")
|
||
|
end
|
||
|
|
||
|
RegisterNetEvent("mka-lasers:save")
|
||
|
AddEventHandler("mka-lasers:save", function(laser)
|
||
|
local resname = GetCurrentResourceName()
|
||
|
local txt = LoadResourceFile(resname, "lasers.txt") or ""
|
||
|
local newTxt = txt .. parseLaser(laser)
|
||
|
SaveResourceFile(resname, "lasers.txt", newTxt, -1)
|
||
|
end)
|
||
|
|
||
|
function parseLaser(laser)
|
||
|
local out = printoutHeader(laser.name)
|
||
|
out = out .. "Laser.new(\n"
|
||
|
-- Origin point
|
||
|
if #laser.originPoints == 1 then
|
||
|
out = out .. " " .. roundVec(laser.originPoints[1], 3) .. ",\n"
|
||
|
else
|
||
|
out = out .. " {"
|
||
|
for i, originPoint in ipairs(laser.originPoints) do
|
||
|
out = out .. roundVec(originPoint, 3)
|
||
|
if i < #laser.originPoints then out = out .. ", " end
|
||
|
end
|
||
|
out = out .. "},\n"
|
||
|
end
|
||
|
-- Target points
|
||
|
out = out .. " {"
|
||
|
for i, targetPoint in ipairs(laser.targetPoints) do
|
||
|
out = out .. roundVec(targetPoint, 3)
|
||
|
if i < #laser.targetPoints then out = out .. ", " end
|
||
|
end
|
||
|
out = out .. "},\n"
|
||
|
-- Options
|
||
|
out = out .. " {"
|
||
|
out = out .. string.format("travelTimeBetweenTargets = {%s, %s}, ", tostring(round(laser.travelTimeBetweenTargets[1], 3)), tostring(round(laser.travelTimeBetweenTargets[2], 3)))
|
||
|
out = out .. string.format("waitTimeAtTargets = {%s, %s}", tostring(round(laser.waitTimeAtTargets[1], 3)), tostring(round(laser.waitTimeAtTargets[2], 3)))
|
||
|
if #laser.originPoints == 1 then
|
||
|
out = out .. ", randomTargetSelection = " .. tostring(laser.randomTargetSelection)
|
||
|
end
|
||
|
if laser.name then
|
||
|
out = out .. string.format(', name = "%s"', tostring(laser.name))
|
||
|
end
|
||
|
out = out .. "}\n"
|
||
|
out = out .. ")\n\n"
|
||
|
return out
|
||
|
end
|