Beispiel #1
0
        public void OnClick(ButtonClickEvent e, NewsItemWithUINode newsItem, [JoinAll] UserNode user, [JoinByUser] SingleNode <ClientLocaleComponent> clientLocale)
        {
            CheckForTutorialEvent eventInstance = new CheckForTutorialEvent();

            base.ScheduleEvent(eventInstance, newsItem);
            if (!eventInstance.TutorialIsActive)
            {
                base.Log.InfoFormat("OnClickNewsItem: {0}", newsItem);
                if (!string.IsNullOrEmpty(newsItem.newsItem.Data.InternalUrl))
                {
                    NavigateLinkEvent event3 = new NavigateLinkEvent {
                        Link = newsItem.newsItem.Data.InternalUrl
                    };
                    base.ScheduleEvent(event3, newsItem);
                }
                else
                {
                    string externalUrl = newsItem.newsItem.Data.ExternalUrl;
                    if (!string.IsNullOrEmpty(externalUrl))
                    {
                        Application.OpenURL(externalUrl.Replace(ID, user.Entity.Id.ToString()).Replace(RANK, user.userRank.Rank.ToString()).Replace(UID, user.userUid.Uid).Replace(LOCALE, clientLocale.component.LocaleCode));
                    }
                }
            }
        }
Beispiel #2
0
        public void UrlLoadComplete(LoadCompleteEvent e, NewsItemWithUINode newsItem)
        {
            WWWLoader loader = (WWWLoader)newsItem.Entity.GetComponent <UrlLoaderComponent>().Loader;
            Texture   tex    = this.LoadTexture(loader);

            if (IsErrorImage(tex))
            {
                base.Log.ErrorFormat("Image decode failed: {0} bytesDownloaded={1} bytesLength={2}", loader.URL, loader.WWW.bytesDownloaded, loader.WWW.bytes.Length);
            }
            else
            {
                base.Log.InfoFormat("PreviewImage loaded: {0}", loader.URL);
                this.textureCache[loader.URL] = tex;
                this.SetImage(newsItem, tex);
            }
        }
Beispiel #3
0
        public void InitUI(NodeAddedEvent e, NewsItemWithUINode newsItem)
        {
            NewsItem data = newsItem.newsItem.Data;

            newsItem.newsItemUI.HeaderText = data.HeaderText;
            if (!string.IsNullOrEmpty(data.Tooltip))
            {
                newsItem.newsItemUI.Tooltip = data.Tooltip;
            }
            if (data.Date.Year > 0x7d0)
            {
                newsItem.newsItemUI.DateText = data.Date.ToString("dd.MM.yyyy");
            }
            if (!string.IsNullOrEmpty(data.PreviewImageGuid))
            {
                base.Log.InfoFormat("Request load PreviewImage: {0}", data.PreviewImageGuid);
                base.ScheduleEvent(new AssetRequestEvent().Init <NewsItemImageDataComponent>(data.PreviewImageGuid), newsItem);
            }
            else if (!string.IsNullOrEmpty(data.PreviewImageUrl))
            {
                Texture texture;
                if (this.textureCache.TryGetValue(data.PreviewImageUrl, out texture))
                {
                    base.Log.InfoFormat("Get PreviewImage from cache: {0}", data.PreviewImageUrl);
                    this.SetImage(newsItem, texture);
                }
                else
                {
                    base.Log.InfoFormat("Load PreviewImage: {0}", data.PreviewImageUrl);
                    if (!newsItem.Entity.HasComponent <UrlComponent>())
                    {
                        UrlComponent component = new UrlComponent {
                            Url          = data.PreviewImageUrl,
                            Caching      = false,
                            NoErrorEvent = true
                        };
                        newsItem.Entity.AddComponent(component);
                    }
                }
            }
            if (!string.IsNullOrEmpty(data.CentralIconGuid))
            {
                base.Log.InfoFormat("Request load CentralIcon: {0}", data.CentralIconGuid);
                base.ScheduleEvent(new AssetRequestEvent().Init <NewsItemCentralIconDataComponent>(data.CentralIconGuid), newsItem);
            }
        }
Beispiel #4
0
 private void ConfigureImage(NewsItemWithUINode newsItem)
 {
     newsItem.newsItemUI.ImageContainer.FitInParent = newsItem.newsItem.Data.PreviewImageFitInParent;
 }
Beispiel #5
0
 private void SetImage(NewsItemWithUINode newsItem, Texture texture)
 {
     newsItem.newsItemUI.ImageContainer.SetRawImage(texture);
     this.ConfigureImage(newsItem);
 }