using Godot; using Godot.Collections; using System.ComponentModel; namespace FactoryGame; public class ComponentUtils { public static Array GetComponents<[MustBeVariant] T>(Node node, int iterations = 1) where T : IComponent { var result = new Array(); 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(node)[index]; }