void SearchPatterns()
    {
        if (IsLoading)
        {
            return;
        }
        IsLoading = true;
        var searchPhrase = this.SearchInput.text.Trim();
        var message      = new DesignServer.Messages.ListPatterns();
        var query        = new DesignServer.SearchQuery();

        if (searchPhrase.ToLowerInvariant().StartsWith("de-"))
        {
            query.Code = searchPhrase.Substring(3).ToUpperInvariant();
        }
        else if (searchPhrase != "")
        {
            query.Phrase = searchPhrase;
        }

        query.Page       = this.Page;
        query.ProDesigns = ProDesigns;

        message.Query = query;
        Client.Connection.SendMessage(message, (resp) => {
            if (resp is ListPatternsResponse response)
            {
                IsLoading = false;
                Response  = response;
            }
        });
    }
示例#2
0
        protected override unsafe void ParseMessage(BinaryData binaryData)
        {
            int offset = 6;

            Query = SearchQuery.Read(binaryData, ref offset);

            var msg = new ListPatternsResponse(Query.GetResults());

            msg.TransferID = this.TransferID;
            Connection.SendMessage(msg);
        }
    // Update is called once per frame
    void Update()
    {
        if (SearchTimer > 0f)
        {
            SearchTimer -= Time.deltaTime;
            if (SearchTimer <= 0f)
            {
                this.SearchPatterns();
            }
        }

        /*if (UpdateTooltipLayout)
         * {*/
        UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(TooltipItems);
        UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(TooltipBackground);
        UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(Tooltip.GetComponent <RectTransform>());

/*            UpdateTooltipLayout = false;
 *      }*/

        if (this.Loading.gameObject.activeSelf != this.IsLoading)
        {
            this.Loading.gameObject.SetActive(this.IsLoading);
            this.ItemsContainer.gameObject.SetActive(!this.IsLoading);
        }

        if (Response != null)
        {
            Debug.Log("Response received");
            this.Pages          = Response.Results.Pages;
            this.PagesText.text = (this.Page + 1) + " / " + Response.Results.Pages;
            this.PagesContainer.SetActive(true);
            this.NextPage.gameObject.SetActive(this.Page < this.Pages - 1);
            this.PreviousPage.gameObject.SetActive(this.Page > 0);

            for (int i = ItemsContainer.transform.childCount - 1; i >= 0; i--)
            {
                Destroy(ItemsContainer.transform.GetChild(i).gameObject);
            }
            for (int i = 0; i < Response.Results.Patterns.Count; i++)
            {
                var item = GameObject.Instantiate(PatternPrefab, ItemsContainer.transform).GetComponent <PatternExchangePattern>();
                item.ShowPattern(Response.Results.Patterns[i], this);
            }
            Response = null;
        }
        if (CurrentPanel != null)
        {
            if (Opened && (FullOpen && OpenPhase < 1f) || (!FullOpen && OpenPhase < 0.3f))
            {
                OpenPhase = Mathf.Min(FullOpen ? 1f : 0.3f, OpenPhase + Time.deltaTime / OpenTime);
            }
            if ((Opened && !FullOpen && OpenPhase > 0.3f) || (!Opened && OpenPhase > 0f))
            {
                OpenPhase = Mathf.Max(!Opened ? 0 : 0.3f, OpenPhase - Time.deltaTime / OpenTime);
            }

            var phase1 = Mathf.Clamp(OpenPhase, 0f, Phase1) / (Phase1);
            var phase2 = (Mathf.Clamp(OpenPhase, Phase1, Phase2) - Phase1) / (Phase2 - Phase1);
            var phase3 = (Mathf.Clamp(OpenPhase, Phase2, 1f) - Phase2) / (1f - Phase2);

            phase1 = EasingFunction.EaseOutQuad(0f, 1f, phase1);
            phase2 = EasingFunction.EaseOutQuad(0f, 1f, phase2);
            phase3 = EasingFunction.EaseOutQuad(0f, 1f, phase3);

            Background.alpha   = phase1;
            Panel.localScale   = new Vector3(1f, phase2, 1f);
            CurrentPanel.alpha = phase3;
        }
    }