Files
factory-game/source/ComponentUtils.cs
2026-03-01 08:32:24 +03:00

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];
}