public void ClearFeedbackRequests(IUsesRequestFeedback caller)
 {
     // Check for null in order to prevent MissingReferenceException when exiting EXR
     if (m_LeftProxyNode && m_RightProxyNode)
     {
         m_LeftProxyNode.ClearFeedbackRequests(caller);
         m_RightProxyNode.ClearFeedbackRequests(caller);
     }
 }
Exemple #2
0
        /// <summary>
        /// Get a pooled FeedbackRequest object from the system
        /// </summary>
        /// <param name="user">The functionality user</param>
        /// <typeparam name="TRequest">The desired type of feedback request</typeparam>
        /// <param name="caller">The caller object</param>
        /// <returns>A feedback request object in its default initial state</returns>
        public static TRequest GetFeedbackRequestObject <TRequest>(this IUsesRequestFeedback user, IUsesRequestFeedback caller)
            where TRequest : FeedbackRequest, new()
        {
#if FI_AUTOFILL
            return(default(FeedbackRequest));
#else
            return(user.provider.GetFeedbackRequestObject <TRequest>(caller));
#endif
        }
        public void ClearFeedbackRequests(IUsesRequestFeedback caller)
        {
            if (caller == null) // Requesters are not allowed to clear all requests
            {
                return;
            }

            foreach (var receiver in m_FeedbackReceivers)
            {
                receiver.ClearFeedbackRequests(caller);
            }
        }
Exemple #4
0
        public void ClearFeedbackRequests(IUsesRequestFeedback caller)
        {
            k_FeedbackRequestsCopy.Clear();
            foreach (var request in m_FeedbackRequests)
            {
                if (request.caller == caller)
                {
                    k_FeedbackRequestsCopy.Add(request);
                }
            }

            foreach (var request in k_FeedbackRequestsCopy)
            {
                RemoveFeedbackRequest(request);
            }
        }
        public TRequest GetFeedbackRequestObject <TRequest>(IUsesRequestFeedback caller)
            where TRequest : FeedbackRequest, new()
        {
            Queue <FeedbackRequest> pool;

            if (!m_FeedbackRequestPool.TryGetValue(typeof(TRequest), out pool))
            {
                pool = new Queue <FeedbackRequest>();
                m_FeedbackRequestPool[typeof(TRequest)] = pool;
            }

            if (pool.Count > 0)
            {
                var request = pool.Dequeue();
                request.Reset();
                request.caller = caller;
                return((TRequest)request);
            }

            return(new TRequest {
                caller = caller
            });
        }
Exemple #6
0
        /// <summary>
        /// Clear all feedback requests submitted by this caller from the system
        /// </summary>
        /// <param name="user">The functionality user</param>
        /// <param name="caller">The caller object</param>
        public static void ClearFeedbackRequests(this IUsesRequestFeedback user, IUsesRequestFeedback caller)
        {
#if !FI_AUTOFILL
            user.provider.ClearFeedbackRequests(caller);
#endif
        }
Exemple #7
0
        /// <summary>
        /// Remove a feedback request from the system
        /// </summary>
        /// <param name="user">The functionality user</param>
        /// <param name="request">The feedback request</param>
        public static void RemoveFeedbackRequest(this IUsesRequestFeedback user, FeedbackRequest request)
        {
#if !FI_AUTOFILL
            user.provider.RemoveFeedbackRequest(request);
#endif
        }