Files
dorf/src/main.rs
T
2025-01-17 20:05:08 +00:00

73 lines
2.0 KiB
Rust

use bevy::prelude::*;
mod camera;
mod citizen;
mod constants;
mod cursor;
mod game;
mod item;
mod tile;
mod tilemap;
mod tiles;
use bevy::diagnostic::FrameTimeDiagnosticsPlugin;
fn main() {
App::new()
.insert_resource(game::ZIndex(0.0))
.add_plugins(
DefaultPlugins
.set(WindowPlugin {
primary_window: Some(Window {
title: String::from("Dorf"),
..Default::default()
}),
..Default::default()
})
.set(ImagePlugin::default_nearest()),
)
.add_plugins(FrameTimeDiagnosticsPlugin::default()) // Add the FrameTimeDiagnosticsPlugin here
.insert_resource(ClearColor(Color::srgb(0.0, 0.0, 0.0)))
.add_plugins(tilemap::TilemapPlugin)
.add_systems(
Startup,
(
camera::spawn_panning_camera,
cursor::setup_cursor,
citizen::spawn_citizens,
),
)
.add_systems(
FixedUpdate,
(
camera::camera_movement,
citizen::update_citizen_targets,
citizen::citizen_movement,
cursor::move_cursor,
// citizen::check_citizen_positions_for_chunks,
),
)
.init_resource::<tile::CameraMoved>()
.add_systems(
Update,
(
tile::camera_z_movement,
tile::update_tile_visibility
.run_if(|camera_moved: Res<tile::CameraMoved>| camera_moved.0),
log_fps_system,
),
)
.run();
}
use bevy::diagnostic::DiagnosticsStore;
fn log_fps_system(diagnostics: Res<DiagnosticsStore>) {
if let Some(fps) = diagnostics
.get(&FrameTimeDiagnosticsPlugin::FPS)
.and_then(|fps_diagnostic| fps_diagnostic.average())
{
println!("Average FPS: {:.2}", fps);
}
}