From 49740f1a49bbd1cd871ab5d8ee8e88c54f4a125c Mon Sep 17 00:00:00 2001 From: Julia Naomi Date: Sun, 28 Jan 2024 03:11:10 -0600 Subject: [PATCH 01/19] Initial Icon Support --- assets/branding/translate.svg | 1 + crates/editor_ui/Cargo.toml | 3 +++ crates/editor_ui/src/hierarchy.rs | 18 +++++++++++++++--- crates/editor_ui/src/icons.rs | 6 ++++++ crates/editor_ui/src/lib.rs | 2 ++ 5 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 assets/branding/translate.svg create mode 100644 crates/editor_ui/src/icons.rs diff --git a/assets/branding/translate.svg b/assets/branding/translate.svg new file mode 100644 index 00000000..30316da5 --- /dev/null +++ b/assets/branding/translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/editor_ui/Cargo.toml b/crates/editor_ui/Cargo.toml index ac0b06e3..e9c3fedb 100644 --- a/crates/editor_ui/Cargo.toml +++ b/crates/editor_ui/Cargo.toml @@ -23,6 +23,9 @@ space_shared.workspace = true serde.workspace = true bevy_egui = "0.24" +egui_extras = { version = "0.24", features = ["all_loaders"] } +image = { version = "0.24", features = ["jpeg", "png"] } +resvg = "0.37" egui-gizmo = "0.13" egui_dock = "0.9" diff --git a/crates/editor_ui/src/hierarchy.rs b/crates/editor_ui/src/hierarchy.rs index cff98bb1..1b346b77 100644 --- a/crates/editor_ui/src/hierarchy.rs +++ b/crates/editor_ui/src/hierarchy.rs @@ -1,13 +1,13 @@ #![allow(clippy::too_many_arguments)] use std::sync::Arc; -use bevy::{ecs::query::ReadOnlyWorldQuery, prelude::*, utils::HashMap}; +use bevy::{ecs::query::ReadOnlyWorldQuery, prelude::*, utils::HashMap, window::PrimaryWindow}; use bevy_egui::{egui::collapsing_header::CollapsingState, *}; use space_editor_core::prelude::*; use space_prefab::editor_registry::EditorRegistry; use space_undo::{AddedEntity, NewChange, RemovedEntity, UndoSet}; -use crate::ui_registration::{BundleReg, EditorBundleUntyped}; +use crate::{ui_registration::{BundleReg, EditorBundleUntyped}}; use space_shared::*; use super::{editor_tab::EditorTabName, EditorUiAppExt, EditorUiRef}; @@ -61,12 +61,20 @@ pub fn show_hierarchy( query: Query>, all_entites: Query, mut selected: Query>, + mut ctxs: Query<&mut EguiContext, With>, mut clone_events: EventWriter, ui_reg: Res, mut ui: NonSendMut, mut changes: EventWriter, mut state: ResMut, ) { + let Ok(mut ctx_ref) = ctxs.get_single_mut() else { + return; + }; + let ctx = ctx_ref.get_mut(); + + egui_extras::install_image_loaders(ctx); + let mut all: Vec<_> = if state.show_editor_entities { all_entites.iter().collect() } else { @@ -124,8 +132,12 @@ pub fn show_hierarchy( }); ui.spacing(); - + + + let image = egui::Image::from_bytes("Bundle.svg", crate::icons::BUNDLE.as_bytes()).max_size(bevy_egui::egui::vec2(16., 16.)); + ui.add(egui::Button::image_and_text(image, "Bundles")); ui.label("Spawnable bundles"); + for (category_name, category_bundle) in ui_reg.bundles.iter() { ui.menu_button(category_name, |ui| { let mut categories_vec: Vec<(&String, &EditorBundleUntyped)> = diff --git a/crates/editor_ui/src/icons.rs b/crates/editor_ui/src/icons.rs new file mode 100644 index 00000000..0de33355 --- /dev/null +++ b/crates/editor_ui/src/icons.rs @@ -0,0 +1,6 @@ +pub const TRANSLATE: &str = ""; +pub const ROTATION: &str = ""; +pub const SCALE: &str = " "; +pub const ENTITY: &str = ""; +pub const BUNDLE: &str = ""; +pub const COMPONENT: &str = ""; \ No newline at end of file diff --git a/crates/editor_ui/src/lib.rs b/crates/editor_ui/src/lib.rs index 622a4ca1..7ed2cd4e 100644 --- a/crates/editor_ui/src/lib.rs +++ b/crates/editor_ui/src/lib.rs @@ -54,6 +54,8 @@ pub mod camera_plugin; ///Selection logic pub mod selection; +pub mod icons; + use bevy_debug_grid::{Grid, GridAxis, SubGrid, TrackedGrid, DEFAULT_GRID_ALPHA}; use bevy_mod_picking::{ backends::raycast::RaycastPickable, From 1257441270621ac78e22d03658eb321fbd81dadd Mon Sep 17 00:00:00 2001 From: Julia Naomi Date: Mon, 29 Jan 2024 01:19:33 -0600 Subject: [PATCH 02/19] Adds icons --- crates/editor_ui/Cargo.toml | 1 - crates/editor_ui/src/bottom_menu.rs | 202 ++++++++++++++-------------- crates/editor_ui/src/hierarchy.rs | 81 ++++++----- crates/editor_ui/src/icons.rs | 108 ++++++++++++++- crates/editor_ui/src/ui_plugin.rs | 33 ++++- 5 files changed, 290 insertions(+), 135 deletions(-) diff --git a/crates/editor_ui/Cargo.toml b/crates/editor_ui/Cargo.toml index e9c3fedb..e2eb7b3e 100644 --- a/crates/editor_ui/Cargo.toml +++ b/crates/editor_ui/Cargo.toml @@ -24,7 +24,6 @@ serde.workspace = true bevy_egui = "0.24" egui_extras = { version = "0.24", features = ["all_loaders"] } -image = { version = "0.24", features = ["jpeg", "png"] } resvg = "0.37" egui-gizmo = "0.13" egui_dock = "0.9" diff --git a/crates/editor_ui/src/bottom_menu.rs b/crates/editor_ui/src/bottom_menu.rs index cb1ce837..7c217456 100644 --- a/crates/editor_ui/src/bottom_menu.rs +++ b/crates/editor_ui/src/bottom_menu.rs @@ -32,7 +32,7 @@ fn in_game_menu( mut state: ResMut>, time: Res