mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-21 21:25:16 +00:00
Make the plugin support non-primitive types
This commit is contained in:
32
plugin/src/rojoValueToRobloxValue.lua
Normal file
32
plugin/src/rojoValueToRobloxValue.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
local primitiveTypes = {
|
||||
String = true,
|
||||
Bool = true,
|
||||
Int32 = true,
|
||||
Float32 = true,
|
||||
Enum = true,
|
||||
}
|
||||
|
||||
local directConstructors = {
|
||||
CFrame = CFrame.new,
|
||||
Color3 = Color3.new,
|
||||
Vector2 = Vector2.new,
|
||||
Vector2int16 = Vector2int16.new,
|
||||
Vector3 = Vector3.new,
|
||||
Vector3int16 = Vector3int16.new,
|
||||
}
|
||||
|
||||
local function rojoValueToRobloxValue(value)
|
||||
if primitiveTypes[value.Type] then
|
||||
return value.Value
|
||||
end
|
||||
|
||||
local constructor = directConstructors[value.Type]
|
||||
if constructor ~= nil then
|
||||
return constructor(unpack(value.Value))
|
||||
end
|
||||
|
||||
local errorMessage = ("The Rojo plugin doesn't know how to handle values of type %q yet!"):format(tostring(value.Type))
|
||||
error(errorMessage)
|
||||
end
|
||||
|
||||
return rojoValueToRobloxValue
|
||||
Reference in New Issue
Block a user