summaryrefslogtreecommitdiff
path: root/src/ui.rs
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2026-08-11 20:41:41 -0700
committerKai Stevenson <kai@kaistevenson.com>2026-08-11 20:41:41 -0700
commit7ce9781f86c56f932dabc3bc84b8d21d7be8fecc (patch)
tree25bd371970910934a1957a09e2e84936021d73af /src/ui.rs
parent6f67586b8fc6efdb86d0c9a9744c546da97c4dab (diff)
refactor sim loop
Diffstat (limited to 'src/ui.rs')
-rw-r--r--src/ui.rs34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/ui.rs b/src/ui.rs
index dbdfa69..e55aff1 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -1,10 +1,6 @@
-use egui::{Color32, Stroke, Ui, accesskit::ListStyle::Circle, epaint::CircleShape};
+use egui::{Color32, Stroke, Ui, epaint::CircleShape};
-use crate::{
- Config, Diagnostics, Input,
- camera::Camera,
- sim::materials::{MATERIALS, MaterialId},
-};
+use crate::{Config, Diagnostics, Input, camera::Camera, sim::materials::MaterialId};
pub fn draw_egui<'a>(
ui: &mut Ui,
@@ -16,7 +12,7 @@ pub fn draw_egui<'a>(
ui.heading("Config");
ui.add(egui::Slider::new(&mut config.brush_radius, 1..=100).text("Brush radius"));
- let material = MATERIALS[config.brush_material as usize];
+ let material = config.brush_material.def();
// material combobox
egui::ComboBox::from_label("Select a material")
@@ -25,19 +21,21 @@ pub fn draw_egui<'a>(
material.name, material.density,
))
.icon(move |ui, rect, _, _| {
- ui.painter().add(egui::Shape::Circle(
- (CircleShape {
- center: rect.center(),
- radius: rect.width() / 2.5,
- stroke: Stroke::NONE,
- fill: Color32::from_rgb(material.r, material.g, material.b),
- }),
- ));
+ ui.painter().add(egui::Shape::Circle(CircleShape {
+ center: rect.center(),
+ radius: rect.width() / 2.5,
+ stroke: Stroke::NONE,
+ fill: Color32::from_rgb(material.color[0], material.color[1], material.color[2]),
+ }));
})
.show_ui(ui, |ui| {
- ui.selectable_value(&mut config.brush_material, MaterialId::Void, "Void");
- ui.selectable_value(&mut config.brush_material, MaterialId::Sand, "Sand");
- ui.selectable_value(&mut config.brush_material, MaterialId::Water, "Water");
+ for material_id in MaterialId::ALL {
+ ui.selectable_value(
+ &mut config.brush_material,
+ material_id,
+ material_id.def().name,
+ );
+ }
});
ui.add(egui::Slider::new(&mut config.fps, 1..=1000).text("Max FPS"));