diff --git a/godot.nimble b/godot.nimble index 7425e63..15cf592 100644 --- a/godot.nimble +++ b/godot.nimble @@ -1,4 +1,4 @@ -version = "0.5.9" +version = "0.5.10" author = "Xored Software, Inc." description = "Godot Engine bindings" license = "MIT" diff --git a/godot/nim/godotnim.nim b/godot/nim/godotnim.nim index 26ee4be..edc6f2e 100644 --- a/godot/nim/godotnim.nim +++ b/godot/nim/godotnim.nim @@ -689,12 +689,20 @@ proc godotTypeInfo*(T: typedesc[seq]): GodotTypeInfo = proc godotTypeInfo*(T: typedesc[array]): GodotTypeInfo = arrTypeInfo(T) -proc toVariant*[T](s: openarray[T]): Variant = +template arrayToVariant(s: untyped): Variant = var arr = newArray() mixin toVariant for item in s: arr.add(toVariant(item)) - result = newVariant(arr) + newVariant(arr) + +proc toVariant*[T](s: seq[T]): Variant = + if s.isNil: + return newVariant() + result = arrayToVariant(s) + +proc toVariant*[I, T](s: array[I, T]): Variant = + result = arrayToVariant(s) proc fromVariant*[T](s: var seq[T], val: Variant): ConversionResult = if val.getType() == VariantType.Nil: