Rename query.entity() to query.get() and query.get() to query.get_component() (#752)
This commit is contained in:
parent
ff626f2f6f
commit
ad940fbf6e
@ -564,7 +564,7 @@ mod tests {
|
|||||||
for entity in &mut entities.iter() {
|
for entity in &mut entities.iter() {
|
||||||
// query.get() does a "system permission check" that will fail if the entity is from a
|
// query.get() does a "system permission check" that will fail if the entity is from a
|
||||||
// new archetype which hasnt been "prepared yet"
|
// new archetype which hasnt been "prepared yet"
|
||||||
query.get::<u32>(entity).unwrap();
|
query.get_component::<u32>(entity).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_eq!(1, entities.iter().count());
|
assert_eq!(1, entities.iter().count());
|
||||||
@ -595,7 +595,7 @@ mod tests {
|
|||||||
for entity in &mut entities.iter() {
|
for entity in &mut entities.iter() {
|
||||||
// query.get() does a "system permission check" that will fail if the entity is from a
|
// query.get() does a "system permission check" that will fail if the entity is from a
|
||||||
// new archetype which hasnt been "prepared yet"
|
// new archetype which hasnt been "prepared yet"
|
||||||
query.get::<u32>(entity).unwrap();
|
query.get_component::<u32>(entity).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_eq!(1, entities.iter().count());
|
assert_eq!(1, entities.iter().count());
|
||||||
|
@ -437,35 +437,35 @@ mod tests {
|
|||||||
) {
|
) {
|
||||||
let entities = entity_query.iter().collect::<Vec<Entity>>();
|
let entities = entity_query.iter().collect::<Vec<Entity>>();
|
||||||
assert!(
|
assert!(
|
||||||
b_query.get::<B>(entities[0]).is_err(),
|
b_query.get_component::<B>(entities[0]).is_err(),
|
||||||
"entity 0 should not have B"
|
"entity 0 should not have B"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
b_query.get::<B>(entities[1]).is_ok(),
|
b_query.get_component::<B>(entities[1]).is_ok(),
|
||||||
"entity 1 should have B"
|
"entity 1 should have B"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
b_query.get::<A>(entities[1]).is_err(),
|
b_query.get_component::<A>(entities[1]).is_err(),
|
||||||
"entity 1 should have A, but b_query shouldn't have access to it"
|
"entity 1 should have A, but b_query shouldn't have access to it"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
b_query.get::<D>(entities[3]).is_err(),
|
b_query.get_component::<D>(entities[3]).is_err(),
|
||||||
"entity 3 should have D, but it shouldn't be accessible from b_query"
|
"entity 3 should have D, but it shouldn't be accessible from b_query"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
b_query.get::<C>(entities[2]).is_err(),
|
b_query.get_component::<C>(entities[2]).is_err(),
|
||||||
"entity 2 has C, but it shouldn't be accessible from b_query"
|
"entity 2 has C, but it shouldn't be accessible from b_query"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
a_c_query.get::<C>(entities[2]).is_ok(),
|
a_c_query.get_component::<C>(entities[2]).is_ok(),
|
||||||
"entity 2 has C, and it should be accessible from a_c_query"
|
"entity 2 has C, and it should be accessible from a_c_query"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
a_c_query.get::<D>(entities[3]).is_err(),
|
a_c_query.get_component::<D>(entities[3]).is_err(),
|
||||||
"entity 3 should have D, but it shouldn't be accessible from b_query"
|
"entity 3 should have D, but it shouldn't be accessible from b_query"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
d_query.get::<D>(entities[3]).is_ok(),
|
d_query.get_component::<D>(entities[3]).is_ok(),
|
||||||
"entity 3 should have D"
|
"entity 3 should have D"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ impl<'a, Q: HecsQuery> Query<'a, Q> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the query result for the given `entity`
|
/// Gets the query result for the given `entity`
|
||||||
pub fn entity(&self, entity: Entity) -> Result<<Q::Fetch as Fetch>::Item, QueryError>
|
pub fn get(&self, entity: Entity) -> Result<<Q::Fetch as Fetch>::Item, QueryError>
|
||||||
where
|
where
|
||||||
Q::Fetch: ReadOnlyFetch,
|
Q::Fetch: ReadOnlyFetch,
|
||||||
{
|
{
|
||||||
@ -88,7 +88,7 @@ impl<'a, Q: HecsQuery> Query<'a, Q> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the query result for the given `entity`
|
/// Gets the query result for the given `entity`
|
||||||
pub fn entity_mut(&mut self, entity: Entity) -> Result<<Q::Fetch as Fetch>::Item, QueryError> {
|
pub fn get_mut(&mut self, entity: Entity) -> Result<<Q::Fetch as Fetch>::Item, QueryError> {
|
||||||
// SAFE: system runs without conflicts with other systems. same-system queries have runtime borrow checks when they conflict
|
// SAFE: system runs without conflicts with other systems. same-system queries have runtime borrow checks when they conflict
|
||||||
unsafe {
|
unsafe {
|
||||||
self.world
|
self.world
|
||||||
@ -111,7 +111,7 @@ impl<'a, Q: HecsQuery> Query<'a, Q> {
|
|||||||
|
|
||||||
/// Gets a reference to the entity's component of the given type. This will fail if the entity does not have
|
/// Gets a reference to the entity's component of the given type. This will fail if the entity does not have
|
||||||
/// the given component type or if the given component type does not match this query.
|
/// the given component type or if the given component type does not match this query.
|
||||||
pub fn get<T: Component>(&self, entity: Entity) -> Result<&T, QueryError> {
|
pub fn get_component<T: Component>(&self, entity: Entity) -> Result<&T, QueryError> {
|
||||||
if let Some(location) = self.world.get_entity_location(entity) {
|
if let Some(location) = self.world.get_entity_location(entity) {
|
||||||
if self
|
if self
|
||||||
.component_access
|
.component_access
|
||||||
@ -133,7 +133,10 @@ impl<'a, Q: HecsQuery> Query<'a, Q> {
|
|||||||
|
|
||||||
/// Gets a mutable reference to the entity's component of the given type. This will fail if the entity does not have
|
/// Gets a mutable reference to the entity's component of the given type. This will fail if the entity does not have
|
||||||
/// the given component type or if the given component type does not match this query.
|
/// the given component type or if the given component type does not match this query.
|
||||||
pub fn get_mut<T: Component>(&mut self, entity: Entity) -> Result<Mut<'_, T>, QueryError> {
|
pub fn get_component_mut<T: Component>(
|
||||||
|
&mut self,
|
||||||
|
entity: Entity,
|
||||||
|
) -> Result<Mut<'_, T>, QueryError> {
|
||||||
let location = match self.world.get_entity_location(entity) {
|
let location = match self.world.get_entity_location(entity) {
|
||||||
None => return Err(QueryError::ComponentError(ComponentError::NoSuchEntity)),
|
None => return Err(QueryError::ComponentError(ComponentError::NoSuchEntity)),
|
||||||
Some(location) => location,
|
Some(location) => location,
|
||||||
@ -174,7 +177,7 @@ impl<'a, Q: HecsQuery> Query<'a, Q> {
|
|||||||
/// Sets the entity's component to the given value. This will fail if the entity does not already have
|
/// Sets the entity's component to the given value. This will fail if the entity does not already have
|
||||||
/// the given component type or if the given component type does not match this query.
|
/// the given component type or if the given component type does not match this query.
|
||||||
pub fn set<T: Component>(&mut self, entity: Entity, component: T) -> Result<(), QueryError> {
|
pub fn set<T: Component>(&mut self, entity: Entity, component: T) -> Result<(), QueryError> {
|
||||||
let mut current = self.get_mut::<T>(entity)?;
|
let mut current = self.get_component_mut::<T>(entity)?;
|
||||||
*current = component;
|
*current = component;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use super::{Camera, DepthCalculation};
|
use super::{Camera, DepthCalculation};
|
||||||
use crate::Draw;
|
use crate::Draw;
|
||||||
use bevy_core::FloatOrd;
|
use bevy_core::FloatOrd;
|
||||||
use bevy_ecs::{Entity, Query};
|
use bevy_ecs::{Entity, Query, With};
|
||||||
use bevy_property::Properties;
|
use bevy_property::Properties;
|
||||||
use bevy_transform::prelude::GlobalTransform;
|
use bevy_transform::prelude::GlobalTransform;
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ impl VisibleEntities {
|
|||||||
pub fn visible_entities_system(
|
pub fn visible_entities_system(
|
||||||
mut camera_query: Query<(&Camera, &GlobalTransform, &mut VisibleEntities)>,
|
mut camera_query: Query<(&Camera, &GlobalTransform, &mut VisibleEntities)>,
|
||||||
draw_query: Query<(Entity, &Draw)>,
|
draw_query: Query<(Entity, &Draw)>,
|
||||||
draw_transform_query: Query<(&Draw, &GlobalTransform)>,
|
draw_transform_query: Query<With<Draw, &GlobalTransform>>,
|
||||||
) {
|
) {
|
||||||
for (camera, camera_global_transform, mut visible_entities) in camera_query.iter_mut() {
|
for (camera, camera_global_transform, mut visible_entities) in camera_query.iter_mut() {
|
||||||
visible_entities.value.clear();
|
visible_entities.value.clear();
|
||||||
@ -39,19 +39,18 @@ pub fn visible_entities_system(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
let order =
|
let order = if let Ok(global_transform) = draw_transform_query.get(entity) {
|
||||||
if let Ok(global_transform) = draw_transform_query.get::<GlobalTransform>(entity) {
|
let position = global_transform.translation;
|
||||||
let position = global_transform.translation;
|
// smaller distances are sorted to lower indices by using the distance from the camera
|
||||||
// smaller distances are sorted to lower indices by using the distance from the camera
|
FloatOrd(match camera.depth_calculation {
|
||||||
FloatOrd(match camera.depth_calculation {
|
DepthCalculation::ZDifference => camera_position.z() - position.z(),
|
||||||
DepthCalculation::ZDifference => camera_position.z() - position.z(),
|
DepthCalculation::Distance => (camera_position - position).length(),
|
||||||
DepthCalculation::Distance => (camera_position - position).length(),
|
})
|
||||||
})
|
} else {
|
||||||
} else {
|
let order = FloatOrd(no_transform_order);
|
||||||
let order = FloatOrd(no_transform_order);
|
no_transform_order += 0.1;
|
||||||
no_transform_order += 0.1;
|
order
|
||||||
order
|
};
|
||||||
};
|
|
||||||
|
|
||||||
if draw.is_transparent {
|
if draw.is_transparent {
|
||||||
transparent_entities.push(VisibleEntity { entity, order })
|
transparent_entities.push(VisibleEntity { entity, order })
|
||||||
|
@ -78,15 +78,11 @@ pub fn camera_node_system(
|
|||||||
) {
|
) {
|
||||||
let render_resource_context = &**render_resource_context;
|
let render_resource_context = &**render_resource_context;
|
||||||
|
|
||||||
let (camera, global_transform) =
|
let (camera, global_transform) = if let Some(entity) = active_cameras.get(&state.camera_name) {
|
||||||
if let Some(camera_entity) = active_cameras.get(&state.camera_name) {
|
query.get(entity).unwrap()
|
||||||
(
|
} else {
|
||||||
query.get::<Camera>(camera_entity).unwrap(),
|
return;
|
||||||
query.get::<GlobalTransform>(camera_entity).unwrap(),
|
};
|
||||||
)
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
|
|
||||||
let staging_buffer = if let Some(staging_buffer) = state.staging_buffer {
|
let staging_buffer = if let Some(staging_buffer) = state.staging_buffer {
|
||||||
render_resource_context.map_buffer(staging_buffer);
|
render_resource_context.map_buffer(staging_buffer);
|
||||||
|
@ -14,7 +14,7 @@ where
|
|||||||
{
|
{
|
||||||
let parent_result = run(state, entity, parent_result, previous_result);
|
let parent_result = run(state, entity, parent_result, previous_result);
|
||||||
previous_result = None;
|
previous_result = None;
|
||||||
if let Ok(children) = children_query.entity(entity) {
|
if let Ok(children) = children_query.get(entity) {
|
||||||
for child in children.iter().cloned() {
|
for child in children.iter().cloned() {
|
||||||
previous_result = run_on_hierarchy(
|
previous_result = run_on_hierarchy(
|
||||||
children_query,
|
children_query,
|
||||||
|
@ -14,7 +14,7 @@ pub fn parent_update_system(
|
|||||||
// them from the `Children` of the `PreviousParent`.
|
// them from the `Children` of the `PreviousParent`.
|
||||||
for (entity, previous_parent) in removed_parent_query.iter() {
|
for (entity, previous_parent) in removed_parent_query.iter() {
|
||||||
log::trace!("Parent was removed from {:?}", entity);
|
log::trace!("Parent was removed from {:?}", entity);
|
||||||
if let Ok(mut previous_parent_children) = children_query.entity_mut(previous_parent.0) {
|
if let Ok(mut previous_parent_children) = children_query.get_mut(previous_parent.0) {
|
||||||
log::trace!(" > Removing {:?} from it's prev parent's children", entity);
|
log::trace!(" > Removing {:?} from it's prev parent's children", entity);
|
||||||
previous_parent_children.0.retain(|e| *e != entity);
|
previous_parent_children.0.retain(|e| *e != entity);
|
||||||
commands.remove_one::<PreviousParent>(entity);
|
commands.remove_one::<PreviousParent>(entity);
|
||||||
@ -35,9 +35,7 @@ pub fn parent_update_system(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove from `PreviousParent.Children`.
|
// Remove from `PreviousParent.Children`.
|
||||||
if let Ok(mut previous_parent_children) =
|
if let Ok(mut previous_parent_children) = children_query.get_mut(previous_parent.0) {
|
||||||
children_query.get_mut::<Children>(previous_parent.0)
|
|
||||||
{
|
|
||||||
log::trace!(" > Removing {:?} from prev parent's children", entity);
|
log::trace!(" > Removing {:?} from prev parent's children", entity);
|
||||||
(*previous_parent_children).0.retain(|e| *e != entity);
|
(*previous_parent_children).0.retain(|e| *e != entity);
|
||||||
}
|
}
|
||||||
@ -52,7 +50,7 @@ pub fn parent_update_system(
|
|||||||
// Add to the parent's `Children` (either the real component, or
|
// Add to the parent's `Children` (either the real component, or
|
||||||
// `children_additions`).
|
// `children_additions`).
|
||||||
log::trace!("Adding {:?} to it's new parent {:?}", entity, parent.0);
|
log::trace!("Adding {:?} to it's new parent {:?}", entity, parent.0);
|
||||||
if let Ok(mut new_parent_children) = children_query.get_mut::<Children>(parent.0) {
|
if let Ok(mut new_parent_children) = children_query.get_mut(parent.0) {
|
||||||
// This is the parent
|
// This is the parent
|
||||||
log::trace!(
|
log::trace!(
|
||||||
" > The new parent {:?} already has a `Children`, adding to it.",
|
" > The new parent {:?} already has a `Children`, adding to it.",
|
||||||
|
@ -8,14 +8,20 @@ pub fn transform_propagate_system(
|
|||||||
With<GlobalTransform, (Option<&Children>, &Transform, &mut GlobalTransform)>,
|
With<GlobalTransform, (Option<&Children>, &Transform, &mut GlobalTransform)>,
|
||||||
>,
|
>,
|
||||||
>,
|
>,
|
||||||
mut transform_query: Query<With<Parent, (&Transform, &mut GlobalTransform, Option<&Children>)>>,
|
mut transform_query: Query<With<Parent, (&Transform, &mut GlobalTransform)>>,
|
||||||
|
children_query: Query<With<Parent, With<GlobalTransform, Option<&Children>>>>,
|
||||||
) {
|
) {
|
||||||
for (children, transform, mut global_transform) in root_query.iter_mut() {
|
for (children, transform, mut global_transform) in root_query.iter_mut() {
|
||||||
*global_transform = GlobalTransform::from(*transform);
|
*global_transform = GlobalTransform::from(*transform);
|
||||||
|
|
||||||
if let Some(children) = children {
|
if let Some(children) = children {
|
||||||
for child in children.0.iter() {
|
for child in children.0.iter() {
|
||||||
propagate_recursive(&global_transform, &mut transform_query, *child);
|
propagate_recursive(
|
||||||
|
&global_transform,
|
||||||
|
&mut transform_query,
|
||||||
|
&children_query,
|
||||||
|
*child,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -23,15 +29,14 @@ pub fn transform_propagate_system(
|
|||||||
|
|
||||||
fn propagate_recursive(
|
fn propagate_recursive(
|
||||||
parent: &GlobalTransform,
|
parent: &GlobalTransform,
|
||||||
transform_query: &mut Query<
|
transform_query: &mut Query<With<Parent, (&Transform, &mut GlobalTransform)>>,
|
||||||
With<Parent, (&Transform, &mut GlobalTransform, Option<&Children>)>,
|
children_query: &Query<With<Parent, With<GlobalTransform, Option<&Children>>>>,
|
||||||
>,
|
|
||||||
entity: Entity,
|
entity: Entity,
|
||||||
) {
|
) {
|
||||||
log::trace!("Updating Transform for {:?}", entity);
|
log::trace!("Updating Transform for {:?}", entity);
|
||||||
|
|
||||||
let global_matrix = {
|
let global_matrix = {
|
||||||
if let Ok((transform, mut global_transform, _)) = transform_query.entity_mut(entity) {
|
if let Ok((transform, mut global_transform)) = transform_query.get_mut(entity) {
|
||||||
*global_transform = parent.mul_transform(*transform);
|
*global_transform = parent.mul_transform(*transform);
|
||||||
*global_transform
|
*global_transform
|
||||||
} else {
|
} else {
|
||||||
@ -39,14 +44,10 @@ fn propagate_recursive(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Collect children
|
if let Ok(Some(children)) = children_query.get(entity) {
|
||||||
let children = transform_query
|
for child in children.0.iter() {
|
||||||
.get::<Children>(entity)
|
propagate_recursive(&global_matrix, transform_query, children_query, *child);
|
||||||
.map(|e| e.0.iter().cloned().collect::<Vec<_>>())
|
}
|
||||||
.unwrap_or_default();
|
|
||||||
|
|
||||||
for child in children {
|
|
||||||
propagate_recursive(&global_matrix, transform_query, child);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +124,9 @@ pub fn ui_focus_system(
|
|||||||
if let Some(new_hovered_entity) = hovered_entity {
|
if let Some(new_hovered_entity) = hovered_entity {
|
||||||
if let Some(old_hovered_entity) = state.hovered_entity {
|
if let Some(old_hovered_entity) = state.hovered_entity {
|
||||||
if new_hovered_entity != old_hovered_entity {
|
if new_hovered_entity != old_hovered_entity {
|
||||||
if let Ok(mut interaction) = node_query.get_mut::<Interaction>(old_hovered_entity) {
|
if let Ok(mut interaction) =
|
||||||
|
node_query.get_component_mut::<Interaction>(old_hovered_entity)
|
||||||
|
{
|
||||||
if *interaction == Interaction::Hovered {
|
if *interaction == Interaction::Hovered {
|
||||||
*interaction = Interaction::None;
|
*interaction = Interaction::None;
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ fn update_node_entity(
|
|||||||
};
|
};
|
||||||
let global_z = z + parent_global_z;
|
let global_z = z + parent_global_z;
|
||||||
|
|
||||||
if let Ok(mut transform) = node_query.get_mut::<Transform>(entity) {
|
if let Ok(mut transform) = node_query.get_component_mut::<Transform>(entity) {
|
||||||
transform.translation.set_z(z);
|
transform.translation.set_z(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ pub fn text_system(
|
|||||||
// add queued text to atlases
|
// add queued text to atlases
|
||||||
let mut new_queued_text = Vec::new();
|
let mut new_queued_text = Vec::new();
|
||||||
for entity in queued_text.entities.drain(..) {
|
for entity in queued_text.entities.drain(..) {
|
||||||
if let Ok((text, mut calculated_size)) = queries.q1_mut().entity_mut(entity) {
|
if let Ok((text, mut calculated_size)) = queries.q1_mut().get_mut(entity) {
|
||||||
let font_atlases = font_atlas_sets
|
let font_atlases = font_atlas_sets
|
||||||
.get_or_insert_with(text.font.id, || FontAtlasSet::new(text.font.clone_weak()));
|
.get_or_insert_with(text.font.id, || FontAtlasSet::new(text.font.clone_weak()));
|
||||||
// TODO: this call results in one or more TextureAtlases, whose render resources are created in the RENDER_GRAPH_SYSTEMS
|
// TODO: this call results in one or more TextureAtlases, whose render resources are created in the RENDER_GRAPH_SYSTEMS
|
||||||
|
@ -32,9 +32,7 @@ fn camera_order_color_system(
|
|||||||
) {
|
) {
|
||||||
for (_camera, visible_entities) in camera_query.iter() {
|
for (_camera, visible_entities) in camera_query.iter() {
|
||||||
for visible_entity in visible_entities.iter() {
|
for visible_entity in visible_entities.iter() {
|
||||||
if let Ok(material_handle) =
|
if let Ok(material_handle) = material_query.get(visible_entity.entity) {
|
||||||
material_query.get::<Handle<StandardMaterial>>(visible_entity.entity)
|
|
||||||
{
|
|
||||||
let material = materials.get_mut(&*material_handle).unwrap();
|
let material = materials.get_mut(&*material_handle).unwrap();
|
||||||
let value = 1.0 - (visible_entity.order.0 - 10.0) / 7.0;
|
let value = 1.0 - (visible_entity.order.0 - 10.0) / 7.0;
|
||||||
material.albedo = Color::rgb(value, value, value);
|
material.albedo = Color::rgb(value, value, value);
|
||||||
|
@ -96,14 +96,14 @@ fn rotate(
|
|||||||
) {
|
) {
|
||||||
let angle = std::f32::consts::PI / 2.0;
|
let angle = std::f32::consts::PI / 2.0;
|
||||||
for (parent, mut children, _) in parents_query.iter_mut() {
|
for (parent, mut children, _) in parents_query.iter_mut() {
|
||||||
if let Ok(mut transform) = transform_query.entity_mut(parent) {
|
if let Ok(mut transform) = transform_query.get_mut(parent) {
|
||||||
transform.rotate(Quat::from_rotation_z(-angle * time.delta_seconds));
|
transform.rotate(Quat::from_rotation_z(-angle * time.delta_seconds));
|
||||||
}
|
}
|
||||||
|
|
||||||
// To iterate through the entities children, just treat the Children component as a Vec
|
// To iterate through the entities children, just treat the Children component as a Vec
|
||||||
// Alternatively, you could query entities that have a Parent component
|
// Alternatively, you could query entities that have a Parent component
|
||||||
for child in children.iter() {
|
for child in children.iter() {
|
||||||
if let Ok(mut transform) = transform_query.entity_mut(*child) {
|
if let Ok(mut transform) = transform_query.get_mut(*child) {
|
||||||
transform.rotate(Quat::from_rotation_z(angle * 2.0 * time.delta_seconds));
|
transform.rotate(Quat::from_rotation_z(angle * 2.0 * time.delta_seconds));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ fn button_system(
|
|||||||
mut text_query: Query<&mut Text>,
|
mut text_query: Query<&mut Text>,
|
||||||
) {
|
) {
|
||||||
for (_button, interaction, mut material, children) in interaction_query.iter_mut() {
|
for (_button, interaction, mut material, children) in interaction_query.iter_mut() {
|
||||||
let mut text = text_query.get_mut::<Text>(children[0]).unwrap();
|
let mut text = text_query.get_mut(children[0]).unwrap();
|
||||||
match *interaction {
|
match *interaction {
|
||||||
Interaction::Clicked => {
|
Interaction::Clicked => {
|
||||||
text.value = "Press".to_string();
|
text.value = "Press".to_string();
|
||||||
|
Loading…
Reference in New Issue
Block a user