added basic laod save functionality

This commit is contained in:
grimsace
2026-04-20 10:23:49 -05:00
parent ca6e89dc45
commit c82c1f2b20
5 changed files with 97 additions and 11 deletions
+18
View File
@@ -1,5 +1,6 @@
mod exporter;
mod layout;
mod saveandload;
mod seed;
mod settings;
mod startend;
@@ -139,6 +140,23 @@ impl eframe::App for DungeonApp {
} else if panel_result.reset_clicked || panel_result.settings_changed {
self.push_undo_snapshot();
self.regenerate_layout();
} else if panel_result.save_clicked {
let svg = exporter::build_svg(&self.layout, &self.settings);
if let Err(err) = saveandload::save_dungeon(&self.settings, &self.layout, svg) {
eprintln!("{err}");
}
} else if panel_result.load_clicked {
match saveandload::load_dungeon() {
Ok(data) => {
self.push_undo_snapshot();
self.settings = data.settings;
self.layout = data.layout;
// Don't regenerate_layout() here to preserve the exact loaded state.
}
Err(err) => {
eprintln!("{err}");
}
}
}
if ctx.input(|i| i.key_pressed(egui::Key::Delete) || i.key_pressed(egui::Key::Backspace)) {
self.pending_delete = true;