public static class ProjectMarkerThe file that says a directory is a Vixen project.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Doc 08 has named MyGame.vxproj since it was written, and it was never built. What it described — "Vixen project settings (YAML)" — turned out to be ProjectSettingsStore, one file per [DataContract] type, which doc 20's A4 built so that adding a setting is declaring a type. A single file beside that holding other project settings is the second mechanism the split makes unnecessary, so this is deliberately not that.
What it is is a marker, and that half of the question was genuinely unanswered. ProjectWorkspace.IsProject said "it has an Assets/ folder", which is weak in both directions: any directory with a folder of that name qualifies — a source tree with an Assets/ in it is not a project — and a project whose assets have all been deleted stops being one, which is a project the editor refuses to reopen precisely when somebody most needs it to.
⚠ Two fields, and each has a reader, which is the bar a shipped setting has to clear. Format is read by TryRead, which refuses a file from a future it does not understand rather than binding half of it; Engine is read by IsFromTheFuture, which is what lets the editor say "this project was made with a newer Vixen" instead of failing later and stranger. A third field with nothing behind it would teach people that the file does not matter.
⚠ It does not record the project's name. That is ProjectInfoSettings.ProductName, which the title bar and About already read — and two files answering "what is this called" is exactly the disagreement doc 20's A4 spends a page preventing.
Fields and properties (2)
public const string ExtensionWhat the file is called after the project's own name.
public const int CurrentFormatThe format this build writes and is the newest it understands.
Methods (4)
public static bool TryFind(string directory, out string path)Finds a project's marker.
public static bool TryRead(string directory, out ProjectMarkerFile marker)Reads a project's marker.
public static bool IsFromTheFuture(ProjectMarkerFile marker, string? engine = null)Whether a project was made by an engine newer than this one.
public static string Write(string engine)What a marker's text is, for the version and project name given.
Used by (5)
- ContentPipelineTestsVixen.Editor.Assets.Tests
- EditorApplicationVixen.Editor.App
- ProjectMarkerTestsVixen.Editor.Core.Tests
- ProjectWorkspaceVixen.Editor.Assets
- TemplateTestsVixen.Templates.Tests