use crate::prelude::PhosCamera; use bevy::core_pipeline::experimental::taa::{TemporalAntiAliasBundle, TemporalAntiAliasPlugin}; use bevy::input::mouse::MouseMotion; use bevy::pbr::ScreenSpaceAmbientOcclusionBundle; use bevy::prelude::*; use bevy::window::CursorGrabMode; pub mod prelude; pub struct PhosCameraPlugin; impl Plugin for PhosCameraPlugin { fn build(&self, app: &mut App) { app.add_systems(Startup, setup) .add_systems(Update, (grab_mouse, (update_camera, update_camera_mouse).chain())); app.add_plugins(TemporalAntiAliasPlugin); } } fn setup(mut commands: Commands, mut msaa: ResMut) { commands .spawn(( Camera3dBundle { transform: Transform::from_xyz(0., 30., 0.).looking_at(Vec3::new(1000., 0., 1000.), Vec3::Y), ..default() }, PhosCamera { speed: 100., ..default() }, )) .insert(ScreenSpaceAmbientOcclusionBundle::default()) .insert(TemporalAntiAliasBundle::default()); *msaa = Msaa::Off; } fn update_camera( mut cam_query: Query<(&PhosCamera, &mut Transform)>, keyboard_input: Res>, time: Res