use bevy_ecs::{component::Component, entity::Entity, event::Event};
use crate::{IntoTooltipsContent, TooltipsData};
#[derive(Debug, Component)]
pub struct TooltipHighlighting {
pub entity: Entity,
}
#[derive(Debug, Component)]
pub struct TooltipLocked;
#[derive(Event)]
pub struct SpawnTooltip {
pub term: String,
pub entity: Entity,
}
impl SpawnTooltip {
pub fn new(term: impl Into<String>, entity: Entity) -> Self {
Self {
term: term.into(),
entity,
}
}
}
#[derive(Event)]
pub struct SpawnArbitraryTooltip {
pub entity: Entity,
pub tooltips_data: TooltipsData,
}
impl SpawnArbitraryTooltip {
pub fn new(
entity: Entity,
title: impl Into<String>,
content: impl IntoTooltipsContent,
) -> SpawnArbitraryTooltip {
let title = title.into();
let data = TooltipsData {
title,
content: content.into_tooltips_content(),
};
SpawnArbitraryTooltip {
entity,
tooltips_data: data,
}
}
pub fn from_tooltips_data(
entity: Entity,
tooltips_data: TooltipsData,
) -> SpawnArbitraryTooltip {
SpawnArbitraryTooltip {
entity,
tooltips_data,
}
}
}