generated from tipragot/rust
Improve selection system #78
|
@ -5,11 +5,6 @@ use bevy::prelude::*;
|
||||||
use super::renderer::TilesGap;
|
use super::renderer::TilesGap;
|
||||||
use super::Tile;
|
use super::Tile;
|
||||||
|
|
||||||
/// The event that is triggered when a tile is clicked.
|
|
||||||
///
|
|
||||||
/// The event contains the entity of the clicked tile.
|
|
||||||
#[derive(Event)]
|
|
||||||
pub struct TileJustClicked(pub Entity);
|
|
||||||
|
|
||||||
/// An event that is triggered when a mouse button is clicked.
|
/// An event that is triggered when a mouse button is clicked.
|
||||||
///
|
///
|
||||||
|
@ -52,7 +47,6 @@ impl Plugin for SelectTilePlugin {
|
||||||
app.add_systems(PreUpdate, mouse_handler)
|
app.add_systems(PreUpdate, mouse_handler)
|
||||||
.add_systems(PreUpdate, select_closest_tile)
|
.add_systems(PreUpdate, select_closest_tile)
|
||||||
.add_event::<ClickOnTheWorld>()
|
.add_event::<ClickOnTheWorld>()
|
||||||
.add_event::<TileJustClicked>()
|
|
||||||
.init_resource::<SelectedTile>();
|
.init_resource::<SelectedTile>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,7 +95,6 @@ fn mouse_handler(
|
||||||
fn select_closest_tile(
|
fn select_closest_tile(
|
||||||
tiles: Query<(Entity, &Transform, &Tile)>,
|
tiles: Query<(Entity, &Transform, &Tile)>,
|
||||||
mut click_event_reader: EventReader<ClickOnTheWorld>,
|
mut click_event_reader: EventReader<ClickOnTheWorld>,
|
||||||
mut clicked_tile_event_writer: EventWriter<TileJustClicked>,
|
|
||||||
tile_gap: Res<TilesGap>,
|
tile_gap: Res<TilesGap>,
|
||||||
mut current_entity: ResMut<SelectedTile>,
|
mut current_entity: ResMut<SelectedTile>,
|
||||||
) {
|
) {
|
||||||
|
@ -129,7 +122,6 @@ fn select_closest_tile(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(tile_entity) = closest_entity {
|
if let Some(tile_entity) = closest_entity {
|
||||||
clicked_tile_event_writer.send(TileJustClicked(tile_entity.clone()));
|
|
||||||
if current_entity.get_entity() == Some(tile_entity) {
|
if current_entity.get_entity() == Some(tile_entity) {
|
||||||
*current_entity = SelectedTile::None;
|
*current_entity = SelectedTile::None;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue