diff --git a/src/simulator/api-gdext/src/lib.rs b/src/simulator/api-gdext/src/lib.rs index 8a1a9923..d3a2aa12 100644 --- a/src/simulator/api-gdext/src/lib.rs +++ b/src/simulator/api-gdext/src/lib.rs @@ -37,7 +37,19 @@ use mc_mapgen::MapGenerator; struct MagicCivPhysicsExtension; #[gdextension] -unsafe impl ExtensionLibrary for MagicCivPhysicsExtension {} +unsafe impl ExtensionLibrary for MagicCivPhysicsExtension { + // p1-29f — register the in-box learned (`learned:*`) AI controller into + // the `mc_player_api::controllers` registry at engine init, alongside the + // auto-registered `scripted:default`. After this, the id appears in + // `mc_player_api::registered_ids()` / + // `GdGameState::registered_controller_ids()`. Registered at `Scene` level + // (after `Core`/`Servers`) so it runs once per engine boot. + fn on_level_init(level: InitLevel) { + if level == InitLevel::Scene { + mc_player_api::register_learned_controllers(); + } + } +} // ── GdGridState ─────────────────────────────────────────────────────────