cloudiful_bevy_camera/
plugin.rs1use crate::events::{CameraSwitched, SwitchCameraRequest};
2use crate::systems::apply_switch_camera_requests;
3use bevy::prelude::*;
4
5#[derive(SystemSet, Debug, Clone, Copy, PartialEq, Eq, Hash)]
6pub(crate) enum CameraSwitchSystemSet {
7 EmitRequests,
8 ApplyRequests,
9}
10
11pub struct CameraSwitchPlugin;
12
13impl Plugin for CameraSwitchPlugin {
14 fn build(&self, app: &mut App) {
15 app.add_message::<SwitchCameraRequest>()
16 .add_message::<CameraSwitched>()
17 .configure_sets(
18 Update,
19 (
20 CameraSwitchSystemSet::EmitRequests,
21 CameraSwitchSystemSet::ApplyRequests.after(CameraSwitchSystemSet::EmitRequests),
22 ),
23 )
24 .add_systems(
25 Update,
26 apply_switch_camera_requests.in_set(CameraSwitchSystemSet::ApplyRequests),
27 );
28 }
29}