73 lines
2.0 KiB
Rust
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);
|
|
}
|
|
}
|