use crate::ecs::{
prelude::Component,
storage::{DenseVecStorage, FlaggedStorage, NullStorage},
};
#[derive(Clone, Debug, Default)]
pub struct Hidden;
impl Component for Hidden {
type Storage = NullStorage<Self>;
}
#[derive(Clone, Debug)]
pub struct HiddenPropagate {
pub(crate) is_propagated: bool,
}
impl Component for HiddenPropagate {
type Storage = FlaggedStorage<Self, DenseVecStorage<Self>>;
}
impl HiddenPropagate {
pub fn new() -> Self {
Self {
is_propagated: false,
}
}
pub(crate) fn new_propagated() -> Self {
Self {
is_propagated: true,
}
}
pub fn is_propagated(&self) -> bool {
self.is_propagated
}
}