Initial version
This commit is contained in:
commit
f1c7e80c51
30 changed files with 4508 additions and 0 deletions
145
godot/core/arrays.nim
Normal file
145
godot/core/arrays.nim
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
# Copyright (c) 2017 Xored Software, Inc.
|
||||
|
||||
import hashes
|
||||
import godotbase, poolarray, variant, strings
|
||||
|
||||
proc initArray(dest: var Array) {.
|
||||
importc: "godot_array_new", header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pca: PoolColorArray) {.
|
||||
importc: "godot_array_new_pool_coloarray",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pv3a: PoolVector3Array) {.
|
||||
importc: "godot_array_new_pool_vector3_array",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pv2a: PoolVector2Array) {.
|
||||
importc: "godot_array_new_pool_vector2_array",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; psa: PoolStringArray) {.
|
||||
importc: "godot_array_new_pool_string_array",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pra: PoolRealArray) {.
|
||||
importc: "godot_array_new_pool_real_array",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pia: PoolIntArray) {.
|
||||
importc: "godot_array_new_pool_int_array",
|
||||
header: "godot_array.h".}
|
||||
proc initArray(dest: var Array; pba: PoolByteArray) {.
|
||||
importc: "godot_array_new_pool_byte_array",
|
||||
header: "godot_array.h".}
|
||||
|
||||
proc initArray*(): Array {.inline.} =
|
||||
initArray(result)
|
||||
|
||||
proc initArray*(pca: PoolColorArray): Array {.inline.} =
|
||||
initArray(result, pca)
|
||||
|
||||
proc initArray*(pv3a: PoolVector3Array): Array {.inline.} =
|
||||
initArray(result, pv3a)
|
||||
|
||||
proc initArray*(pv2a: PoolVector2Array): Array {.inline.} =
|
||||
initArray(result, pv2a)
|
||||
|
||||
proc initArray*(psa: PoolStringArray): Array {.inline.} =
|
||||
initArray(result, psa)
|
||||
|
||||
proc initArray*(pra: PoolRealArray): Array {.inline.} =
|
||||
initArray(result, pra)
|
||||
|
||||
proc initArray*(pia: PoolIntArray): Array {.inline.} =
|
||||
initArray(result, pia)
|
||||
|
||||
proc initArray*(pba: PoolByteArray): Array {.inline.} =
|
||||
initArray(result, pba)
|
||||
|
||||
proc `[]=`*(self: var Array; idx: cint;
|
||||
value: Variant) {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_set", header: "godot_array.h".}
|
||||
proc `[]`*(self: Array; idx: cint): Variant {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_get", header: "godot_array.h".}
|
||||
proc mget*(self: var Array; idx: cint): ptr Variant {.
|
||||
importc: "godot_array_operator_index", header: "godot_array.h".}
|
||||
|
||||
proc add*(self: var Array; value: Variant) {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_append", header: "godot_array.h".}
|
||||
proc clear*(self: var Array) {.importc: "godot_array_clear",
|
||||
header: "godot_array.h".}
|
||||
proc count*(self: Array; value: Variant): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_count", header: "godot_array.h".}
|
||||
proc isEmpty*(self: Array): bool {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_empty", header: "godot_array.h".}
|
||||
proc erase*(self: var Array; value: Variant) {.
|
||||
importc: "godot_array_erase", header: "godot_array.h".}
|
||||
proc first*(self: Array): Variant {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_front", header: "godot_array.h".}
|
||||
proc last*(self: Array): Variant {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_back", header: "godot_array.h".}
|
||||
proc find*(self: Array; what: Variant;
|
||||
f: cint): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_find", header: "godot_array.h".}
|
||||
proc findLast*(self: Array; what: Variant): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_find_last", header: "godot_array.h".}
|
||||
proc contains*(self: Array; value: Variant): bool {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_has", header: "godot_array.h".}
|
||||
|
||||
proc godotHash*(self: Array): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_hash", header: "godot_array.h".}
|
||||
proc hash*(self: Array): Hash {.inline.} =
|
||||
hash(godotHash(self))
|
||||
|
||||
proc insert*(self: var Array; pos: cint;
|
||||
value: Variant) {.
|
||||
importc: "godot_array_insert", header: "godot_array.h".}
|
||||
proc reverse*(self: var Array) {.importc: "godot_array_invert",
|
||||
header: "godot_array.h".}
|
||||
proc popLast*(self: var Array): Variant {.
|
||||
importc: "godot_array_pop_back", header: "godot_array.h".}
|
||||
proc popFirst*(self: var Array): Variant {.
|
||||
importc: "godot_array_pop_front", header: "godot_array.h".}
|
||||
proc addLast*(self: var Array; value: Variant) {.
|
||||
importc: "godot_array_push_back", header: "godot_array.h".}
|
||||
proc addFirst*(self: var Array; value: Variant) {.
|
||||
importc: "godot_array_push_front", header: "godot_array.h".}
|
||||
|
||||
proc delete*(self: var Array; idx: cint) {.
|
||||
importc: "godot_array_remove", header: "godot_array.h".}
|
||||
proc setLen*(self: var Array; size: cint) {.
|
||||
importc: "godot_array_resize", header: "godot_array.h".}
|
||||
proc rfind*(self: Array; what: Variant;
|
||||
f: cint): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_rfind", header: "godot_array.h".}
|
||||
proc len*(self: Array): cint {.
|
||||
noSideEffect,
|
||||
importc: "godot_array_size", header: "godot_array.h".}
|
||||
proc sort*(self: var Array) {.importc: "godot_array_sort",
|
||||
header: "godot_array.h".}
|
||||
proc sortCustom*(self: var Array; obj: var GodotObject;
|
||||
funcName: GodotString) {.
|
||||
importc: "godot_array_sort_custom", header: "godot_array.h".}
|
||||
|
||||
iterator items*(arr: Array): Variant =
|
||||
for i in 0..<arr.len:
|
||||
yield arr[i]
|
||||
|
||||
iterator mitems*(arr: var Array): var Variant =
|
||||
for i in 0..<arr.len:
|
||||
yield arr.mget(i)[]
|
||||
|
||||
iterator pairs*(arr: Array): tuple[key: cint, val: Variant] =
|
||||
for i in 0..<arr.len:
|
||||
yield (i, arr[i])
|
||||
|
||||
iterator mpairs*(arr: var Array): tuple[key: cint, val: var Variant] =
|
||||
for i in 0..<arr.len:
|
||||
yield (i, arr.mget(i)[])
|
||||
Loading…
Add table
Add a link
Reference in a new issue