Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
MsgBlock.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using UnityEngine.UI;
4
5public class MsgBlock : MonoBehaviour
6{
7 public static MsgBlock lastBlock;
8
9 public static string lastText;
10
11 public int countElements;
12
13 public Image bg;
14
15 public LayoutGroup layout;
16
17 public CanvasGroup cg;
18
19 private RectTransform rect;
20
21 [NonSerialized]
22 public MsgBox box;
23
24 [NonSerialized]
25 public UIText txt;
26
27 [NonSerialized]
28 public int repeat;
29
30 private void Awake()
31 {
32 rect = this.Rect();
33 }
34
35 public void Append(string s, Color col)
36 {
38 txt.SetText(s, col);
39 txt.RebuildLayout();
41 lastBlock = this;
42 lastText = s;
43 repeat = 0;
44 }
45
46 public void Append(Sprite s, bool fitLine = false)
47 {
48 Transform transform = PoolManager.Spawn(box.prefabs.image, layout);
49 Image componentInChildren = transform.GetComponentInChildren<Image>();
50 componentInChildren.sprite = s;
51 if (fitLine)
52 {
53 componentInChildren.Rect().sizeDelta = new Vector2(rect.sizeDelta.y, rect.sizeDelta.y);
54 }
55 else
56 {
57 componentInChildren.SetNativeSize();
58 }
59 transform.transform.Rect().sizeDelta = componentInChildren.Rect().sizeDelta;
60 AddElement(transform);
61 }
62
63 public UIItem Load(string id)
64 {
65 UIItem uIItem = UnityEngine.Object.Instantiate(ResourceCache.Load<UIItem>("UI/Element/Msg/" + id));
66 AddElement(uIItem, autoNewLine: false);
67 return uIItem;
68 }
69
70 private void AddElement(Component c, bool autoNewLine = true)
71 {
72 if (rect.rect.width + c.Rect().rect.width > box.maxWidth)
73 {
75 }
77 }
78
79 private void AddElement(Component c, MsgBlock block)
80 {
81 c.transform.SetParent(block.transform, worldPositionStays: false);
82 block.layout.RebuildLayout();
84 }
85
86 public void Reset()
87 {
88 for (int num = base.transform.childCount - 1; num >= 0; num--)
89 {
90 Transform child = base.transform.GetChild(num);
91 if (!child.tag.Contains("IgnoreDestroy"))
92 {
94 }
95 }
96 this.RebuildLayout();
97 }
98}
int countElements
Definition: MsgBlock.cs:11
void Reset()
Definition: MsgBlock.cs:86
LayoutGroup layout
Definition: MsgBlock.cs:15
Image bg
Definition: MsgBlock.cs:13
MsgBox box
Definition: MsgBlock.cs:22
UIItem Load(string id)
Definition: MsgBlock.cs:63
static MsgBlock lastBlock
Definition: MsgBlock.cs:7
RectTransform rect
Definition: MsgBlock.cs:19
void Append(string s, Color col)
Definition: MsgBlock.cs:35
void Append(Sprite s, bool fitLine=false)
Definition: MsgBlock.cs:46
int repeat
Definition: MsgBlock.cs:28
void AddElement(Component c, bool autoNewLine=true)
Definition: MsgBlock.cs:70
void AddElement(Component c, MsgBlock block)
Definition: MsgBlock.cs:79
CanvasGroup cg
Definition: MsgBlock.cs:17
static string lastText
Definition: MsgBlock.cs:9
void Awake()
Definition: MsgBlock.cs:30
UIText txt
Definition: MsgBlock.cs:25
Transform image
Definition: MsgBox.cs:18
UIText text
Definition: MsgBox.cs:16
Definition: MsgBox.cs:8
void CreateNewBlock()
Definition: MsgBox.cs:92
float maxWidth
Definition: MsgBox.cs:66
MsgBlock currentBlock
Definition: MsgBox.cs:58
Prefabs prefabs
Definition: MsgBox.cs:31
static void DespawnOrDestroy(Component c)
Definition: PoolManager.cs:158
static Transform Spawn(string id, string path, Transform parent)
Definition: PoolManager.cs:86
Definition: UIItem.cs:5
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159