From 6703f1c56605ca7dca8f7fe87b79badb764bd461 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 18 Jan 2025 00:57:22 +0100 Subject: profiler interface --- client/src/state.rs | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'client/src/state.rs') diff --git a/client/src/state.rs b/client/src/state.rs index 60be957..439b7ca 100644 --- a/client/src/state.rs +++ b/client/src/state.rs @@ -15,7 +15,12 @@ along with this program. If not, see . */ use crate::{ - audio::Audio, camera::Camera, download::Downloader, network::Network, renderer::Renderer, + audio::Audio, + camera::Camera, + download::Downloader, + interfaces::{InterfaceData, ui_selector}, + network::Network, + renderer::Renderer, ui::UiEvent, }; use anyhow::{Context, Result}; @@ -98,29 +103,15 @@ impl<'a> State<'a> { if !down || button != MouseButton::Right { return; } - let pi = self.prefab_index.clone(); - let net = self.network.clone(); + let idata = Arc::new(InterfaceData { + scene_prepare: self.renderer.scene_prepare.clone(), + downloader: self.downloader.clone(), + network: self.network.clone(), + prefab_index: self.prefab_index.clone(), + }); self.renderer .ui_renderer - .add_surface(self.camera.new_ui_affine(), move |ctx| { - let mut open = true; - egui::Window::new("Prefab Index") - .open(&mut open) - .show(ctx, |ui| { - for (key, res) in &pi.0 { - ui.horizontal(|ui| { - ui.label(key); - if ui.button("Add").clicked() { - info!("spawn {res}"); - net.packet_send - .send(Packet::Add(Object::new(), res.clone())) - .unwrap(); - } - }); - } - }); - open - }); + .add_surface(self.camera.new_ui_affine(), ui_selector(idata)); } pub fn update(&mut self) -> Result<()> { let now = Instant::now(); -- cgit v1.2.3-70-g09d2