This commit is contained in:
JMS55 2023-12-15 20:31:00 -08:00
parent 74e9fecc0f
commit 53f3756a66
2 changed files with 12 additions and 5 deletions

View file

@ -26,6 +26,7 @@ fn main() {
#[component]
fn Editor(cx: Scope) -> Element {
// TODO: When selected entity is despawned, need to reset this to None
let selected_entity = use_state(cx, || Option::<Entity>::None);
render! {
@ -43,6 +44,7 @@ fn SceneTree<'a>(cx: Scope, selected_entity: &'a UseState<Option<Entity>>) -> El
render! {
div {
onclick: move |_| selected_entity.set(None),
flex_direction: "column",
if entities.is_empty() {
rsx! { "No entities exist" }

View file

@ -4,9 +4,10 @@ use bevy::{
hierarchy::{BuildWorldChildren, Children, DespawnRecursive, Parent},
prelude::default,
render::color::Color,
text::{Text, TextStyle},
text::{Text, TextLayoutInfo, TextStyle},
ui::{
node_bundles::{NodeBundle, TextBundle},
widget::TextFlags,
*,
},
utils::{EntityHashMap, HashMap},
@ -62,9 +63,12 @@ pub fn apply_mutations(
for index in path {
entity = world.entity(entity).get::<Children>().unwrap()[*index as usize];
}
world
.entity_mut(entity)
.insert(Text::from_section(value, TextStyle::default()));
world.entity_mut(entity).insert((
Text::from_section(value, TextStyle::default()),
TextLayoutInfo::default(),
TextFlags::default(),
ContentSize::default(),
));
element_id_to_bevy_ui_entity.insert(id, entity);
bevy_ui_entity_to_element_id.insert(entity, id);
}
@ -93,6 +97,7 @@ pub fn apply_mutations(
existing_parent.insert_children(existing_index, &new);
DespawnRecursive { entity: existing }.apply(world);
// TODO: We're not removing child entities from the element maps
if let Some(existing_element_id) = bevy_ui_entity_to_element_id.remove(&existing) {
element_id_to_bevy_ui_entity.remove(&existing_element_id);
}
@ -182,7 +187,7 @@ impl BevyTemplateNode {
Self::TextNode(Text::from_section(*text, TextStyle::default()))
}
TemplateNode::Dynamic { id: _ } => Self::Node {
style: Default::default(),
style: (Style::default(), Color::NONE.into()),
children: Box::new([]),
},
TemplateNode::DynamicText { id: _ } => {