diff --git a/crates/border-wars/src/map/renderer.rs b/crates/border-wars/src/map/renderer.rs deleted file mode 100644 index ad38cce..0000000 --- a/crates/border-wars/src/map/renderer.rs +++ /dev/null @@ -1,56 +0,0 @@ -//! All functions related to the rendering of the map. - -use bevy::prelude::*; - -use super::Tile; -use crate::map::TilePosition; - -/// A plugin to render the map. -pub struct RendererPlugin; - -impl Plugin for RendererPlugin { - fn build(&self, app: &mut App) { - app.add_systems(Startup, setup_camera).add_systems( - Update, - render_map.run_if(in_state(crate::CurrentScene::Game)), - ); - } -} - -/// Sets up the camera. -fn setup_camera(mut commands: Commands) { - commands.spawn(Camera2dBundle::default()); -} - -impl Tile { - /// Returns the texture handle of the tile. - pub fn get_texture(&self, asset_server: &AssetServer) -> Handle { - match self { - Tile::Grass => asset_server.load("tiles/grass.png"), - Tile::Forest => asset_server.load("tiles/forest.png"), - Tile::Hill => asset_server.load("tiles/hill.png"), - } - } -} - -/// Renders the map. -fn render_map( - query: Query<(Entity, &TilePosition, &Tile), Changed>, - mut commands: Commands, - asset_server: Res, -) { - for (entity, position, tile) in query.iter() { - let pixel_position_ratio = position.to_pixel_coordinates(); - let pixel_position = (50. * pixel_position_ratio.x, pixel_position_ratio.y * 30.); - - commands.entity(entity).insert(SpriteBundle { - transform: Transform::from_translation(Vec3 { - x: pixel_position.0, - y: pixel_position.1, - z: 0., - }), - texture: tile.get_texture(&*asset_server), - ..default() - }); - } -}