Elin Decompiled Documentation EA 23.102 Nightly
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Pages
BaseList.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class BaseList : MonoBehaviour
6{
8
9 public Vector2 bgFix;
10
11 public Vector2 bgUvFix = Vector2.one;
12
14
16
17 public Action onBeforeRedraw;
18
19 public Action onAfterRedraw;
20
21 public bool useDefaultNoItem = true;
22
23 public bool numbering;
24
25 protected Transform transNoItem;
26
28
29 [NonSerialized]
30 public RawImage bgGrid;
31
32 [NonSerialized]
34
35 [NonSerialized]
36 public bool isBuilt;
37
38 public virtual int ItemCount => 0;
39
40 public virtual int RowCount => 0;
41
43
44 public virtual void NextSort()
45 {
46 List(sorts.NextItem(sortMode));
47 }
48
49 public virtual void List()
50 {
51 }
52
53 public virtual void List(UIList.SortMode sort)
54 {
55 }
56
57 public virtual void Redraw()
58 {
59 }
60
61 public virtual void Clear()
62 {
63 }
64
65 public virtual void Add(object o)
66 {
67 }
68
69 public void RefreshNoItem()
70 {
71 if (!transNoItem)
72 {
74 {
75 UIScrollView[] componentsInParent = base.transform.GetComponentsInParent<UIScrollView>(includeInactive: true);
76 transNoItem = Util.Instantiate(ResourceCache.Load<Transform>("NoItem"), (componentsInParent.Length != 0) ? componentsInParent[0].transform : base.transform.parent);
77 }
78 else
79 {
80 transNoItem = base.transform.Find("NoItem");
81 }
82 }
83 if ((bool)transNoItem)
84 {
85 transNoItem.SetActive(ItemCount == 0);
86 }
87 }
88
89 public void RefreshBGGrid()
90 {
91 if (bgType == UIList.BGType.none)
92 {
93 return;
94 }
95 int num = RowCount;
96 LayoutGroup component = base.transform.GetComponent<LayoutGroup>();
97 GridLayoutGroup gridLayoutGroup = component as GridLayoutGroup;
98 bool flag = bgType == UIList.BGType.stripe;
99 if (!bgGrid)
100 {
101 bgGrid = Util.Instantiate<RawImage>("UI/Element/List/BGList " + bgType, base.transform);
102 }
103 bgGrid.transform.SetAsFirstSibling();
104 if ((bool)gridLayoutGroup && gridLayoutGroup.constraint == GridLayoutGroup.Constraint.FixedColumnCount)
105 {
106 num = Mathf.CeilToInt((float)num / (float)gridLayoutGroup.constraintCount);
107 }
108 float height = num;
109 if (flag)
110 {
111 height = (float)num * 0.5f * (float)((num % 2 != 0) ? 1 : (-1));
112 }
113 float num2 = component?.padding.top ?? 0;
114 float num3 = (flag ? 0f : 1f) + bgFix.y;
115 float num4 = 0f;
116 num4 = (component as VerticalLayoutGroup)?.spacing ?? gridLayoutGroup?.spacing.y ?? 0f;
117 if (bgType == UIList.BGType.grid)
118 {
119 bgGrid.Rect().sizeDelta = new Vector2(0f, 0f);
120 bgGrid.Rect().anchoredPosition = new Vector2(0f, 0f);
121 }
122 else
123 {
124 bgGrid.Rect().sizeDelta = new Vector2(-8f, 0f - num2 + num4);
125 bgGrid.Rect().anchoredPosition = new Vector2(0f, (0f - num2) * 0.5f - num3);
126 }
127 float width = 1f;
128 float num5 = base.transform.Rect().rect.width;
129 if ((bool)gridLayoutGroup && gridLayoutGroup.constraint == GridLayoutGroup.Constraint.FixedColumnCount)
130 {
131 num5 = (float)gridLayoutGroup.constraintCount * (gridLayoutGroup.cellSize.x + gridLayoutGroup.spacing.x);
132 }
133 if (!flag)
134 {
135 int num6 = 64;
136 if (bgType == UIList.BGType.dot)
137 {
138 num6 = 60;
139 }
140 width = num5 / (float)num6 * bgUvFix.x;
141 }
142 if (bgType == UIList.BGType.grid && gridLayoutGroup.constraint == GridLayoutGroup.Constraint.FixedColumnCount)
143 {
144 width = gridLayoutGroup.constraintCount;
145 }
146 bgGrid.uvRect = new Rect(0f, 0f, width, height);
147 bgGrid.SetActive(ItemCount > 0);
148 }
149}
SkinType
Definition: SkinType.cs:2
Transform transNoItem
Definition: BaseList.cs:25
virtual void List()
Definition: BaseList.cs:49
void RefreshNoItem()
Definition: BaseList.cs:69
Vector2 bgUvFix
Definition: BaseList.cs:11
RawImage bgGrid
Definition: BaseList.cs:30
bool isBuilt
Definition: BaseList.cs:36
UIList.BGType bgType
Definition: BaseList.cs:7
virtual int ItemCount
Definition: BaseList.cs:38
UIList.SortMode[] sorts
Definition: BaseList.cs:15
bool useDefaultNoItem
Definition: BaseList.cs:21
UIList.ICallback callbacks
Definition: BaseList.cs:13
bool numbering
Definition: BaseList.cs:23
Action onAfterRedraw
Definition: BaseList.cs:19
virtual void List(UIList.SortMode sort)
Definition: BaseList.cs:53
SkinType skinType
Definition: BaseList.cs:27
virtual int RowCount
Definition: BaseList.cs:40
Action onBeforeRedraw
Definition: BaseList.cs:17
SkinRootStatic Skin
Definition: BaseList.cs:42
Vector2 bgFix
Definition: BaseList.cs:9
UIList.SortMode sortMode
Definition: BaseList.cs:33
virtual void Redraw()
Definition: BaseList.cs:57
virtual void Clear()
Definition: BaseList.cs:61
virtual void Add(object o)
Definition: BaseList.cs:65
void RefreshBGGrid()
Definition: BaseList.cs:89
virtual void NextSort()
Definition: BaseList.cs:44
static SkinRootStatic CurrentSkin
Definition: SkinManager.cs:82
Definition: UIList.cs:9
BGType
Definition: UIList.cs:16
SortMode
Definition: UIList.cs:27