macro_rules! define_systems {
( complete_world: $complete_world:path,
before_init: $before_init:path,
prepare_events: $prepare_events:path,
$( $name:ident => $behavior:path {
gate: $gate:path,
present_when: $present_when:literal,
after: [ $( $after:ident ),* $(,)? ],
before: [ $( $before:ident ),* $(,)? ] $(,)?
} ),* $(,)? ) => { ... };
}Expand description
The system table. Generates the SYSTEMS table a world starts from; table
order is run order.
The three leading fields are the load-time passes around the systems: one
that completes the world before the gates read it, one that runs over the
world once the gates have built them and before their init, and one that
pre-creates the event queues a scheduled system’s declared access can
touch.
Every system is internal: it has no declarable asset, is never parsed from a
world or written to a blob, and is constructed by its gate from world
content. Each entry maps a name to the behavior type that implements
System, the gate that builds it, and a human-readable gate description;
the entry name doubles as the system’s stable display name for profiling and
logging.