Provide public EntityRef::get_change_ticks_by_id that takes ComponentId (#6683)
				
					
				
			# Objective Fixes #6682 ## Solution Add `EntityRef::get_change_ticks_by_id` Add `EntityMut::get_change_ticks_by_id` Co-authored-by: Aleksandr Belkin <sQu1rr@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									e89b043210
								
							
						
					
					
						commit
						9b72780b82
					
				@ -82,6 +82,22 @@ impl<'w> EntityRef<'w> {
 | 
			
		||||
        unsafe { get_ticks_with_type(self.world, TypeId::of::<T>(), self.entity, self.location) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Retrieves the change ticks for the given [`ComponentId`]. This can be useful for implementing change
 | 
			
		||||
    /// detection in custom runtimes.
 | 
			
		||||
    ///
 | 
			
		||||
    /// **You should prefer to use the typed API [`EntityRef::get_change_ticks`] where possible and only
 | 
			
		||||
    /// use this in cases where the actual component types are not known at
 | 
			
		||||
    /// compile time.**
 | 
			
		||||
    #[inline]
 | 
			
		||||
    pub fn get_change_ticks_by_id(&self, component_id: ComponentId) -> Option<ComponentTicks> {
 | 
			
		||||
        if !self.contains_id(component_id) {
 | 
			
		||||
            return None;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // SAFETY: Entity location is valid and component_id exists.
 | 
			
		||||
        unsafe { get_ticks(self.world, component_id, self.entity, self.location) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Gets a mutable reference to the component of type `T` associated with
 | 
			
		||||
    /// this entity without ensuring there are no other borrows active and without
 | 
			
		||||
    /// ensuring that the returned reference will stay valid.
 | 
			
		||||
@ -206,6 +222,22 @@ impl<'w> EntityMut<'w> {
 | 
			
		||||
        unsafe { get_ticks_with_type(self.world, TypeId::of::<T>(), self.entity, self.location) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Retrieves the change ticks for the given [`ComponentId`]. This can be useful for implementing change
 | 
			
		||||
    /// detection in custom runtimes.
 | 
			
		||||
    ///
 | 
			
		||||
    /// **You should prefer to use the typed API [`EntityMut::get_change_ticks`] where possible and only
 | 
			
		||||
    /// use this in cases where the actual component types are not known at
 | 
			
		||||
    /// compile time.**
 | 
			
		||||
    #[inline]
 | 
			
		||||
    pub fn get_change_ticks_by_id(&self, component_id: ComponentId) -> Option<ComponentTicks> {
 | 
			
		||||
        if !self.contains_id(component_id) {
 | 
			
		||||
            return None;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // SAFETY: Entity location is valid and component_id exists.
 | 
			
		||||
        unsafe { get_ticks(self.world, component_id, self.entity, self.location) }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Gets a mutable reference to the component of type `T` associated with
 | 
			
		||||
    /// this entity without ensuring there are no other borrows active and without
 | 
			
		||||
    /// ensuring that the returned reference will stay valid.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user