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