use bevy::core_pipeline::experimental::taa::{TemporalAntiAliasBundle, TemporalAntiAliasPlugin}; use bevy::core_pipeline::prepass::DepthPrepass; use bevy::input::mouse::{MouseMotion, MouseScrollUnit, MouseWheel}; use bevy::prelude::*; use bevy::window::CursorGrabMode; use shared::states::MenuState; use shared::tags::MainCamera; use world_generation::hex_utils::HexCoord; use world_generation::prelude::Map; use super::components::*; pub struct PhosCameraPlugin; impl Plugin for PhosCameraPlugin { fn build(&self, app: &mut App) { app.register_type::(); app.add_systems(PreStartup, setup); app.add_systems(Update, rts_camera_system.run_if(in_state(MenuState::InGame))); app.add_systems(PostUpdate, limit_camera_bounds.run_if(in_state(MenuState::InGame))); //Free Cam //app.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_to(Vec3::Z, Vec3::Y), ..default() }, PhosCamera::default(), MainCamera, DepthPrepass, PhosCameraTargets::default(), )) .insert(TemporalAntiAliasBundle::default()); *msaa = Msaa::Off; } fn update_camera( mut cam_query: Query<(&PhosCamera, &mut Transform)>, keyboard_input: Res>, time: Res