PluginHost class abstract base

What a plugin is handed in install: the engine's registries, as this plugin sees them.

Every registry here is scoped to the plugin being installed. What it registers is tracked and cancelled when the plugin is switched off, ranked by its place in the install order, and checked against its manifest — a view plugin is refused a step system here, at the call, with its name in the message.

The kernel's registries and the rest

loop and events are the kernel's and every engine has them. Everything else — render steps, decoders, entity kinds, editor pieces, MCP tools — is a PluginRegistry some package of the engine provides, looked up by its type with registry. That is what lets a later step of the engine add a registry without this interface changing: the package that fills a registry declares it (DecoderRegistry in flutter3d_core, EntityKindRegistry in flutter3d_sim, EditorRegistry in flutter3d_editor_core, McpToolRegistry in flutter3d_mcp) and hands it to the host. An engine without, say, an editor has no editor registry, and a plugin that wants one either asks maybeRegistry or is refused by name.

Made by the plugin host: base, so a member added in a later minor arrives with a default.

Constructors

PluginHost()
For the plugin host's own class, which extends this; a plugin is handed one in install and never makes its own.
const

Properties

apiVersion → PluginApiVersion
The plugin API this engine provides.
no setter
backend → String?
The graphics backend the engine runs on, or null when it draws nothing — a server, a test.
no setter
events → EventRegistry
The event bus.
no setter
hashCode → int
The hash code for this object.
no setterinherited
loop → LoopRegistry
The loop's phases and systems.
no setter
manifest → PluginManifest
The manifest of the plugin being installed.
no setter
profile → SimulationProfile
What the simulation the plugin is installed in promises about its numbers. A plugin that relies on a capability asks it (host.profile.isBitExact), never which profile it is.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

maybeRegistry<R extends PluginRegistry>() → R?
The registry of type R, or null when this engine has none.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registry<R extends PluginRegistry>() → R
The registry of type R. Throws a StateError naming R and the plugin when this engine has none.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited