This repository has been archived by the owner on May 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjsonExtendedDataTypes.lua
133 lines (133 loc) · 8.48 KB
/
jsonExtendedDataTypes.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
return {["encode"] = {
["Axes"] = function(v)return {v.X, v.Y, v.Z, v.Top, v.Bottom, v.Left, v.Right, v.Back, v.Front} end,
["BrickColor"] = function(v)return tostring(v) end,
["boolean"] = function(v)return v end,
["CatalogSearchParams"] = function(v)return nil end,
["CFrame"] = function(v)return table.pack(v:GetComponents()) end,
["Color3"] = function(v)return {v.r, v.g, v.b} end,
["ColorSequence"] = function(v) local keys = v.Keypoints local value = {} for j,x in ipairs(keys) do value[j] = {x.Time, {x.Value.r, x.Value.g, x.Value.b}} end return value end,
["ColorSequenceKeypoint"] = function(v)return nil end,
["DateTime"] = function(v)return nil end,
["DockWidgetPluginGuiInfo"] = function(v)return nil end,
["Enum"] = function(v)return nil end,
["EnumItem"] = function(v)return {v.EnumType, v.Name} end,
["Enums"] = function(v)return nil end,
["Faces"] = function(v)return {v.Top, v.Bottom, v.Left, v.Right, v.Back, v.Front} end,
["function"] = function(v)return nil end,
["Instance"] = function(v)return v:GetDebugId() end,
["nil"] = function(v)return nil end,
["number"] = function(v)return v end,
["NumberRange"] = function(v)return {v.Min, v.Max} end,
["NumberSequence"] = function(v) local keys = v.Keypoints local value = {} for j,x in ipairs(keys) do value[j] = {x.Time, x.Value, x.Envelope} end return value end,
["NumberSequenceKeypoint"] = function(v)return nil end,
["PathWaypoint"] = function(v)return nil end,
["PhysicalProperties"] = function(v)return {v.Density, v.Friction, v.Elasticity, v.FrictionWeight, v.ElasticityWeight} end,
["Random"] = function(v)return nil end,
["Ray"] = function(v)return nil end,
["RaycastParams"] = function(v)return nil end,
["RaycastResult"] = function(v)return nil end,
["RBXScriptConnection"] = function(v)return nil end,
["RBXScriptSignal"] = function(v)return nil end,
["Rect"] = function(v)return {v.Min.X, v.Min.Y, v.Max.X, v.Max.Y} end,
["Region3"] = function(v)return nil end,
["Region3int16"] = function(v)return nil end,
["string"] = function(v)return v end,
["table"] = function(v)return v end,
["TweenInfo"] = function(v)return nil end,
["UDim"] = function(v)return {v.Scale, v.Offset} end,
["UDim2"] = function(v)return {v.X.Scale, v.X.Offset, v.Y.Scale, v.Y.Offset} end,
["userdata"] = function(v)return nil end,
["Vector2"] = function(v)return {v.X, v.Y} end,
["Vector2int16"] = function(v)return {v.X, v.Y} end,
["Vector3"] = function(v)return {v.X, v.Y, v.Z} end,
["Vector3int16"] = function(v)return {v.X, v.Y, v.Z} end
},
["decode"] = {
["Axes"] = function(v)return Axes.new(table.unpack(v, 1, 9)) end,
["BrickColor"] = function(v)return tostring(v) end,
["boolean"] = function(v)return v end,
["CatalogSearchParams"] = function(v)return nil end,
["CFrame"] = function(v)return CFrame.new(table.unpack(v, 1, 12)) end,
["Color3"] = function(v)return Color3.new(table.unpack(v, 1, 3)) end,
["ColorSequence"] = function(v) local value = {} for j,x in ipairs(v) do value[j] = ColorSequenceKeypoint.new(x[1], Color3.new(table.unpack(x[2], 1, 3))) end return ColorSequence.new(value) end,
["ColorSequenceKeypoint"] = function(v)return nil end,
["DateTime"] = function(v)return nil end,
["DockWidgetPluginGuiInfo"] = function(v)return nil end,
["Enum"] = function(v)return nil end,
["EnumItem"] = function(v)return Enum[v[1]][v[2]] end,
["Enums"] = function(v)return nil end,
["Faces"] = function(v)return Faces.new(table.unpack(v, 1, 6)) end,
["function"] = function(v)return nil end,
["Instance"] = function(v)return v end,
["nil"] = function(v)return nil end,
["number"] = function(v)return v end,
["NumberRange"] = function(v)return NumberRange.new(table.unpack(v, 1, 2)) end,
["NumberSequence"] = function(v) local value = {} for j,x in ipairs(v) do value[j] = NumberSequenceKeypoint.new(table.unpack(x, 1, 3)) end return NumberSequence.new(value) end,
["NumberSequenceKeypoint"] = function(v)return nil end,
["PathWaypoint"] = function(v)return nil end,
["PhysicalProperties"] = function(v)return PhysicalProperties.new(table.unpack(v, 1, 5)) end,
["Random"] = function(v)return nil end,
["Ray"] = function(v)return nil end,
["RaycastParams"] = function(v)return nil end,
["RaycastResult"] = function(v)return nil end,
["RBXScriptConnection"] = function(v)return nil end,
["RBXScriptSignal"] = function(v)return nil end,
["Rect"] = function(v)return Rect.new(table.unpack(v, 1, 4)) end,
["Region3"] = function(v)return nil end,
["Region3int16"] = function(v)return nil end,
["string"] = function(v)return v end,
["table"] = function(v)return v end,
["TweenInfo"] = function(v)return nil end,
["UDim"] = function(v)return UDim.new(table.unpack(v, 1, 2)) end,
["UDim2"] = function(v)return UDim2.new(table.unpack(v, 1, 4)) end,
["userdata"] = function(v)return nil end,
["Vector2"] = function(v)return Vector2.new(table.unpack(v, 1, 2)) end,
["Vector2int16"] = function(v)return Vector2int16.new(table.unpack(v, 1, 2)) end,
["Vector3"] = function(v)return Vector3.new(table.unpack(v, 1, 3)) end,
["Vector3int16"] = function(v)return Vector3int16.new(table.unpack(v, 1, 3)) end
},
["compress"] = {
["Axes"] = function(v)return v end,
["BrickColor"] = function(v)return v.Number end,
["boolean"] = function(v)return v end,
["CatalogSearchParams"] = function(v)return nil end,
["CFrame"] = function(v)local components = table.pack(v:GetComponents()) for j,x in pairs(components) do components[j] = compressValue(x) end return CFrame.new(table.unpack(components)) end,
["Color3"] = function(v)return Color3.new(compressValue(v.r), compressValue(v.g), compressValue(v.b)) end,
["ColorSequence"] = function(v)local keys = v.Keypoints value = {} for j,x in ipairs(keys) do value[j] = ColorSequenceKeypoint.new(compressValue(x.Time), Color3.new(compressValue(x.Value.r), compressValue(x.Value.g), compressValue(x.Value.b)))end return ColorSequence.new(value) end,
["ColorSequenceKeypoint"] = function(v)return nil end,
["DateTime"] = function(v)return nil end,
["DockWidgetPluginGuiInfo"] = function(v)return nil end,
["Enum"] = function(v)return nil end,
["EnumItem"] = function(v)return v end,
["Enums"] = function(v)return nil end,
["Faces"] = function(v)return v end,
["function"] = function(v)return nil end,
["Instance"] = function(v)return v end,
["nil"] = function(v)return nil end,
["number"] = function(v)return compressValue(v) end,
["NumberRange"] = function(v)return NumberRange.new(compressValue(v.Min), compressValue(v.Max)) end,
["NumberSequence"] = function(v)local keys = v.Keypoints value = {} for j,x in ipairs(keys) do value[j] = NumberSequenceKeypoint.new(compressValue(x.Time), compressValue(x.Value), compressValue(x.Envelope))end return NumberSequence.new(value) end,
["NumberSequenceKeypoint"] = function(v)return nil end,
["PathWaypoint"] = function(v)return nil end,
["PhysicalProperties"] = function(v)return PhysicalProperties.new(compressValue(v.Density), compressValue(v.Friction), compressValue(v.Elasticity), compressValue(v.FrictionWeight), compressValue(v.ElasticityWeight)) end,
["Random"] = function(v)return nil end,
["Ray"] = function(v)return nil end,
["RaycastParams"] = function(v)return nil end,
["RaycastResult"] = function(v)return nil end,
["RBXScriptConnection"] = function(v)return nil end,
["RBXScriptSignal"] = function(v)return nil end,
["Rect"] = function(v)return Rect.new(compressValue(v.Min.X), compressValue(v.Min.Y), compressValue(v.Max.X), compressValue(v.Max.Y)) end,
["Region3"] = function(v)return nil end,
["Region3int16"] = function(v)return nil end,
["string"] = function(v)if #v > 2097152 then warn("string value too long, truncating") return string.sub(v, 1, 2097152) end return string.sub(v, 1, 2097152) end,
["table"] = function(v)return v end,
["TweenInfo"] = function(v)return nil end,
["UDim"] = function(v)return UDim.new(compressValue(v.Scale), compressValue(v.Offset)) end,
["UDim2"] = function(v)return UDim2.new(compressValue(v.X.Scale), compressValue(v.X.Offset), compressValue(v.Y.Scale), compressValue(v.Y.Offset)) end,
["userdata"] = function(v)return nil end,
["Vector2"] = function(v)return Vector2.new(compressValue(v.X), compressValue(v.Y)) end,
["Vector2int16"] = function(v)return Vector2int16.new(compressValue(v.X), compressValue(v.Y)) end,
["Vector3"] = function(v)return Vector3.new(compressValue(v.X), compressValue(v.Y), compressValue(v.Z)) end,
["Vector3int16"] = function(v)return Vector3int16.new(compressValue(v.X), compressValue(v.Y), compressValue(v.Z)) end
}
}