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).
Inherited Members
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 |
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[], List<string>)
Applies each option's submitSignals onto the matching element of an
options array property (a menu's Options or a modal's showModalParameters.Options). The
array is assumed already sized to the option DTOs (built by RecipeUiOptionFactory.Build).
Declaration
public static void ApplyOptionSignals(SerializedProperty optionsArray, RecipeUiOptionDto[] options, List<string> warnings)
Parameters
| Type | Name | Description |
|---|---|---|
| SerializedProperty | optionsArray | |
| RecipeUiOptionDto[] | options | |
| List<string> | warnings |
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[], 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. |