bevy_scrolling_2d_camera 0.3.0

A simple 2d camera plugin for bevy supporting scrolling with right mouse dragging.
Documentation
use bevy::prelude::*;

mod resources;
mod systems;
mod states;

pub use resources::*;
use systems::*;
use states::*;

pub struct ScrollingCameraPlugin;

impl Plugin for ScrollingCameraPlugin {
    fn build(&self, app: &mut App) {
        app
        .init_resource::<ScrollingCamera>()
        .init_resource::<CameraVelocity>()
        .init_resource::<CapturedMouseRightClickPosition>()
        .init_resource::<ZoomBound>()
        .init_state::<CameraState>()
        .add_systems(Startup, spawn_camera)
        .add_systems(Update, camera_move.run_if(in_state(CameraState::Scrolling)))
        .add_systems(Update, capture_mouse_right_click_for_scrolling.run_if(in_state(CameraState::Idling)))
        .add_systems(Update, control_camera_movment.run_if(in_state(CameraState::Scrolling)))
        .add_systems(Update, camera_zoom)
        ;
    }
}