From 3d476186f53d695c340c51dbd3aa14ff4621c520 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sun, 16 Aug 2026 23:52:34 -0700 Subject: trivial placement --- src/renderer/mod.rs | 19 ++++++++++--------- src/renderer/ui.rs | 31 ++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 10 deletions(-) (limited to 'src/renderer') 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"); -- cgit v1.3.1