Vixen
dd8b0a81
csharp
public static class GameSystemRegistry

Every system the loaded assemblies declared with GameSystemAttribute.

Read the guide page for this →

Remarks

Filled at compile time and read at run time, exactly as SceneBehaviorRegistry is. GameSystemGenerator emits one [ModuleInitializer] per assembly that declares anything, so the set is whatever a generator saw in the source — it survives trimming, and it is the same set in the editor and in a shipped game.

⚠ Which is also why the editor can read a project's frame without running the project. ProjectAssemblies.Load runs the module constructor of the assembly it loads, so the declarations are here the moment the project's code is loaded — before, and independently of, anything calling Game.OnInitialise.

Fields and properties (1)

  • public static IReadOnlyList<GameSystemDeclaration> Declared

    Every declared system, ordered by type name so a report is stable.

Methods (2)

  • public static void Declare(Type systemType, Type[] requires, Func<object[], ISystem> factory)

    Declares a system. Called by generated code.

  • public static int Evict(Assembly assembly)

    Forgets every system an assembly declared.

Used by (5)

  • GameSystemRegistrationAiVillage
  • GameSystemTestsVixen.Engine.Tests
  • GameSystemsVixen.Engine
  • ProjectAssembliesVixen.Editor.App
  • SystemsRunnerVixen.Cli