generate new levels
This commit is contained in:
+20
-2
@@ -152,8 +152,26 @@ impl eframe::App for DungeonApp {
|
|||||||
}
|
}
|
||||||
} else if panel_result.new_level_clicked {
|
} else if panel_result.new_level_clicked {
|
||||||
self.push_undo_snapshot();
|
self.push_undo_snapshot();
|
||||||
let blank_layout = DungeonLayout::default();
|
let level_index = self.levels.len();
|
||||||
self.levels.push(blank_layout);
|
let level_seed = seed::derive_seed(self.settings.seed, level_index as u64);
|
||||||
|
let layout = layout::generate_layout(
|
||||||
|
self.settings.cols,
|
||||||
|
self.settings.rows,
|
||||||
|
self.settings.room_count,
|
||||||
|
level_seed,
|
||||||
|
self.settings.min_room_size,
|
||||||
|
self.settings.max_room_size,
|
||||||
|
self.settings.square_rooms_only,
|
||||||
|
self.settings.min_corridor_width,
|
||||||
|
self.settings.max_corridor_width,
|
||||||
|
self.settings.corridor_randomness,
|
||||||
|
self.settings.dead_end_rooms_percent,
|
||||||
|
self.settings.pack_rooms_without_corridors,
|
||||||
|
door_settings_from_ui(&self.settings),
|
||||||
|
window_settings_from_ui(&self.settings),
|
||||||
|
);
|
||||||
|
let layout = populate_random_markers(layout, &self.settings);
|
||||||
|
self.levels.push(layout);
|
||||||
self.settings.active_level_index = self.levels.len() - 1;
|
self.settings.active_level_index = self.levels.len() - 1;
|
||||||
}
|
}
|
||||||
if ctx.input(|i| i.key_pressed(egui::Key::Delete) || i.key_pressed(egui::Key::Backspace)) {
|
if ctx.input(|i| i.key_pressed(egui::Key::Delete) || i.key_pressed(egui::Key::Backspace)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user