public interface IPlayerDeliveryDoc 50 § D2's Delivery service: what a player build would be, whether it can start, and starting one.
Remarks
The build's use cases as methods, published to plugins (#1295). Build Settings, Build and Run and the two radio submenus were private methods on the application closed over its fields, and the device panel reached them through an IDeviceDeploy the application implemented by forwarding to the same privates. One object does it now: the Build menu and the settings window are a module's names for these methods, and Deploy is the diagnostics module calling Build for the one kind of device a build can reach.
⚠ No device in this contract, and that is the reason it can be here. What Deploy means differs per kind of device — this machine is a publish and a launch, a phone is adb install — and the kinds are the device manager's vocabulary, not the build's. So the build answers "can I build and run here" and the module that owns the devices maps its kinds onto that, which is what lets the application stop naming a single device type.
⚠ In Vixen.Editor.Core rather than beside BuildStep in Vixen.Editor.Assets.Content, which is where doc 50 § D1 places the Delivery context. Nothing in the contract is an asset-pipeline type — PlayerBuildSettings is already this assembly's — and the module that deploys is one that references this assembly and not the import pipeline.
Fields and properties (2)
PlayerBuildSettings SettingsThe project's build settings, which is the one copy every surface reads and writes.
string TargetWhich target a build would use: the setting, or this machine when it is empty.
Events (1)
Action? ChangedRaised when something that is not an edit to the settings may have changed Refusal.
Methods (5)
IEnumerable<string> Scenes()Every scene in the project, project-relative, in path order.
string? SceneTrouble(string path)What would stop a listed scene shipping, or when nothing would.
string? Refusal()Why a player build cannot start, or when it can.
bool Build(bool launch, Action? finished = null)Builds the player, and optionally runs it.
void SaveSettings()Writes the build settings, which is what a menu tick and a field both do.
Used by (7)
- DeliveryModuleVixen.Editor.App
- DiagnosticsModuleVixen.Editor.Diagnostics
- EditorApplicationVixen.Editor.App
- PlayerDeliveryVixen.Editor.App
- PlayerDeliveryTestsVixen.Editor.App.Tests
- ProjectAssemblyTestsVixen.Editor.App.Tests
- ServiceReachTestsVixen.Editor.App.Tests