Пример #1
0
        internal bool ForceEvaluation()
        {
            m_ForceEvaluationMarker.Begin();
            CycleStart();

            MemberTraitCacheStage.Complete();
            RelationTraitCacheStage.Complete();
            MemberConditionRatingStage.Complete();
            IncompleteGroupFilterStage.Complete();
            MemberMatchIntersectionStage.Complete();
            MemberDataAvailabilityStage.Complete();
            MemberTraitRequirementStage.Complete();
            MemberMatchReductionStage.Complete();
            GroupRelationRatingStage.Complete();
            FilterRelationMembersStage.Complete();
            MatchSearchStage.Complete();
            MarkDataUsedStage.Complete();
            MemberResultFillStage.Complete();
            GroupResultFillStage.Complete();

            m_ForceEvaluationMarker.End();
            // acquire handling comes after the profiler label because we've already found the answer
            AcquireHandlingStage.Complete();

            onStageGroupCompletion?.Invoke();
            // Return whether we had any matches this iteration
            return(Data.DefiniteMatchAcquireIndices.Count > 0);
        }
        internal bool ForceEvaluation()
        {
            m_ForceEvaluationMarker.Begin();

            CycleStart();
            AcquireHandlingStage.OnCycleStart();
            BestStandaloneMatchStage.CycleStart();

            CacheTraitReferencesStage.Complete();
            ConditionRatingStage.Complete();

            FindMatchProposalsStage.Complete();
            DataAvailabilityStage.Complete();
            TraitFilterStage.Complete();
            MatchReductionStage.Complete();
            BestStandaloneMatchStage.Complete();

            ResultFillStage.Transformation.applyOffsetToPose = m_Database.ApplyOffsetToPose;
            ResultFillStage.Complete();
            MarkUsedStage.Complete();

            m_ForceEvaluationMarker.End();
            // acquire handling usually takes longer than any other stage by far and we already have the answers
            AcquireHandlingStage.Complete();

            if (onStageGroupCompletion != null)
            {
                onStageGroupCompletion();
            }

            CurrentlyActive = false;
            // Return whether we had any matches this iteration
            return(Data.DefiniteMatchAcquireIndices.Count > 0);
        }