logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    Inheritance
    object
    ProjectWiringPlan
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    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.

    In this article
    © 2026 Serenity. All Rights Reserved