use bevy::prelude::*;
use bevy_cobweb::prelude::*;
use crate::prelude::*;
fn set_tracker(mut tracker: ResMut<RelocalizeTracker>)
{
tracker.waiting = true;
}
fn try_trigger_tracker(mut c: Commands, mut tracker: ResMut<RelocalizeTracker>, progress: Res<LoadProgress>)
{
if !tracker.waiting {
return;
}
if progress.is_loading() {
return;
}
tracker.waiting = false;
c.react().broadcast(RelocalizeApp);
}
#[derive(Resource, Default)]
struct RelocalizeTracker
{
waiting: bool,
}
pub struct RelocalizeApp;
pub(crate) struct RelocalizeTrackerPlugin;
impl Plugin for RelocalizeTrackerPlugin
{
fn build(&self, app: &mut App)
{
app.init_resource::<RelocalizeTracker>()
.react(|rc| rc.on_persistent(broadcast::<LanguagesNegotiated>(), set_tracker))
.add_systems(PreUpdate, try_trigger_tracker.after(LoadProgressSet::Check));
}
}