22 lines
618 B
C#
22 lines
618 B
C#
using Godot;
|
|
using Godot.Collections;
|
|
using System.ComponentModel;
|
|
|
|
namespace FactoryGame;
|
|
|
|
public class ComponentUtils {
|
|
public static Array<T> GetComponents<[MustBeVariant] T>(Node node, int iterations = 1) where T : IComponent {
|
|
var result = new Array<T>();
|
|
|
|
var children = node.GetChildren();
|
|
foreach (var item in children) {
|
|
if (item is T component)
|
|
result.Add(component);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
public static T? GetComponent<[MustBeVariant] T>(Node node, int index = 0) where T : IComponent =>
|
|
GetComponents<T>(node)[index];
|
|
}
|