Newer
Older
mod save_file;
mod __plugin {
use bevy::prelude::*;
use iyes_loopless::prelude::ConditionSet;
use crate::persistance::save_file::{handle_save_event, sync_state_to_persistence};
use crate::persistance::{LoadFileEvent, SaveFileEvent};
use crate::system::flow::AppState;
pub struct PersistencePlugin;
impl Plugin for PersistencePlugin {
fn build(&self, app: &mut App) {
app.add_event::<SaveFileEvent>()
.add_event::<LoadFileEvent>()
.add_system_set(
ConditionSet::new()
.run_in_state(AppState::InGame)
.with_system(sync_state_to_persistence)
.with_system(handle_save_event)
.with_system(
|input: Res<Input<KeyCode>>, mut events: EventWriter<SaveFileEvent>| {
if input.just_released(KeyCode::Space) {
events.send(SaveFileEvent { filename: None });
}
},
)
.into(),
);
}
}
}
pub use __plugin::PersistencePlugin;
pub use save_file::{LoadFileEvent, PersistenceState, SaveFileEvent};