added key to the map
This commit is contained in:
+32
@@ -69,6 +69,22 @@ impl eframe::App for DungeonApp {
|
||||
self.regenerate_layout();
|
||||
}
|
||||
|
||||
egui::SidePanel::right("legend_panel")
|
||||
.resizable(false)
|
||||
.min_width(180.0)
|
||||
.default_width(200.0)
|
||||
.show_separator_line(true)
|
||||
.show(ctx, |ui| {
|
||||
ui.heading("Legend");
|
||||
ui.add_space(8.0);
|
||||
draw_legend_entry(ui, Color32::from_rgb(70, 120, 160), "Rooms");
|
||||
draw_legend_entry(ui, Color32::from_rgb(210, 190, 120), "Corridors");
|
||||
draw_legend_entry(ui, Color32::BLACK, "Walls");
|
||||
draw_legend_entry(ui, Color32::from_rgb(220, 70, 70), "Doors");
|
||||
draw_legend_entry(ui, Color32::from_rgb(80, 200, 120), "Locked Doors");
|
||||
draw_legend_entry(ui, Color32::from_rgb(70, 130, 220), "Archways");
|
||||
});
|
||||
|
||||
egui::CentralPanel::default().show(ctx, |ui| {
|
||||
let available = ui.available_size_before_wrap();
|
||||
let (response, painter) = ui.allocate_painter(available, egui::Sense::click_and_drag());
|
||||
@@ -559,3 +575,19 @@ fn draw_door_line(
|
||||
painter.line_segment([egui::pos2(x0, y), egui::pos2(x1, y)], stroke);
|
||||
}
|
||||
}
|
||||
|
||||
fn draw_legend_entry(ui: &mut egui::Ui, color: Color32, label: &str) {
|
||||
ui.horizontal(|ui| {
|
||||
let (rect, _resp) = ui.allocate_exact_size(egui::vec2(16.0, 16.0), egui::Sense::hover());
|
||||
ui.painter().rect_filled(rect, 0.0, color);
|
||||
ui.painter().rect_stroke(
|
||||
rect,
|
||||
0.0,
|
||||
Stroke::new(1.0, Color32::WHITE),
|
||||
egui::StrokeKind::Middle,
|
||||
);
|
||||
ui.add_space(6.0);
|
||||
ui.label(label);
|
||||
});
|
||||
ui.add_space(4.0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user