/// <summary>
        /// Set the component with <paramref name="accessor" /> to be dirty.
        /// </summary>
        /// <param name="accessor">Component accessor to mark as dirty.</param>
        /// <returns>True if successfully marked component as dirty. False if component is already dirty.</returns>
        public bool TrySetDirty(ComponentAccessor accessor)
        {
            var id = accessor.Id;

            if (_dirtyComponents.TryAdd(id, true))
            {
                return(true);
            }

            if (!_dirtyComponents.TryUpdate(id, true, false))
            {
                return(false);
            }

            return(true);
        }
 /// <summary>
 /// Reset component with <paramref name="accessor" /> to be not-dirty.
 /// </summary>
 /// <param name="accessor">Component accessor to mark as not-dirty.</param>
 public void Reset(ComponentAccessor accessor)
 {
     _dirtyComponents.AddOrUpdate(accessor.Id, false, (i, b) => false);
 }
 public static Type GetType(ComponentAccessor accessor)
 {
     return(_ids.Single(p => p.Value == accessor.Id).Key);
 }