1use bevy::prelude::*;
2
3use crate::autopilot_types::{AutoDrive, DataRun, DatagenInit};
4use crate::recorder::{
5 AutoRecordTimer, Config as RecorderConfig, Motion as RecorderMotion, State as RecorderState,
6};
7use crate::ModeSet;
8
9pub struct SimRuntimePlugin;
11
12impl Plugin for SimRuntimePlugin {
13 fn build(&self, app: &mut App) {
14 app.configure_sets(
15 Update,
16 (ModeSet::Common, ModeSet::SimDatagen, ModeSet::Inference),
17 )
18 .insert_resource(AutoDrive::default())
19 .insert_resource(DataRun::default())
20 .insert_resource(DatagenInit::default())
21 .insert_resource(RecorderConfig::default())
22 .insert_resource(RecorderState::default())
23 .insert_resource(RecorderMotion::default())
24 .insert_resource(AutoRecordTimer::default());
25 }
26}
27
28pub fn register_runtime_systems(app: &mut App) {
30 SimRuntimePlugin.build(app);
31}