Class ProjectWiringPlan
The immutable outcome of Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringPlanner.Plan(Serenity.ProjectRecipe.Infrastructure.Editor.SetupAssistant.MinimalLoopOptions,Serenity.CreateGame.Infrastructure.Editor.CreateGameScenesOptions,System.Collections.Generic.IReadOnlyList{Serenity.CreateGame.Infrastructure.Editor.Systems.SerenityInstallableSystem},System.String): what Initialize Serenity's Create step will do to wire the project — never author settings or menus, only wire the initialization pipeline profile, the selected systems' boot tasks, the boot/gameplay scenes and Health Check. Rendered by the Summary step and executed, item for item, by Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringRunner, so the plan's order and the executed order can never drift apart.
Inherited Members
Namespace: Serenity.CreateGame.Infrastructure.Editor.Wiring
Assembly: Serenity.UnityCreateGame.Infrastructure.Editor.dll
Syntax
public sealed class ProjectWiringPlan
Constructors
ProjectWiringPlan(PipelineProfileState, string, IReadOnlyList<string>, IReadOnlyList<BootTaskPlanItem>, IReadOnlyList<ScenePlanItem>, bool, IReadOnlyList<string>, BootSceneRepointPlanItem)
Declaration
public ProjectWiringPlan(ProjectWiringPlan.PipelineProfileState profileState, string targetProfilePath, IReadOnlyList<string> ambiguousProfilePaths, IReadOnlyList<BootTaskPlanItem> bootTasks, IReadOnlyList<ScenePlanItem> scenes, bool runHealthCheck, IReadOnlyList<string> missingRequiredSceneSettings, BootSceneRepointPlanItem bootSceneRepoint = null)
Parameters
| Type | Name | Description |
|---|---|---|
| ProjectWiringPlan.PipelineProfileState | profileState | |
| string | targetProfilePath | |
| IReadOnlyList<string> | ambiguousProfilePaths | |
| IReadOnlyList<BootTaskPlanItem> | bootTasks | |
| IReadOnlyList<ScenePlanItem> | scenes | |
| bool | runHealthCheck | |
| IReadOnlyList<string> | missingRequiredSceneSettings | |
| BootSceneRepointPlanItem | bootSceneRepoint |
Properties
AmbiguousProfilePaths
Declaration
public IReadOnlyList<string> AmbiguousProfilePaths { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<string> | Every project-owned profile found, only populated when ProfileState is Ambiguous. |
BlockingErrorMessage
Declaration
public string BlockingErrorMessage { get; }
Property Value
| Type | Description |
|---|---|
| string | The reader-facing reason HasBlockingError is true, or null when it is false. |
BootSceneRepoint
Declaration
public BootSceneRepointPlanItem BootSceneRepoint { get; }
Property Value
| Type | Description |
|---|---|
| BootSceneRepointPlanItem | Whether the project's existing boot scene file already references this run's target profile, needs repointing to it, or does not exist yet — null only when ProfileState is Ambiguous, since there is no resolved target to compare the scene's current reference against (Create is blocked outright in that case anyway). See Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringRunner.Run(Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringPlan,Serenity.ProjectRecipe.Infrastructure.Editor.SetupAssistant.MinimalLoopOptions,Serenity.CreateGame.Infrastructure.Editor.CreateGameScenesOptions,System.Collections.Generic.IReadOnlyList{Serenity.CreateGame.Infrastructure.Editor.Systems.SerenityInstallableSystem},Serenity.Global.Infrastructure.Editor.SerenityWizardActivityLog) for where NeedsRepoint is executed. |
BootTasks
Declaration
public IReadOnlyList<BootTaskPlanItem> BootTasks { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<BootTaskPlanItem> | One entry per selected, non-bootstrap system. |
HasBlockingError
Declaration
public bool HasBlockingError { get; }
Property Value
| Type | Description |
|---|---|
| bool | True when this plan cannot be executed as-is — an ambiguous profile, or scene generation promised with a required settings asset the project does not yet resolve. |
MissingRequiredSceneSettings
Declaration
public IReadOnlyList<string> MissingRequiredSceneSettings { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<string> | The simple type name of every settings type scene generation needs but cannot currently resolve from the project's live state (see Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringRunner.ResolveRequiredSceneSettings(System.Collections.Generic.IReadOnlyList{Serenity.CreateGame.Infrastructure.Editor.Systems.SerenityInstallableSystem})) — empty when scene generation is turned off or every one of them already resolves. Non-empty makes HasBlockingError true: the cookbook's own contract is that a row still Missing/In Package when Create runs BLOCKS scene generation with a message pointing back at the Settings step, rather than silently skipping the scenes while still reporting success — see Engram architecture/initialize-serenity-scene-generation-blocks-on-missing-settings. |
ProfileState
Declaration
public ProjectWiringPlan.PipelineProfileState ProfileState { get; }
Property Value
| Type | Description |
|---|---|
| ProjectWiringPlan.PipelineProfileState | Whether the target profile will be created, reused, or is ambiguous. |
RunHealthCheck
Declaration
public bool RunHealthCheck { get; }
Property Value
| Type | Description |
|---|---|
| bool | Whether Create also runs the Health Check validator — always true today; a named flag so a future run mode can turn it off without changing every caller's signature. |
Scenes
Declaration
public IReadOnlyList<ScenePlanItem> Scenes { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<ScenePlanItem> | One entry for the boot scene, one for the gameplay scene. |
TargetProfilePath
Declaration
public string TargetProfilePath { get; }
Property Value
| Type | Description |
|---|---|
| string | The profile this run will wire into — a would-be path when ProfileState is Create, the existing profile's real path when Reuse, and null when Ambiguous. |