You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
7.2 KiB
C#
288 lines
7.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Qoo;
|
|
using UnityEngine;
|
|
|
|
// Token: 0x0200000E RID: 14
|
|
public class TextMenuWnd : UserBaseClass
|
|
{
|
|
// Token: 0x1700000F RID: 15
|
|
// (get) Token: 0x06000042 RID: 66 RVA: 0x00002848 File Offset: 0x00000A48
|
|
// (set) Token: 0x06000043 RID: 67 RVA: 0x00002850 File Offset: 0x00000A50
|
|
public bool IsSelect { get; private set; }
|
|
|
|
// Token: 0x17000010 RID: 16
|
|
// (get) Token: 0x06000044 RID: 68 RVA: 0x0000285C File Offset: 0x00000A5C
|
|
// (set) Token: 0x06000045 RID: 69 RVA: 0x00002864 File Offset: 0x00000A64
|
|
public int SelectID { get; private set; }
|
|
|
|
// Token: 0x06000046 RID: 70 RVA: 0x00002870 File Offset: 0x00000A70
|
|
private void Awake()
|
|
{
|
|
base.enabled = false;
|
|
}
|
|
|
|
// Token: 0x06000047 RID: 71 RVA: 0x0000287C File Offset: 0x00000A7C
|
|
public void Release()
|
|
{
|
|
Qoo.Debug.Print("TextMenuWnd:Destroy:" + Singleton<Man2D>.IsReady);
|
|
if (Singleton<Man2D>.IsReady)
|
|
{
|
|
foreach (UnityTextSprite sp in this.m_TxtList)
|
|
{
|
|
Singleton<Man2D>.Instance.RemoveSprite(sp);
|
|
}
|
|
this.m_TxtList.Clear();
|
|
foreach (UnitySprite sp2 in this.m_BaseList)
|
|
{
|
|
Singleton<Man2D>.Instance.RemoveSprite(sp2);
|
|
}
|
|
this.m_BaseList.Clear();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000048 RID: 72 RVA: 0x0000297C File Offset: 0x00000B7C
|
|
private void OnDestroy()
|
|
{
|
|
this.Release();
|
|
}
|
|
|
|
// Token: 0x06000049 RID: 73 RVA: 0x00002984 File Offset: 0x00000B84
|
|
public bool Init(Color32 ColTxt, Color32 ColBack, int height, int line_num)
|
|
{
|
|
this.m_nScrollPos = 0;
|
|
this.m_RootItem.Create(-1, null, string.Empty);
|
|
this.m_CurrentItem = null;
|
|
this.m_colTxt = ColTxt;
|
|
this.m_colBase = ColBack;
|
|
this.m_nItemHeight = height;
|
|
this.m_nLineNum = line_num;
|
|
int num = 544 / line_num;
|
|
for (int num2 = 0; num2 != this.m_nLineNum; num2++)
|
|
{
|
|
this.m_TxtList.Add(Man2D.TextSprite(null));
|
|
this.m_BaseList.Add(Man2D.Sprite(string.Empty));
|
|
this.m_BaseList[num2].SetPos(16, 0 + num * num2, 8000);
|
|
this.m_BaseList[num2].SetSize(928, this.m_nItemHeight - 1);
|
|
this.m_BaseList[num2].SetColor(this.m_colBase);
|
|
this.m_BaseList[num2].Show = false;
|
|
this.m_BaseList[num2].SetName("Debug:Base:" + num2);
|
|
this.m_TxtList[num2].SetPos(16, 0 + num * num2, 8001);
|
|
this.m_TxtList[num2].SetTextColor(this.m_colTxt);
|
|
this.m_TxtList[num2].Show = false;
|
|
this.m_TxtList[num2].SetName("Debug:Txt:" + num2);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600004A RID: 74 RVA: 0x00002B04 File Offset: 0x00000D04
|
|
public bool AddMenu(int id_parent, int id, string name)
|
|
{
|
|
TextItem textItem = new TextItem();
|
|
TextItem parent = this.GetParent(id_parent);
|
|
if (parent != null)
|
|
{
|
|
textItem.Create(id, parent, name);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// Token: 0x0600004B RID: 75 RVA: 0x00002B34 File Offset: 0x00000D34
|
|
public bool Begin()
|
|
{
|
|
if (this.m_CurrentItem == null)
|
|
{
|
|
this.SetCurrent(this.m_RootItem);
|
|
}
|
|
this.IsSelect = false;
|
|
this.SelectID = -1;
|
|
this.m_nOldDelta = 0;
|
|
base.enabled = true;
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600004C RID: 76 RVA: 0x00002B78 File Offset: 0x00000D78
|
|
public bool End()
|
|
{
|
|
base.enabled = false;
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600004D RID: 77 RVA: 0x00002B84 File Offset: 0x00000D84
|
|
private void Update()
|
|
{
|
|
INPUT_STATUS status = UnityApp.Input.Status;
|
|
if (status != INPUT_STATUS.CLICK)
|
|
{
|
|
if (status == INPUT_STATUS.DRAG_ON)
|
|
{
|
|
if (this.m_nOldDelta != UnityApp.Input.Delta.y)
|
|
{
|
|
int num = -(this.m_nOldDelta - UnityApp.Input.Delta.y);
|
|
num /= this.m_nItemHeight;
|
|
if (num != 0)
|
|
{
|
|
this.Scroll(this.m_nScrollPos + num);
|
|
}
|
|
this.m_nOldDelta = UnityApp.Input.Delta.y;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Point2 end = UnityApp.Input.End;
|
|
bool flag = false;
|
|
for (int num2 = 0; num2 != this.m_nLineNum; num2++)
|
|
{
|
|
if (this.m_BaseList[num2].Show && this.m_BaseList[num2].IsHit(end))
|
|
{
|
|
this.SetSelect(this.m_nScrollPos + num2);
|
|
flag = true;
|
|
}
|
|
}
|
|
if (!flag)
|
|
{
|
|
this.Back();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600004E RID: 78 RVA: 0x00002C90 File Offset: 0x00000E90
|
|
private void SetSelect(int nItemPos)
|
|
{
|
|
if (nItemPos < 0 || this.m_CurrentItem.Child.Count <= nItemPos)
|
|
{
|
|
return;
|
|
}
|
|
if (this.m_CurrentItem.Child[nItemPos].Child.Count > 0)
|
|
{
|
|
this.SetCurrent(this.m_CurrentItem.Child[nItemPos]);
|
|
}
|
|
else
|
|
{
|
|
this.IsSelect = true;
|
|
this.SelectID = this.m_CurrentItem.Child[nItemPos].ID;
|
|
this.End();
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600004F RID: 79 RVA: 0x00002D24 File Offset: 0x00000F24
|
|
private void SetCurrent(TextItem curItem)
|
|
{
|
|
this.Clear();
|
|
this.m_CurrentItem = curItem;
|
|
this.Scroll(0);
|
|
}
|
|
|
|
// Token: 0x06000050 RID: 80 RVA: 0x00002D3C File Offset: 0x00000F3C
|
|
private void Back()
|
|
{
|
|
if (this.m_CurrentItem.Parent != null)
|
|
{
|
|
this.SetCurrent(this.m_CurrentItem.Parent);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000051 RID: 81 RVA: 0x00002D60 File Offset: 0x00000F60
|
|
private void Scroll(int iPos)
|
|
{
|
|
if (iPos < 0)
|
|
{
|
|
iPos = 0;
|
|
}
|
|
else if (this.m_CurrentItem.Child.Count < this.m_nLineNum)
|
|
{
|
|
iPos = 0;
|
|
}
|
|
else if (this.m_CurrentItem.Child.Count - this.m_nLineNum < iPos)
|
|
{
|
|
iPos = this.m_CurrentItem.Child.Count - this.m_nLineNum;
|
|
}
|
|
this.m_nScrollPos = iPos;
|
|
int num = this.m_nScrollPos;
|
|
while (num < this.m_CurrentItem.Child.Count && num < this.m_nScrollPos + this.m_nLineNum)
|
|
{
|
|
int index = num - this.m_nScrollPos;
|
|
this.m_TxtList[index].ClearText();
|
|
this.m_TxtList[index].AddText(this.m_CurrentItem.Child[num].Name, this.m_nItemHeight - 2);
|
|
this.m_TxtList[index].Show = true;
|
|
this.m_BaseList[index].Show = true;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000052 RID: 82 RVA: 0x00002E84 File Offset: 0x00001084
|
|
private void Clear()
|
|
{
|
|
foreach (UnityTextSprite unityTextSprite in this.m_TxtList)
|
|
{
|
|
unityTextSprite.Show = false;
|
|
}
|
|
foreach (UnitySprite unitySprite in this.m_BaseList)
|
|
{
|
|
unitySprite.Show = false;
|
|
}
|
|
this.m_nScrollPos = 0;
|
|
this.m_CurrentItem = null;
|
|
}
|
|
|
|
// Token: 0x06000053 RID: 83 RVA: 0x00002F50 File Offset: 0x00001150
|
|
private TextItem GetParent(int id)
|
|
{
|
|
if (id == -1)
|
|
{
|
|
return this.m_RootItem;
|
|
}
|
|
TextItem textItem = this.m_RootItem.SearchItem(id);
|
|
if (textItem == null)
|
|
{
|
|
Qoo.Debug.Print("指定親IDが見つかりませんでした。ParentID:" + id);
|
|
return null;
|
|
}
|
|
return textItem;
|
|
}
|
|
|
|
// Token: 0x04000022 RID: 34
|
|
public const int ROOT_ID = -1;
|
|
|
|
// Token: 0x04000023 RID: 35
|
|
public const int DEF_ITEM_HEIGHT = 16;
|
|
|
|
// Token: 0x04000024 RID: 36
|
|
public const int ITEM_X = 16;
|
|
|
|
// Token: 0x04000025 RID: 37
|
|
public const int ITEM_Y = 0;
|
|
|
|
// Token: 0x04000026 RID: 38
|
|
private TextItem m_RootItem = new TextItem();
|
|
|
|
// Token: 0x04000027 RID: 39
|
|
private List<UnityTextSprite> m_TxtList = new List<UnityTextSprite>();
|
|
|
|
// Token: 0x04000028 RID: 40
|
|
private List<UnitySprite> m_BaseList = new List<UnitySprite>();
|
|
|
|
// Token: 0x04000029 RID: 41
|
|
private TextItem m_CurrentItem;
|
|
|
|
// Token: 0x0400002A RID: 42
|
|
private int m_nScrollPos;
|
|
|
|
// Token: 0x0400002B RID: 43
|
|
private Color32 m_colTxt = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue);
|
|
|
|
// Token: 0x0400002C RID: 44
|
|
private Color32 m_colBase = new Color32(0, 0, 32, byte.MaxValue);
|
|
|
|
// Token: 0x0400002D RID: 45
|
|
private int m_nOldDelta;
|
|
|
|
// Token: 0x0400002E RID: 46
|
|
private int m_nItemHeight = 16;
|
|
|
|
// Token: 0x0400002F RID: 47
|
|
private int m_nLineNum = 34;
|
|
}
|