VE Lua Documentation

Press F to search!

saveCompiledJBeamRecursive

Definition


-- @/lua/vehicle/ve_utils.lua:118

function saveCompiledJBeamRecursive(f, data, level)
  local indent = string.rep(" ", level * 2)
  local nl = true
  if level > 2 then
    nl = false
  end
  if level > 3 then
    indent = ""
  end
  --f:write(level..indent
  f:write(indent)

  if type(data) == "table" and type(data["partPath"]) == "string" and data["partPath"] ~= "" then
    f:write("\n" .. indent .. "/*" .. string.rep("*", 50) .. "\n")
    f:write(indent .. " * part " .. tostring(data["partPath"]) .. "\n")
    f:write(indent .. " *" .. string.rep("*", 49) .. "*/\n")
    f:write("\n" .. indent)
  end

  if level > 2 then
    indent = ""
  end
  if type(data) == "table" then
    if tableIsDict(data) then
      f:write("{")
      if nl then
        f:write("\n")
      end
      local localColumnCount = 0
      for _, _ in pairs(data) do
        localColumnCount = localColumnCount + 1
      end
      local i = 1
      for k, v in pairs(data) do
        if type(v) == "table" then
          --if nl then f:write("\n" end
          f:write(toJSONString(k) .. " : ")
          --if nl then f:write("\n" end
          saveCompiledJBeamRecursive(f, v, level + 1)
        else
          local txt = toJSONString(k) .. " : " .. toJSONString(v)
          f:write(txt)
        end
        if i < localColumnCount then
          f:write(", ")
        elseif i == localColumnCount then
          if nl then
            f:write("\n")
          end
        end
        i = i + 1
      end
      if nl then
        f:write("\n")
      end
      f:write("}")
      if level < 2 then
        f:write("\n")
      end
    else
      local nl = true
      if level > 2 then
        nl = false
      end
      f:write("[")
      if nl then
        f:write("\n")
      end
      for i = 1, #data, 1 do
        --k,v in pairs(data) do
        local v = data[i]
        if type(v) == "table" then
          saveCompiledJBeamRecursive(f, v, level + 1)
        else
          local txt = toJSONString(v)
          f:write(txt)
        end
        if i < #data then
          f:write(", ")
          if level == 2 then
            f:write("\n")
          end
        end
      end
      f:write("]")
      if level < 2 then
        f:write("\n")
      end
    end
  end
end

Callers

@/lua/vehicle/ve_utils.lua
          --if nl then f:write("\n" end
          saveCompiledJBeamRecursive(f, v, level + 1)
        else
        if type(v) == "table" then
          saveCompiledJBeamRecursive(f, v, level + 1)
        else
  end
  saveCompiledJBeamRecursive(f, data, lvl or 0)
  f:close()