From 6fb18c740a07c34f1d8bec8b855abccc5af12b83 Mon Sep 17 00:00:00 2001 From: DokaDoka Date: Thu, 15 Sep 2022 00:00:53 +1000 Subject: [PATCH] feat(resource/zoneCreator): change output format in dialog --- resource/zoneCreator/client.lua | 15 ++++++++++++--- resource/zoneCreator/server.lua | 34 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/resource/zoneCreator/client.lua b/resource/zoneCreator/client.lua index 0c786ac..e750b4d 100644 --- a/resource/zoneCreator/client.lua +++ b/resource/zoneCreator/client.lua @@ -3,6 +3,7 @@ local controlsActive = false local zoneType, step, xCoord, yCoord, zCoord, heading, height, width, length local steps = {{0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 25, 50, 100}, {0.25, 0.5, 1, 2.5, 5, 15, 30, 45, 60, 90, 180}} local points = {} +local format = 'array' local function firstToUpper(str) return (str:gsub("^%l", string.upper)) @@ -42,18 +43,26 @@ local function round(number) return number >= 0 and math.floor(number + 0.5) or math.ceil(number - 0.5) end - local function closeCreator(cancel) if not cancel then if zoneType == 'poly' then points[#points + 1] = vec(xCoord, yCoord) end - local name = lib.inputDialog(('Name your %s Zone'):format(firstToUpper(zoneType)), {'Name'})?[1] + local input = lib.inputDialog(('Name your %s Zone'):format(firstToUpper(zoneType)), { + { type = 'input', label = 'Name', placeholder = 'none' }, + { type = 'select', label = 'Format', default = format, options = { + { value = 'function', label = 'Function' }, + { value = 'array', label = 'Array' }, + }} + }) or {} + + format = input[2] TriggerServerEvent('ox_lib:saveZone', { zoneType = zoneType, - name = name, + name = input[1] or 'none', + format = format, xCoord = xCoord, yCoord = yCoord, zCoord = zCoord, diff --git a/resource/zoneCreator/server.lua b/resource/zoneCreator/server.lua index 7f1a08a..c72ee06 100644 --- a/resource/zoneCreator/server.lua +++ b/resource/zoneCreator/server.lua @@ -1,7 +1,5 @@ -local printFunction = false - --[[ - -- printFunction = true + -- function local poly = lib.zones.poly({ name = poly, points = { @@ -13,7 +11,7 @@ local poly = lib.zones.poly({ }, thickness = 2, }) - -- printFunction = false + -- array { name = poly, points = { @@ -35,19 +33,19 @@ local parse = { end local pattern - if printFunction then + if data.format == 'function' then pattern = { 'local poly = lib.zones.poly({\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), '\tpoints = {\n', ('%s\t},\n'):format(table.concat(points)), ('\tthickness = %s,\n'):format(data.height), '})\n', } - else + elseif data.format == 'array' then pattern = { '{\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), '\tpoints = {\n', ('%s\t},\n'):format(table.concat(points)), ('\tthickness = %s,\n'):format(data.height), @@ -59,19 +57,19 @@ local parse = { end, box = function(data) local pattern - if printFunction then + if data.format == 'function' then pattern = { 'local box = lib.zones.box({\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), ('\tcoords = vec3(%s, %s, %s),\n'):format(data.xCoord, data.yCoord, data.zCoord), ('\tsize = vec3(%s, %s, %s),\n'):format(data.width, data.length, data.height), ('\trotation = %s,\n'):format(data.heading), '})\n', } - else + elseif data.format == 'array' then pattern = { '{\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), ('\tcoords = vec3(%s, %s, %s),\n'):format(data.xCoord, data.yCoord, data.zCoord), ('\tsize = vec3(%s, %s, %s),\n'):format(data.width, data.length, data.height), ('\trotation = %s,\n'):format(data.heading), @@ -83,20 +81,20 @@ local parse = { end, sphere = function(data) local pattern - if printFunction then + if data.format == 'function' then pattern = { 'local sphere = lib.zones.sphere({\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), ('\tcoords = vec3(%s, %s, %s),\n'):format(data.xCoord, data.yCoord, data.zCoord), - ('\tradius = %s,\n'):format(data.heading), + ('\tradius = %s,\n'):format(data.height), '})\n', } - else + elseif data.format == 'array' then pattern = { '{\n', - ('\tname = "%s",\n'):format(data.name or 'none'), + ('\tname = "%s",\n'):format(data.name), ('\tcoords = vec3(%s, %s, %s),\n'):format(data.xCoord, data.yCoord, data.zCoord), - ('\tradius = %s,\n'):format(data.heading), + ('\tradius = %s,\n'):format(data.height), '},\n', } end