Skip to content

Class AudityKindNode

Base for nodes that compile 1:1 to an engine node kind: ports derive entirely from DarkEffekt.Audity.AudityNodeSpec, so the executor, compiler and editor can never disagree about the pin set.

Declaration
[Serializable]
public abstract class AudityKindNode : AudityNode

Inheritance: System.Object -> DarkEffekt.Audity.AudityNode

Declaration
public abstract AudityNodeKindId Kind { get; }

Element count a variadic node was AUTHORED with (Mixer inputs, Split channels, State Route rows) - the raw field or list length, never clamped. This is the single hook: DarkEffekt.Audity.AudityKindNode.VariadicCount derives the pin surface from it and the compiler validates it, so a node cannot show one arity and be checked against another. Non-variadic kinds leave it at 0.

Declaration
public virtual int AuthoredVariadicCount { get; }

Lower bound for this node’s arity; below it the pin surface clamps up.

Declaration
public virtual int VariadicMin { get; }

Upper bound for this node’s arity. Authoring beyond it is a compile error rather than a silent truncation, so raise it deliberately (channel nodes use DarkEffekt.Audity.AudityNodeSpec.MaxChannels) rather than to fit a value.

Declaration
public virtual int VariadicMax { get; }

Pin-surface arity: the authored count clamped into this node’s bounds. Deliberately NOT virtual - when a node could clamp here independently, a node that clamped for the editor but reported raw to the compiler (or the reverse) silently dropped everything past the cap.

Declaration
public int VariadicCount { get; }

True when this node’s pin surface is per-instance (op-dependent pins, a width setting): the compiler emits the node with its authored DarkEffekt.Audity.AudityNode.GetInputPorts(System.Collections.Generic.List%7bDarkEffekt.Audity.AudityPinSpec%7d)/DarkEffekt.Audity.AudityNode.GetOutputPorts(System.Collections.Generic.List%7bDarkEffekt.Audity.AudityPinSpec%7d) lists instead of the kind’s fixed spec. The kind’s exec must read pins by the instance layout (guard on DarkEffekt.Audity.AudityNodeDesc.inputCount).

Declaration
public virtual bool HasInstancePinSurface { get; }

Appends this node’s input ports (compiler and editor both consume this).

Declaration
public override void GetInputPorts(List<AudityPinSpec> ports)
Type Name
System.Collections.Generic.List<DarkEffekt.Audity.AudityPinSpec> ports

Appends this node’s output ports.

Declaration
public override void GetOutputPorts(List<AudityPinSpec> ports)
Type Name
System.Collections.Generic.List<DarkEffekt.Audity.AudityPinSpec> ports

By convention a kind node’s inline field is named after the pin id.

Declaration
public override string InlineValuePath(string portId)

System.String

Type Name
System.String portId

Bakes this node’s authored settings into its program param blob (layout per the kind’s *Params constants). Called by the compiler right after the node is added to the builder; the default bakes nothing.

Declaration
public virtual void BakeParams(AudityBakeContext bake)
Type Name
DarkEffekt.Audity.AudityBakeContext bake