use crate::engine::{schedule::Schedule, state::State};
use crate::visualization::visualization_state::VisualizationState;
use bevy::prelude::{Component, Resource};
use std::sync::{Arc, Mutex};
use std::marker::PhantomData;
#[derive(Resource)]
pub struct ActiveState<S: State>(pub Arc<Mutex<S>>);
#[derive(Resource)]
pub struct ActiveSchedule(pub Arc<Mutex<Schedule>>);
#[derive(Resource)]
pub struct Initializer<I: VisualizationState<S> + 'static + bevy::prelude::Resource, S: State>(
pub I,
pub PhantomData<Arc<Mutex<S>>>,
);
#[derive(Component)]
pub struct SimulationRenderEntity;