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; } }); }
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; } }