ACR_ChooserCreator.CreatorSearch.WaitForSearch C# (CSharp) Method

WaitForSearch() public static method

public static WaitForSearch ( CLRScriptBase script, User currentUser, ACR_ChooserCreator currentTab, CreatorSearch awaitedSearch ) : void
script CLRScriptFramework.CLRScriptBase
currentUser User
currentTab ACR_ChooserCreator
awaitedSearch CreatorSearch
return void
        public static void WaitForSearch(CLRScriptBase script, User currentUser, ACR_ChooserCreator.ACR_CreatorCommand currentTab, CreatorSearch awaitedSearch)
        {
            if (awaitedSearch == null)
            {
                // Search has been removed. Abort.
                return;
            }
            if (awaitedSearch.CancellationPending)
            {
                // Search has been canceled. Abort.
                return;
            }
            if (currentUser.openCommand != currentTab)
            {
                // User has switched tabs. Kill the search.
                return;
            }
            if (currentUser.CreatorSearchResponse != null)
            {
                // Looks like we've finished. Draw a list!
                CreatorSearch oldSearch = currentUser.CurrentSearch;
                currentUser.CurrentSearch = null;
                oldSearch.Dispose();

                Waiter.DrawNavigatorCategory(script, currentUser.CreatorSearchResponse);
                switch (currentUser.openCommand)
                {
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_CREATURE_TAB:
                        currentUser.CurrentCreatureCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_ITEM_TAB:
                        currentUser.CurrentItemCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_LIGHTS_TAB:
                        currentUser.CurrentLightCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_PLACEABLE_TAB:
                        currentUser.CurrentPlaceableCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_TRAP_TAB:
                        currentUser.CurrentTrapCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_VFX_TAB:
                        currentUser.CurrentVisualEffectCategory = currentUser.CreatorSearchResponse;
                        break;
                    case ACR_ChooserCreator.ACR_CreatorCommand.ACR_CHOOSERCREATOR_FOCUS_WAYPOINT_TAB:
                        currentUser.CurrentWaypointCategory = currentUser.CreatorSearchResponse;
                        break;
                }
                return;
            }
            script.DelayCommand(1.0f, delegate { WaitForSearch(script, currentUser, currentTab, awaitedSearch); });
        }
    }