ObjectCollection
This represents a typed array of one of the built-in types from Godot
ObjectCollection.swift:18class ObjectCollection<Element> where Element : Object
Citizens in SwiftGodot
Conformances
protocol Collection<Element>
A sequence whose elements can be traversed multiple times, nondestructively, and accessed by an indexed subscript.
protocol ExpressibleByArrayLiteral
A type that can be initialized using an array literal.
protocol Sequence<Element>
A type that provides sequential, iterated access to its elements.
Typealiases
Type members
init([Element]
) Initializes the collection using an array
init?(Variant
) Creates a new instance from the given variant if it contains a GArray
init(arrayLiteral: ArrayLiteralElement...
) Initializes the collection using an array literal, for example:
let objectCollection: ObjectCollection<Node> = [Node()]
Instance members
var array: GArray
The underlying GArray, passed to the Godot client, and reassigned by the Godot client via the proxy accessors In general you should not be modifying this property directly
var endIndex: Index
The collection’s “past the end” position—that is, the position one greater than the last valid subscript argument.
var startIndex: Index
The position of the first element in a nonempty collection.
subscript(Index
) -> Element Accesses the element at the specified position.
func append(value: Element
) Appends an element at the end of the array (alias of
pushBack(value:)
).func back(
) -> Element Returns the last element of the array. Prints an error and returns
null
if the array is empty.func bsearch(value: Element, before: Bool
) -> Int64 Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a
before
specifier can be passed. Iffalse
, the returned index comes after all existing entries of the value in the array.func bsearchCustom(value: Element, func: Callable, before: Bool
) -> Int64 Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search and a custom comparison method. Optionally, a
before
specifier can be passed. Iffalse
, the returned index comes after all existing entries of the value in the array. The custom method receives two arguments (an element from the array and the value searched for) and must returntrue
if the first argument is less than the second, and returnfalse
otherwise.func clear(
) Clears the array. This is equivalent to using
resize(size:)
with a size of0
.func count(value: Element
) -> Int64 Returns the number of times an element is in the array.
func erase(value: Element
) Removes the first occurrence of a value from the array. If the value does not exist in the array, nothing happens. To remove an element by index, use
removeAt(position:)
instead.func find(what: Element, from: Int64
) -> Int64 Searches the array for a value and returns its index or
-1
if not found. Optionally, the initial search index can be passed.func front(
) -> Element Returns the first element of the array. Prints an error and returns
null
if the array is empty.func getTypedBuiltin(
) -> Int64 Returns the
Variant.GType
constant for a typed array. If theGArray
is not typed, returns ``Variant.GType/`nil```.func getTypedClassName(
) -> StringName Returns a class name of a typed
GArray
of typeobject
.func getTypedScript(
) -> Variant Returns the script associated with a typed array tied to a class name.
func has(value: Element
) -> Bool Returns
true
if the array contains the given value.func hash(
) -> Int64 Returns a hashed 32-bit integer value representing the array and its contents.
func index(after: Index
) -> Index Returns the position immediately after the given index.
func insert(position: Int64, value: Element
) -> Int64 Inserts a new element at a given position in the array. The position must be valid, or at the end of the array (
pos == size()
). Returnsok
on success, or one of the otherGodotError
values if the operation failed.func isEmpty(
) -> Bool Returns
true
if the array is empty.func isReadOnly(
) -> Bool Returns
true
if the array is read-only. SeemakeReadOnly
. Arrays are automatically read-only if declared withconst
keyword.func isSameTyped(array: GArray
) -> Bool Returns
true
if the array is typed the same asarray
.func isTyped(
) -> Bool Returns
true
if the array is typed. Typed arrays can only store elements of their associated type and provide type safety for the[]
operator. Methods of typed array still returnVariant
.func makeReadOnly(
) Makes the array read-only, i.e. disabled modifying of the array’s elements. Does not apply to nested content, e.g. content of nested arrays.
func pickRandom(
) -> Element Returns a random value from the target array. Prints an error and returns
null
if the array is empty.func popAt(position: Int64
) -> Element Removes and returns the element of the array at index
position
. If negative,position
is considered relative to the end of the array. Leaves the array untouched and returnsnull
if the array is empty or if it’s accessed out of bounds. An error message is printed when the array is accessed out of bounds, but not when the array is empty.func popBack(
) -> Element Removes and returns the last element of the array. Returns
null
if the array is empty, without printing an error message. See alsopopFront
.func popFront(
) -> Element Removes and returns the first element of the array. Returns
null
if the array is empty, without printing an error message. See alsopopBack
.func pushBack(value: Element
) Appends an element at the end of the array. See also
pushFront(value:)
.func pushFront(value: Element
) Adds an element at the beginning of the array. See also
pushBack(value:)
.func removeAt(position: Int64
) Removes an element from the array by index. If the index does not exist in the array, nothing happens. To remove an element by searching for its value, use
erase(value:)
instead.func resize(size: Int64
) -> Int64 Resizes the array to contain a different number of elements. If the array size is smaller, elements are cleared, if bigger, new elements are
null
. Returnsok
on success, or one of the otherGodotError
values if the operation failed.func reverse(
) Reverses the order of the elements in the array.
func rfind(what: Element, from: Int64
) -> Int64 Searches the array in reverse order. Optionally, a start search index can be passed. If negative, the start index is considered relative to the end of the array.
func shuffle(
) Shuffles the array such that the items will have a random order. This method uses the global random number generator common to methods such as
@GlobalScope.randi
. Call@GlobalScope.randomize
to ensure that a new seed will be used each time if you want non-reproducible shuffling.func size(
) -> Int64 Returns the number of elements in the array.
func sort(
) Sorts the array.
func sortCustom(func: Callable
) Sorts the array using a custom method. The custom method receives two arguments (a pair of elements from the array) and must return either
true
orfalse
. For two elementsa
andb
, if the given method returnstrue
, elementb
will be after elementa
in the array.
Instance features
var count: Int
The number of elements in the collection.
var first: Self.Element?
The first element of the collection.
var indices: DefaultIndices<Self>
The indices that are valid for subscripting the collection, in ascending order.
var isEmpty: Bool
A Boolean value indicating whether the collection is empty.
var lazy: LazySequence<Self>
A sequence containing the same elements as this sequence, but on which some operations, such as
map
andfilter
, are implemented lazily.var underestimatedCount: Int
A value less than or equal to the number of elements in the collection.
func allSatisfy((Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.
func compactMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] Returns an array containing the non-
nil
results of calling the given transformation with each element of this sequence.func contains(Self.Element
) -> Bool Returns a Boolean value indicating whether the sequence contains the given element.
func contains(where: (Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.
func distance(from: Self.Index, to: Self.Index
) -> Int Returns the distance between two indices.
func drop(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence Returns a subsequence by skipping elements while
predicate
returnstrue
and returning the remaining elements.func dropFirst(Int
) -> Self.SubSequence Returns a subsequence containing all but the given number of initial elements.
func dropLast(Int
) -> Self.SubSequence Returns a subsequence containing all but the specified number of final elements.
func elementsEqual<OtherSequence>(OtherSequence
) -> Bool Returns a Boolean value indicating whether this sequence and another sequence contain the same elements in the same order.
func elementsEqual<OtherSequence>(OtherSequence, by: (Self.Element, OtherSequence.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether this sequence and another sequence contain equivalent elements in the same order, using the given predicate as the equivalence test.
func enumerated(
) -> EnumeratedSequence<Self> Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.
func filter((Self.Element) throws -> Bool
) rethrows -> [Self.Element] Returns an array containing, in order, the elements of the sequence that satisfy the given predicate.
func first(where: (Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the first element of the sequence that satisfies the given predicate.
func firstIndex(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.
func firstIndex(where: (Self.Element) throws -> Bool
) rethrows -> Self.Index? Returns the first index in which an element of the collection satisfies the given predicate.
func firstRange<C>(of: C
) -> Range<Self.Index>? Finds and returns the range of the first occurrence of a given collection within this collection.
func flatMap<SegmentOfResult>((Self.Element) throws -> SegmentOfResult
) rethrows -> [SegmentOfResult.Element] Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.
func forEach((Self.Element) throws -> Void
) rethrows Calls the given closure on each element in the sequence in the same order as a
for
-in
loop.func formIndex(inout Self.Index, offsetBy: Int
) Offsets the given index by the specified distance.
func formIndex(inout Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Bool Offsets the given index by the specified distance, or so that it equals the given limiting index.
func formIndex(after: inout Self.Index
) Replaces the given index with its successor.
func index(Self.Index, offsetBy: Int
) -> Self.Index Returns an index that is the specified distance from the given index.
func index(Self.Index, offsetBy: Int, limitedBy: Self.Index
) -> Self.Index? Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func joined(
) -> FlattenSequence<Self> Returns the elements of this sequence of sequences, concatenated.
func joined<Separator>(separator: Separator
) -> JoinedSequence<Self> Returns the concatenated elements of this sequence of sequences, inserting the given separator between each element.
func joined(separator: String
) -> String Returns a new string by concatenating the elements of the sequence, adding the given separator between each element.
func lexicographicallyPrecedes<OtherSequence>(OtherSequence
) -> Bool Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the less-than operator (
<
) to compare elements.func lexicographicallyPrecedes<OtherSequence>(OtherSequence, by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the given predicate to compare elements.
func makeIterator(
) -> IndexingIterator<Self> Returns an iterator over the elements of the collection.
func map<T>((Self.Element) throws -> T
) rethrows -> [T] Returns an array containing the results of mapping the given closure over the sequence’s elements.
func map<T>((Self.Element) throws -> T
) rethrows -> [T] Returns an array containing the results of mapping the given closure over the sequence’s elements.
func max(
) -> Self.Element? Returns the maximum element in the sequence.
func max(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the maximum element in the sequence, using the given predicate as the comparison between elements.
func min(
) -> Self.Element? Returns the minimum element in the sequence.
func min(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the minimum element in the sequence, using the given predicate as the comparison between elements.
func prefix(Int
) -> Self.SubSequence Returns a subsequence, up to the specified maximum length, containing the initial elements of the collection.
func prefix(through: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection through the specified position.
func prefix(upTo: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection up to, but not including, the specified position.
func prefix(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence Returns a subsequence containing the initial elements until
predicate
returnsfalse
and skipping the remaining elements.func randomElement(
) -> Self.Element? Returns a random element of the collection.
func randomElement<T>(using: inout T
) -> Self.Element? Returns a random element of the collection, using the given generator as a source for randomness.
func ranges<C>(of: C
) -> [Range<Self.Index>] Finds and returns the ranges of the all occurrences of a given sequence within the collection.
func reduce<Result>(Result, (Result, Self.Element) throws -> Result
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func reduce<Result>(into: Result, (inout Result, Self.Element) throws -> ()
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func reversed(
) -> [Self.Element] Returns an array containing the elements of this sequence in reverse order.
func shuffled(
) -> [Self.Element] Returns the elements of the sequence, shuffled.
func shuffled<T>(using: inout T
) -> [Self.Element] Returns the elements of the sequence, shuffled using the given generator as a source for randomness.
func sorted(
) -> [Self.Element] Returns the elements of the sequence, sorted.
func sorted(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> [Self.Element] Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.
func split(maxSplits: Int, omittingEmptySubsequences: Bool, whereSeparator: (Self.Element) throws -> Bool
) rethrows -> [Self.SubSequence] Returns the longest possible subsequences of the collection, in order, that don’t contain elements satisfying the given predicate.
func split(separator: Self.Element, maxSplits: Int, omittingEmptySubsequences: Bool
) -> [Self.SubSequence] Returns the longest possible subsequences of the collection, in order, around elements equal to the given element.
func starts<PossiblePrefix>(with: PossiblePrefix
) -> Bool Returns a Boolean value indicating whether the initial elements of the sequence are the same as the elements in another sequence.
func starts<PossiblePrefix>(with: PossiblePrefix, by: (Self.Element, PossiblePrefix.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the initial elements of the sequence are equivalent to the elements in another sequence, using the given predicate as the equivalence test.
func suffix(Int
) -> Self.SubSequence Returns a subsequence, up to the given maximum length, containing the final elements of the collection.
func suffix(from: Self.Index
) -> Self.SubSequence Returns a subsequence from the specified position to the end of the collection.
func trimmingPrefix<Prefix>(Prefix
) -> Self.SubSequence Returns a new collection of the same type by removing initial elements that satisfy the given predicate from the start.
func trimmingPrefix(while: (Self.Element) throws -> Bool
) rethrows -> Self.SubSequence func withContiguousStorageIfAvailable<R>((UnsafeBufferPointer<Self.Element>) throws -> R
) rethrows -> R?
Show obsolete interfaces (2)
Hide obsolete interfaces
func flatMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] func index(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.
Citizens in SwiftGodot
where Element:Object
Conformances
protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Typealiases
Instance members
Type features
static func makeOrUnwrap(Variant
) -> Self? Unwraps an object from a variant.
static func makeOrUnwrap(Variant
) -> Self? Unwraps an object from a variant. This is useful when you want one method to call that will return the unwrapped Variant, regardless of whether it is a SwiftGodot.Object or not.