-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathValueManipulation.lua
39 lines (35 loc) · 1.27 KB
/
ValueManipulation.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
local ValueUtil = {}
--Converts Value objects into a table.
function ValueUtil.ValuesToTable(resultTable, parent)
local items = parent:GetChildren()
for i = 1, #items do
resultTable[items[i].Name] = {}
if (items[i]:IsA("Folder")) then
resultTable[items[i].Name] = ValueUtil.ValuesToTable(resultTable[items[i].Name], items[i])
elseif (items[i]:IsA("Vector3Value")) then
resultTable[items[i].Name] = {["X"] = items[i].X, ["Y"] = items[i].Y, ["Z"] = items[i].Z}
else
resultTable[items[i].Name] = items[i].Value
end
end
return resultTable
end
--Converts tables into value objects.
function ValueUtil.TableToValues(parentTable, parentFolder)
for key, value in pairs(parentTable) do
if(typeof(value) == 'table') then
local folder = Instance.new('Folder')
folder.Name = key
folder.Parent = parentFolder
ValueUtil.TableToData(value, folder)
else
local type = (typeof(value):gsub("^%1", string.upper)).."Value"
if type == "BooleanValue" then type = "BoolValue" end
local objectValue = Instance.new(type)
objectValue.Name = key
objectValue.Value = value
objectValue.Parent = parentFolder
end
end
end
return ValueUtil