save
Some checks failed
Rust Checks / checks (push) Failing after 2m32s
Rust Checks / checks (pull_request) Failing after 3m15s

This commit is contained in:
CoCo_Sol 2024-03-31 23:47:04 +02:00
parent ceca7d3681
commit ab0b90326e
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,38 @@
//! The file that contains the hover logic.
use bevy::prelude::*;
/// The plugin for the hover system.
pub struct HoverPlugin;
impl Plugin for HoverPlugin {
fn build(&self, app: &mut App) {
app.add_systems(Update, hovering);
}
}
/// A component that stores the hover textures and the original texture.
#[derive(Component, Clone)]
struct HoveredTexture {
/// The original texture.
texture: Handle<Image>,
/// The hovered texture.
hovered_texture: Handle<Image>,
}
/// The system that applies the great texture to the hovered entity.
fn hovering(
mut interaction_query: Query<
(&Interaction, &HoveredTexture, &mut UiImage),
Changed<Interaction>,
>,
) {
for (interaction, textures, mut image) in interaction_query.iter_mut() {
match *interaction {
Interaction::Hovered => image.texture = textures.hovered_texture.clone(),
Interaction::None => image.texture = textures.texture.clone(),
Interaction::Pressed => (),
}
}
}

View file

@ -6,6 +6,7 @@ use networking::PlayerRank;
use serde::{Deserialize, Serialize};
pub mod camera;
pub mod hover;
pub mod map;
pub mod networking;
pub mod responsive_scale;