123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using wf;
- [RequireComponent(typeof(UITable))]
- public class UIWFConditionList : MonoBehaviour
- {
- public int height { get; private set; }
- public int width { get; private set; }
- private void Awake()
- {
- if (this.condition_label_list_ != null)
- {
- return;
- }
- this.condition_label_list_ = new List<UILabel>();
- UITable component = base.GetComponent<UITable>();
- List<Transform> childList = component.GetChildList();
- foreach (Transform transform in childList)
- {
- UILabel component2 = UTY.GetChildObject(transform.gameObject, "Message", false).GetComponent<UILabel>();
- this.condition_label_list_.Add(component2);
- this.defaultFontSize = component2.fontSize;
- this.widthMargin = (int)(component2.transform.localPosition.x - (float)(UTY.GetChildObject(transform.gameObject, "No", false).GetComponent<UIWidget>().width / -2));
- transform.gameObject.SetActive(false);
- }
- }
- public void SetTexts(string[] texts, int limitTextWidth = -1)
- {
- KeyValuePair<string, Color>[] array = new KeyValuePair<string, Color>[texts.Length];
- for (int i = 0; i < texts.Length; i++)
- {
- array[i] = new KeyValuePair<string, Color>(texts[i], Color.white);
- }
- this.SetTexts(array, limitTextWidth);
- }
- public void SetTexts(KeyValuePair<string, Color>[] texts, int limitTextWidth = -1)
- {
- if (this.condition_label_list_ == null)
- {
- this.Awake();
- }
- this.width = 0;
- float num = 0f;
- float num2 = 0f;
- for (int i = 0; i < this.condition_label_list_.Count; i++)
- {
- if (i < texts.Length)
- {
- Transform parent = this.condition_label_list_[i].transform.parent;
- if (i == 0)
- {
- num = Mathf.Abs(parent.localPosition.y);
- }
- this.condition_label_list_[i].transform.parent.gameObject.SetActive(true);
- this.condition_label_list_[i].text = texts[i].Key;
- this.condition_label_list_[i].color = texts[i].Value;
- this.condition_label_list_[i].fontSize = this.defaultFontSize;
- this.condition_label_list_[i].width = 0;
- this.condition_label_list_[i].MakePixelPerfect();
- if (0 <= limitTextWidth)
- {
- Utility.ResizeUILabelFontSize(this.condition_label_list_[i], limitTextWidth);
- }
- this.width = Mathf.Max(this.width, this.condition_label_list_[i].width);
- num2 = Mathf.Abs(parent.localPosition.y) + (float)parent.gameObject.GetComponent<UIWidget>().height;
- }
- else
- {
- this.condition_label_list_[i].transform.parent.gameObject.SetActive(false);
- }
- }
- this.height = (int)(num2 - num);
- this.width += this.widthMargin;
- }
- private int widthMargin;
- private List<UILabel> condition_label_list_;
- private int defaultFontSize;
- }
|