private void SetAsFirstSiblingIfLessShown(NewsItemNode newsItem, Transform containerTransform, GameObject itemObject) { if (containerTransform.childCount <= 1) { newsItem.newsItem.ShowCount++; } else { EntityBehaviour behaviour = containerTransform.GetChild(0).GetComponent <EntityBehaviour>(); if ((behaviour != null) && behaviour.Entity.HasComponent <NewsItemComponent>()) { NewsItemComponent component = behaviour.Entity.GetComponent <NewsItemComponent>(); if (newsItem.newsItem.ShowCount >= component.ShowCount) { newsItem.newsItem.ShowCount = component.ShowCount; } else { base.Log.InfoFormat("Reorder item to first: {0}", newsItem); itemObject.GetComponent <RectTransform>().SetAsFirstSibling(); newsItem.newsItem.ShowCount++; component.ShowCount--; } } } }
private bool NeedHideNewsItem(NewsItemNode newsItem) { NewsItemFilterEvent eventInstance = new NewsItemFilterEvent(); base.ScheduleEvent(eventInstance, newsItem); return(eventInstance.Hide); }
private void DeleteUIIfExists(NewsItemNode newsItem, bool immediate) { bool flag = newsItem.Entity.HasComponent <NewsItemUIComponent>(); base.Log.InfoFormat("DeleteUIIfExists: {0} {1}", flag, newsItem); if (flag) { NewsItemUIComponent component = newsItem.Entity.GetComponent <NewsItemUIComponent>(); component.gameObject.GetComponent <EntityBehaviour>().RemoveUnityComponentsFromEntity(); if (immediate) { Object.DestroyImmediate(component.gameObject); } else { Object.Destroy(component.gameObject); } } }
private void CreateUIIfNeed(NewsItemNode newsItem, NewsContainerNode container) { if (this.NeedHideNewsItem(newsItem)) { base.Log.InfoFormat("Hide newsItem: {0}", newsItem); } else { Transform containerTransform = container.newsContainer.GetContainerTransform(newsItem.newsItem.Data.Layout); if (containerTransform == null) { base.Log.ErrorFormat("Container for NewsItem not found: {0}", newsItem.newsItem.Data); } else { GameObject itemObject = Object.Instantiate <GameObject>(container.newsContainer.newsItemPrefab); itemObject.GetComponent <RectTransform>().SetParent(containerTransform, false); itemObject.GetComponent <EntityBehaviour>().BuildEntity(newsItem.Entity); this.seenNews.Add(newsItem.Entity.Id); this.SetAsFirstSiblingIfLessShown(newsItem, containerTransform, itemObject); } } }
public void Debug(NodeAddedEvent e, NewsItemNode newsItem) { base.Log.InfoFormat("Add NewsItem: {0}", newsItem.newsItem.Data); }
public void CreateUI(NodeAddedEvent e, [Combine] NewsItemNode newsItem, NewsContainerNode container) { this.CreateUIIfNeed(newsItem, container); }
public void UpdateUI(NewsItemUpdatedEvent e, NewsItemNode newsItem, [JoinAll] NewsContainerNode container) { base.Log.InfoFormat("Update NewsItem: {0}", newsItem); this.DeleteUIIfExists(newsItem, true); this.CreateUIIfNeed(newsItem, container); }
public void DeleteUI2(NodeRemoveEvent e, NewsContainerNode container, [JoinAll, Combine] NewsItemNode newsItem) { this.DeleteUIIfExists(newsItem, false); }
public void DeleteUI1(NodeRemoveEvent e, NewsItemNode newsItem, [JoinAll] NewsContainerNode container) { this.DeleteUIIfExists(newsItem, true); }