diff --git a/godot/core/arrays.nim b/godot/core/arrays.nim index 9ec5b68..58c3942 100644 --- a/godot/core/arrays.nim +++ b/godot/core/arrays.nim @@ -15,14 +15,23 @@ proc godotArray*(arr: Array): ptr GodotArray {.inline.} = proc arrayFinalizer(arr: Array) = arr.godotArray.deinit() -proc newArray*(): Array {.inline.} = - new(result, arrayFinalizer) - initGodotArray(result.godotArray) - proc newArray*(arr: GodotArray): Array {.inline.} = new(result, arrayFinalizer) result.godotArray = arr +import variants + +proc newArray*(s: varargs[Variant]): Array = + new(result, arrayFinalizer) + initGodotArray(result.godotArray) + for v in s: + result.godotArray.add(v.godotVariant[]) + +proc newArray*(s: openarray[Variant]): Array = + result = newArray() + for v in s: + result.godotArray.add(v.godotVariant[]) + import poolarrays proc newArray*(pca: PoolColorArray): Array {.inline.} = @@ -53,8 +62,6 @@ proc newArray*(pba: PoolByteArray): Array {.inline.} = new(result, arrayFinalizer) initGodotArray(result.godotArray, pba.godotPoolByteArray[]) -import variants - proc `[]=`*(self: var Array; idx: int; value: Variant) {.inline.} = self.godotArray[idx.cint] = value.godotVariant[]