Nodes/Core/Relay/Relay.cs
namespace Nodebox.Nodes;
[Register]
[Tag("Core")]
[Alias("Reroute")]
[Polymorphic(true)]
public class Relay : Node
{
public override Vector2 SizeMultiplier => new(0.25f, 0.66f);
public override (Pin[] In, Pin[] Out) InitialPins => (
new Pin[] {
Pin.New<Polymorphic>(""),
},
new Pin[] {
Pin.New<Polymorphic>(""),
}
);
public override Node Polymorph(PinWireChange change) =>
PolymorphHelpers.ToConnectedTypeIfRegistered(typeof(Relay<>), change);
}
[Register(typeof(Library.All))]
[Polymorphic(typeof(Relay))]
public class Relay<T> : Relay
{
public override (Pin[] In, Pin[] Out) InitialPins => base.InitialPins.SubstitutePolymorphic<T>();
public override Node Polymorph(PinWireChange change) =>
PolymorphHelpers.ToNonGenericIfAllDisconnected<E>(change);
public override void Evaluate() => SetOutput(0, GetInput<T>(0));
}