Vixen
02b45cc4
csharp
public sealed class Project

A project on disk, and everything a command needs to work on it.

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

Remarks

⚠ The stores themselves are ProjectWorkspace's, in Vixen.Editor.Assets. They moved there when the editor grew import and build commands of its own: two ways of opening the same four things is two ways for one of them to be pointed at the wrong directory. What is left here is finding the project a command is meant to work on, which is a command-line concern and only that.

The properties are kept as forwarders rather than deleted, so that every call site reads the way it did — project.Database, not project.Workspace.Database.

Fields and properties (9)

  • public ProjectWorkspace Workspace

    The stores, opened together.

  • public ProjectPaths Paths

    What a project's directories are called.

  • public AssetDatabase Database

    The GUID index over Assets/.

  • public ObjectDatabase Artifacts

    Where imported chunks are stored, under Library/.

  • public IOdbBackend Chunks

    The store behind Artifacts, which is what a content build packs from.

  • public ImportCache Cache

    What the last import of each asset produced.

  • public string CacheFile

    Where the import cache is written.

  • public IFileProvider Files

    Source files, rooted at the project, which is what an importer's paths are relative to.

  • public static string HostTarget

    The build target to assume when nobody said.

Methods (5)

  • public static bool TryOpen(string? given, out Project project, out string error)

    Finds the project a command is meant to work on.

  • public static ImporterRegistry Importers()

    Which importers this build of the tool has.

  • public string DefaultOutput(string target)

    Where a build for a target goes when nobody said.

  • public List<AddressableGroup> Groups(out List<string> failures)

    Reads every .vxgroup the project defines.

  • public void Save()

    Writes the index and the import cache back.

Used by (6)

  • ContentBuildRunnerVixen.Cli
  • DoctorRunnerVixen.Cli
  • ImportRunnerVixen.Cli
  • ShaderBuildRunnerVixen.Cli
  • VixenCommandVixen.Cli
  • VixenCommandTestsVixen.Cli.Tests