summaryrefslogtreecommitdiff
path: root/src/renderer
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2026-08-16 23:52:34 -0700
committerKai Stevenson <kai@kaistevenson.com>2026-08-16 23:52:34 -0700
commit3d476186f53d695c340c51dbd3aa14ff4621c520 (patch)
tree32e7c9ea79ca6de3160af4566f68273a20fa8e81 /src/renderer
parentf68d8371a11b002f5494c7294551a8f955e69c0c (diff)
trivial placement
Diffstat (limited to 'src/renderer')
-rw-r--r--src/renderer/mod.rs19
-rw-r--r--src/renderer/ui.rs31
2 files changed, 40 insertions, 10 deletions
diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs
index 39a507b..3076894 100644
--- a/src/renderer/mod.rs
+++ b/src/renderer/mod.rs
@@ -492,15 +492,16 @@ impl RendererState {
}
for (id, slot) in &self.renderer_rb_entities {
- let (x, y, cos, sin) = rb_sim_manager.get_rb_entity_transform(*id).unwrap();
- instances.push(Instance {
- centre: [x, y],
- cos_sin: [cos, sin],
- half_size,
- dims,
- cell_offset: (slot * CELLS_IN_CHUNK) as u32,
- _padding: 0,
- });
+ if let Some((x, y, cos, sin)) = rb_sim_manager.get_rb_entity_transform(*id) {
+ instances.push(Instance {
+ centre: [x, y],
+ cos_sin: [cos, sin],
+ half_size,
+ dims,
+ cell_offset: (slot * CELLS_IN_CHUNK) as u32,
+ _padding: 0,
+ });
+ }
}
self.queue
diff --git a/src/renderer/ui.rs b/src/renderer/ui.rs
index 77af59d..590c720 100644
--- a/src/renderer/ui.rs
+++ b/src/renderer/ui.rs
@@ -20,7 +20,7 @@ pub fn draw_egui<'a>(
let material = config.brush_material.def();
// material combobox
- egui::ComboBox::from_label("Select a material")
+ egui::ComboBox::from_label("Select a brush material")
.selected_text(format!(
"Material: [{}, d={}]",
material.name, material.density,
@@ -43,6 +43,35 @@ pub fn draw_egui<'a>(
}
});
+ let dropper_material = config.brush_material.def();
+
+ egui::ComboBox::from_label("Select a dropper material")
+ .selected_text(format!(
+ "Material: [{}, d={}]",
+ dropper_material.name, dropper_material.density,
+ ))
+ .icon(move |ui, rect, _, _| {
+ ui.painter().add(egui::Shape::Circle(CircleShape {
+ center: rect.center(),
+ radius: rect.height() / 2.0,
+ stroke: Stroke::NONE,
+ fill: Color32::from_rgb(
+ dropper_material.color.0,
+ dropper_material.color.1,
+ dropper_material.color.2,
+ ),
+ }));
+ })
+ .show_ui(ui, |ui| {
+ for material_id in MaterialId::ALL {
+ ui.selectable_value(
+ &mut config.dropper_material,
+ material_id,
+ material_id.def().name,
+ );
+ }
+ });
+
ui.checkbox(&mut config.use_threading, "Use multithreading");
ui.label(format!("Real FPS: {}", diagnostics.fps));
ui.heading("Camera");