use bevy::anti_alias::fxaa::Fxaa; use bevy::app::{App, Startup}; use bevy::core_pipeline::tonemapping::DebandDither; use bevy::post_process::bloom::Bloom; use crate::ecs::{MainCamera, Me}; use crate::prelude::*; pub fn render_plugin(app: &mut App) { app .add_systems(Startup, setup_graphics) .add_systems(Update, follow_camera); } fn setup_graphics(mut commands: Commands) { commands .spawn(Camera2d) .insert(Camera { clear_color: ClearColorConfig::Custom(Color::BLACK), ..default() }) .insert(Bloom::default()) .insert(DebandDither::Enabled) .insert(Fxaa::default()) .insert(MainCamera); } fn follow_camera( mut camera: Query<&mut Transform, (With, Without)>, player: Query<&Transform, With>, ) { let mut camera = camera.single_mut().unwrap(); let Ok(player) = player.single() else { return; }; camera.translation = player.translation; }