Vixen
dd8b0a81
csharp
public record class BuildStep

Something extra a player build does, contributed by a module, a plugin or a project script.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Doc 36 § D4's build-step row and doc 11's second unreachable extension point, on P2's terms. A contribution kind is a record in the assembly that owns it and IEditorRegistry.Add is the whole surface — there is no method on PluginContext for this and deliberately is not.

⚠ Here rather than in Vixen.Editor.Core, because what a step is handed is PlayerBuild's vocabulary. A plugin that wants to write one references this assembly, which is the same bargain ImporterContributions struck: the contract assembly does not drag a two-dozen-format model importer into every plugin that only adds a menu item.

⚠ A refusal is a string, like every other refusal in this subsystem. BuildRefusal, DeployRefusal and SceneTrouble all answer "why not, or null", and a step that threw instead would take the whole task down with a stack trace where a sentence belongs. An exception out of a step is still an exception — this is the way to stop a build, not the way to survive a bug.

Fields and properties (4)

  • public string Id

    What it is called, which is what a refusal is reported against.

  • public BuildStage Stage

    When it runs.

  • public Func<BuildStepContext, CancellationToken, ValueTask<string?>> Run

    The work, returning why the build must stop or .

  • public int Order

    What order steps of one stage run in; equal orders keep the order they were added in.

Methods (1)

  • public BuildStep(string Id, BuildStage Stage, Func<BuildStepContext, CancellationToken, ValueTask<string?>> Run)

    Something extra a player build does, contributed by a module, a plugin or a project script.

Used by (5)

  • BuildStepContributionTestsVixen.Editor.App.Tests
  • BuildStepTestsVixen.Editor.Assets.Tests
  • BuildStepsVixen.Editor.Assets
  • EditorApplicationVixen.Editor.App
  • PlayerBuildRequestVixen.Editor.App