logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class RecipeSignalCodec

    Bridges recipe RecipeSignalDtos and the [SerializeReference] signal slots on menus, modals, and options, reusing RecipeSerializedPropertyCodec so a signal (parameterless marker or one carrying serialized data) is wired and captured exactly like a generic asset's managed reference. This is the implementation of "typed menu/modal signal wiring" (recipe automation Gap 4). A signal's own Guid travels as guid, never among its fields, so an import can match on it.

    Inheritance
    object
    RecipeSignalCodec
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.ProjectRecipe.Infrastructure.Editor
    Assembly: Serenity.UnityProjectRecipe.Infrastructure.Editor.dll
    Syntax
    public static class RecipeSignalCodec

    Fields

    OptionSubmitSignalsField

    The serialized field name of the per-option submit-signal list on a UiOption.

    Declaration
    public const string OptionSubmitSignalsField = "OnSubmitSignals"
    Field Value
    Type Description
    string

    SignalGuidField

    The serialized field name of a signal's own identity.

    Declaration
    public const string SignalGuidField = "SignalGuid"
    Field Value
    Type Description
    string

    Methods

    ApplyList(SerializedObject, string, RecipeSignalDto[], List<string>)

    Applies a list of signals to a [SerializeReference] List field on serializedObject. A null signals leaves the list untouched; a non-null array (including empty) replaces it.

    Declaration
    public static void ApplyList(SerializedObject serializedObject, string fieldName, RecipeSignalDto[] signals, List<string> warnings)
    Parameters
    Type Name Description
    SerializedObject serializedObject
    string fieldName
    RecipeSignalDto[] signals
    List<string> warnings

    ApplyOptionSignals(SerializedProperty, RecipeUiOptionDto[], IReadOnlyList<int>, List<string>)

    Merges each option's submitSignals into the element of an options array property (a menu's Options or a modal's showModalParameters.Options) that option became — elementIndexByOption, from the merge that matched options by identity. Signals are matched by identity too (RecipeSignalListMerger).

    Declaration
    public static RecipeIdentityRefusals ApplyOptionSignals(SerializedProperty optionsArray, RecipeUiOptionDto[] options, IReadOnlyList<int> elementIndexByOption, List<string> warnings)
    Parameters
    Type Name Description
    SerializedProperty optionsArray
    RecipeUiOptionDto[] options
    IReadOnlyList<int> elementIndexByOption
    List<string> warnings
    Returns
    Type Description
    RecipeIdentityRefusals

    Each recipe signal left out rather than written, over every option.

    ApplySingle(SerializedObject, string, RecipeSignalDto, List<string>)

    Applies a single signal to a managed-reference field on serializedObject. A null signal leaves the field untouched (so omitting it does not clear an existing signal).

    Declaration
    public static void ApplySingle(SerializedObject serializedObject, string fieldName, RecipeSignalDto signal, List<string> warnings)
    Parameters
    Type Name Description
    SerializedObject serializedObject
    string fieldName
    RecipeSignalDto signal
    List<string> warnings

    CaptureList(SerializedObject, string, List<string>)

    Captures a [SerializeReference] List signal field into DTOs, or null when empty/absent.

    Declaration
    public static RecipeSignalDto[] CaptureList(SerializedObject serializedObject, string fieldName, List<string> warnings)
    Parameters
    Type Name Description
    SerializedObject serializedObject
    string fieldName
    List<string> warnings
    Returns
    Type Description
    RecipeSignalDto[]

    CaptureOptionSignals(SerializedProperty, RecipeUiOptionDto[], List<string>)

    Captures each option's submit signals from an options array property into the matching option DTO's submitSignals (the inverse of ApplyOptionSignals(SerializedProperty, RecipeUiOptionDto[], IReadOnlyList<int>, List<string>)).

    Declaration
    public static void CaptureOptionSignals(SerializedProperty optionsArray, RecipeUiOptionDto[] optionDtos, List<string> warnings)
    Parameters
    Type Name Description
    SerializedProperty optionsArray
    RecipeUiOptionDto[] optionDtos
    List<string> warnings

    CaptureSingle(SerializedObject, string, List<string>)

    Captures a single managed-reference signal field into a DTO, or null when unset.

    Declaration
    public static RecipeSignalDto CaptureSingle(SerializedObject serializedObject, string fieldName, List<string> warnings)
    Parameters
    Type Name Description
    SerializedObject serializedObject
    string fieldName
    List<string> warnings
    Returns
    Type Description
    RecipeSignalDto

    FromManagedNode(RecipeNode)

    Converts a captured managed-reference node back to a signal DTO, or null when the slot is empty.

    Declaration
    public static RecipeSignalDto FromManagedNode(RecipeNode node)
    Parameters
    Type Name Description
    RecipeNode node

    A node captured from a signal property.

    Returns
    Type Description
    RecipeSignalDto

    The signal DTO, or null when the node is null/empty (an unset reference).

    ToManagedNode(RecipeSignalDto)

    Builds a managed-reference node from a signal DTO (the input to the codec's apply path).

    Declaration
    public static RecipeNode ToManagedNode(RecipeSignalDto signal)
    Parameters
    Type Name Description
    RecipeSignalDto signal

    The signal description (must be non-null with a type).

    Returns
    Type Description
    RecipeNode

    A Managed node.

    In this article
    © 2026 Serenity. All Rights Reserved