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, StarguideCamera, Me, MAIN_LAYER};
use crate::prelude::*;
pub fn render_plugin(app: &mut App) {
app
.add_systems(Startup, setup_graphics)
.add_systems(Update, follow_camera);
}
pub fn setup_graphics(mut commands: Commands) {
commands
.spawn(Camera2d)
.insert(Camera {
clear_color: ClearColorConfig::Custom(Color::BLACK),
..default()
})
.insert(MAIN_LAYER)
.insert(Bloom::default())
.insert(DebandDither::Enabled)
.insert(Fxaa::default())
.insert(MainCamera);
}
fn follow_camera(
mut camera: Query<&mut Transform, (With<MainCamera>, Without<Me>)>,
mut starguide_camera: Query<&mut Transform, (With<StarguideCamera>, Without<MainCamera>, Without<Me>)>,
player: Query<&Transform, With<Me>>,
) {
let mut camera = camera.single_mut().unwrap();
let mut starguide_camera = starguide_camera.single_mut().unwrap();
let Ok(player) = player.single() else {
return;
};
camera.translation = player.translation;
starguide_camera.translation = player.translation;
}