private void LoadStickers(bool loadRecent = false) { ReturnStickerViewToPool(); if (!loadRecent && selectedTab == null) { return; } List <string> stickers = loadRecent ? dataProvider.GetRecentStickers() : dataProvider.GetAllStickers(selectedTab.Tag); if (stickers.Count == 0) { return; } foreach (string id in stickers) { FizzHypercasualDataItem stickerItem = dataProvider.GetSticker(id); if (stickerItem == null) { continue; } FizzHypercasualStickerView stickerView = GetStickerViewFromPool(); stickerView.gameObject.SetActive(true); stickerView.transform.SetParent(StickersContainer, false); stickerView.transform.localScale = Vector3.one; stickerView.SetStickerData(stickerItem); stickerView.OnStickerClick = OnStickerClicked; } }
private FizzHypercasualStickerView GetStickerViewFromPool() { if (StickerPool.childCount > 0) { return(StickerPool.GetChild(0).GetComponent <FizzHypercasualStickerView> ()); } FizzHypercasualStickerView stickerView = Instantiate(StickerViewPrefab); stickerView.transform.SetParent(StickerPool, false); return(stickerView); }
private void OnStickerClicked(FizzHypercasualStickerView stickerView) { if (stickerView == null) { return; } if (Time.realtimeSinceStartup < timeSinceLastSend + RESEND_TIMER) { return; } dataProvider.AddStickerToRecent(stickerView.StickerData.Id); timeSinceLastSend = Time.realtimeSinceStartup; if (OnSendData != null) { Dictionary <string, string> stickerData = new Dictionary <string, string> (); stickerData.Add("type", "fizz_predefine_sticker"); stickerData.Add("sticker_id", stickerView.StickerData.Id); OnSendData.Invoke(stickerData); } }