Class SerenityBootTaskCatalog
Resolves the ordered initialization-pipeline task asset paths from the shipped canonical profile, so
a generated boot scene's MinimalLoopOptions.BootTaskAssetPaths can be filled from real project
data instead of staying empty. Reads the profile's Tasks array via UnityEditor.SerializedObject
rather than a typed UnityInitializationPipelineProfile reference, so the Create Game module does
not need an asmdef dependency on the InitializationPipeline module for this one read. The selection-aware
overload is two halves: Serenity.CreateGame.Infrastructure.Editor.BootTaskSelectionRules subtracts an unselected attributed system's
task, then Serenity.CreateGame.Infrastructure.Editor.BootTaskSequenceRules adds back a selected system's task the shipped profile
never carried (or no longer carries) — resolving each such task's asset path here, via
Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskAuthoring.FindExistingInstallTask(System.String,System.String@,System.Collections.Generic.List{System.String}@) first and
Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskAuthoring.CreateInstallTaskAsset(System.String,System.String,System.String@) only when no shipped asset exists for it, and
placing it at Serenity.CreateGame.Infrastructure.Editor.BootTaskCanonicalOrder's deterministic position for it.
Inheritance
SerenityBootTaskCatalog
Assembly: Serenity.UnityCreateGame.Infrastructure.Editor.dll
Syntax
public static class SerenityBootTaskCatalog
Methods
TryResolveBootTaskAssetPaths(IReadOnlyCollection<string>, IReadOnlyList<SerenityInstallableSystem>, out IReadOnlyList<string>, out IReadOnlyList<string>, out string)
The selection-aware resolution above, also naming every task asset it had to create on the way
— a write the caller's own outcome must record.
Declaration
public static bool TryResolveBootTaskAssetPaths(IReadOnlyCollection<string> selectedInstallMethodNames, IReadOnlyList<SerenityInstallableSystem> catalog, out IReadOnlyList<string> taskAssetPaths, out IReadOnlyList<string> createdTaskAssetPaths, out string error)
Parameters
Returns
TryResolveBootTaskAssetPaths(IReadOnlyCollection<string>, IReadOnlyList<SerenityInstallableSystem>, out IReadOnlyList<string>, out string)
Resolves Serenity.CreateGame.Infrastructure.Editor.SerenityBootTaskCatalog.ShippedProfilePath's task asset paths, drops every attributed system's task
whose install method is not in selectedInstallMethodNames — and every task that
merely REQUIRES such a system (Serenity.CreateGame.Infrastructure.Editor.BootTaskRequirements) — through
FilterBySelection(IReadOnlyList<string>, Func<string, string>, IReadOnlyCollection<string>, IReadOnlyCollection<string>, Func<string, string>),
then adds back a selected system's task the shipped profile never carried in the first place
(InsertMissingSelectedTasks(IReadOnlyList<string>, IReadOnlyList<SerenityInstallableSystem>, Func<string, string>, Func<SerenityInstallableSystem, string>, IReadOnlyList<string>)). A generated boot scene's pipeline
then runs every infrastructure task plus exactly the systems the reader actually selected, however
the shipped profile itself is authored.
Declaration
public static bool TryResolveBootTaskAssetPaths(IReadOnlyCollection<string> selectedInstallMethodNames, IReadOnlyList<SerenityInstallableSystem> catalog, out IReadOnlyList<string> taskAssetPaths, out string error)
Parameters
Returns
TryResolveBootTaskAssetPaths(out IReadOnlyList<string>, out string)
Resolves the ordered task asset paths from Serenity.CreateGame.Infrastructure.Editor.SerenityBootTaskCatalog.ShippedProfilePath. Returns false
with an empty list and a caller-visible error when the profile is missing or its
serialized layout no longer matches.
Declaration
public static bool TryResolveBootTaskAssetPaths(out IReadOnlyList<string> taskAssetPaths, out string error)
Parameters
Returns
TryResolveShippedBootTaskAssetPaths(IReadOnlyCollection<string>, IReadOnlyList<SerenityInstallableSystem>, out IReadOnlyList<string>, out string)
Declaration
public static bool TryResolveShippedBootTaskAssetPaths(IReadOnlyCollection<string> selectedInstallMethodNames, IReadOnlyList<SerenityInstallableSystem> catalog, out IReadOnlyList<string> taskAssetPaths, out string error)
Parameters
Returns