bevy_scrolling_2d_camera/
lib.rs1use bevy::prelude::*;
2
3mod resources;
4mod systems;
5mod states;
6
7pub use resources::*;
8use systems::*;
9use states::*;
10
11pub struct ScrollingCameraPlugin;
12
13impl Plugin for ScrollingCameraPlugin {
14 fn build(&self, app: &mut App) {
15 app
16 .init_resource::<ScrollingCamera>()
17 .init_resource::<CameraVelocity>()
18 .init_resource::<CapturedMouseRightClickPosition>()
19 .init_resource::<ZoomBound>()
20 .init_state::<CameraState>()
21 .add_systems(Startup, spawn_camera)
22 .add_systems(Update, camera_move.run_if(in_state(CameraState::Scrolling)))
23 .add_systems(Update, capture_mouse_right_click_for_scrolling.run_if(in_state(CameraState::Idling)))
24 .add_systems(Update, control_camera_movment.run_if(in_state(CameraState::Scrolling)))
25 .add_systems(Update, camera_zoom)
26 ;
27 }
28}
29