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 void Update() { if (this.swapTrigger || ((Time.time >= (this.swapBeginTime + this.swapPeriod)) || IsManualSwap())) { this.SwapItems(); this.swapTrigger = false; } float num = 0f; float itemSize = 0f; if (base.transform.childCount > 1) { RectTransform child = (RectTransform)base.transform.GetChild(0); itemSize = child.rect.width; if (this.swapping) { if (Time.time < (this.swapBeginTime + this.swapTime)) { num = (Time.time - this.swapBeginTime) / this.swapTime; } else { this.swapping = false; child.SetAsLastSibling(); child.gameObject.SetActive(false); this.mask.enabled = false; } } } for (int i = 0; i < base.transform.childCount; i++) { float offset = i - num; Transform child = base.transform.GetChild(i); bool flag = (i == 0) || ((i == 1) && this.swapping); if (flag != child.gameObject.activeSelf) { child.gameObject.SetActive(flag); if (flag) { NewsItemComponent component = child.GetComponent <EntityBehaviour>().Entity.GetComponent <NewsItemComponent>(); component.ShowCount++; } } this.SetOffset(child, itemSize, offset); this.OverlapFix(child); } }