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.

263 lines
5.7 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
namespace Qoo.Ks
{
// Token: 0x02000080 RID: 128
public class KsSceneDrawObject
{
// Token: 0x06000396 RID: 918 RVA: 0x0000CA18 File Offset: 0x0000AC18
public bool Clear()
{
this.m_DrawList.Clear();
this.m_isClearMessage = false;
this.m_isShowMessage = false;
return true;
}
// Token: 0x06000397 RID: 919 RVA: 0x0000CA34 File Offset: 0x0000AC34
public void AddDrawObject(UnitySprite sp, int x, int y, int z, string name, byte a = 255)
{
this.Add(new SCENE_DRAW_OBJECT
{
com = DRAW_COMMAND.DRAW,
sp = sp,
isCenter = false,
x = x,
y = y,
z = z,
a = a,
name = name,
tex = Man2D.Texture(name)
});
}
// Token: 0x06000398 RID: 920 RVA: 0x0000CAA4 File Offset: 0x0000ACA4
public void AddDrawObjectC(UnitySprite sp, int z, string name, byte a = 255)
{
this.Add(new SCENE_DRAW_OBJECT
{
com = DRAW_COMMAND.DRAW,
sp = sp,
isCenter = true,
z = z,
a = a,
name = name,
tex = Man2D.Texture(name)
});
}
// Token: 0x06000399 RID: 921 RVA: 0x0000CB00 File Offset: 0x0000AD00
public void AddDrawObject(UnitySprite sp, int x, int y)
{
this.Add(new SCENE_DRAW_OBJECT
{
com = DRAW_COMMAND.DRAW_NOTEX,
sp = sp,
isCenter = false,
x = x,
y = y,
tex = null
});
}
// Token: 0x0600039A RID: 922 RVA: 0x0000CB4C File Offset: 0x0000AD4C
public void AddDrawObject_TexOnly(UnitySprite sp, string name)
{
this.Add(new SCENE_DRAW_OBJECT
{
com = DRAW_COMMAND.SETTEX,
sp = sp,
isCenter = false,
name = name,
tex = Man2D.Texture(name)
});
}
// Token: 0x0600039B RID: 923 RVA: 0x0000CB98 File Offset: 0x0000AD98
public void AddEraseObject(UnitySprite sp)
{
this.Add(new SCENE_DRAW_OBJECT
{
com = DRAW_COMMAND.ERASE,
sp = sp
});
}
// Token: 0x0600039C RID: 924 RVA: 0x0000CBC4 File Offset: 0x0000ADC4
public void ClearMessage()
{
this.m_isClearMessage = true;
}
// Token: 0x0600039D RID: 925 RVA: 0x0000CBD0 File Offset: 0x0000ADD0
public void DeleteClearMessage()
{
this.m_isClearMessage = false;
}
// Token: 0x0600039E RID: 926 RVA: 0x0000CBDC File Offset: 0x0000ADDC
public void ShowMessage()
{
this.m_isShowMessage = true;
}
// Token: 0x0600039F RID: 927 RVA: 0x0000CBE8 File Offset: 0x0000ADE8
public void DeleteShowMessage()
{
this.m_isShowMessage = false;
}
// Token: 0x060003A0 RID: 928 RVA: 0x0000CBF4 File Offset: 0x0000ADF4
public void Run()
{
if (this.m_DrawList.Count > 0 || this.m_isClearMessage || this.m_isShowMessage)
{
UnityTask.SetSubTask(this.OnTask());
}
}
// Token: 0x060003A1 RID: 929 RVA: 0x0000CC2C File Offset: 0x0000AE2C
private void Add(SCENE_DRAW_OBJECT obj)
{
this.m_DrawList.Add(obj);
}
// Token: 0x060003A2 RID: 930 RVA: 0x0000CC3C File Offset: 0x0000AE3C
private IEnumerator OnTask()
{
foreach (SCENE_DRAW_OBJECT item in this.m_DrawList)
{
bool IsTexWait = false;
switch (item.com)
{
case DRAW_COMMAND.DRAW:
IsTexWait = true;
break;
case DRAW_COMMAND.SETTEX:
IsTexWait = true;
break;
}
if (IsTexWait && item.name != null && item.name.Length > 0)
{
while (!Singleton<Man2D>.Instance.IsUseTextue(item.name))
{
yield return 0;
}
}
}
foreach (SCENE_DRAW_OBJECT item2 in this.m_DrawList)
{
bool IsTex = false;
bool IsAlpha = false;
bool IsSetPos = false;
switch (item2.com)
{
case DRAW_COMMAND.DRAW:
IsTex = true;
IsSetPos = true;
IsAlpha = true;
break;
case DRAW_COMMAND.DRAW_NOTEX:
this.SetPosXY(item2);
continue;
case DRAW_COMMAND.ERASE:
this.Clear(item2);
continue;
case DRAW_COMMAND.SETTEX:
IsTex = true;
break;
}
if (IsTex)
{
this.SetImage(item2);
}
if (IsAlpha)
{
this.SetAlpha(item2);
}
if (IsSetPos)
{
if (item2.isCenter)
{
this.SetPosCenter(item2);
}
else
{
this.SetPos(item2);
}
}
}
this.m_DrawList.Clear();
if (this.m_isShowMessage)
{
Singleton<MsgWnd>.Instance.Show(true);
}
else if (this.m_isClearMessage)
{
Singleton<MsgWnd>.Instance.ResetMessage();
Singleton<MsgWnd>.Instance.Show(false);
}
this.m_isClearMessage = false;
this.m_isShowMessage = false;
yield return 0;
yield break;
}
// Token: 0x060003A3 RID: 931 RVA: 0x0000CC58 File Offset: 0x0000AE58
private void Clear(SCENE_DRAW_OBJECT item)
{
item.sp.SetImage(null);
item.sp.A = 0;
}
// Token: 0x060003A4 RID: 932 RVA: 0x0000CC74 File Offset: 0x0000AE74
private void SetImage(SCENE_DRAW_OBJECT item)
{
if (item.tex == item.sp.tex)
{
item.tex.DecCount();
}
item.sp.SetImage(item.tex);
}
// Token: 0x060003A5 RID: 933 RVA: 0x0000CCB0 File Offset: 0x0000AEB0
private void SetAlpha(SCENE_DRAW_OBJECT item)
{
item.sp.A = item.a;
}
// Token: 0x060003A6 RID: 934 RVA: 0x0000CCC8 File Offset: 0x0000AEC8
private void SetPos(SCENE_DRAW_OBJECT item)
{
item.sp.x = item.x;
item.sp.y = item.y;
item.sp.z = item.z;
}
// Token: 0x060003A7 RID: 935 RVA: 0x0000CD04 File Offset: 0x0000AF04
private void SetPosCenter(SCENE_DRAW_OBJECT item)
{
item.sp.SetCenterPosH();
item.sp.z = item.z;
}
// Token: 0x060003A8 RID: 936 RVA: 0x0000CD28 File Offset: 0x0000AF28
private void SetPosXY(SCENE_DRAW_OBJECT item)
{
item.sp.x = item.x;
item.sp.y = item.y;
}
// Token: 0x04000282 RID: 642
private List<SCENE_DRAW_OBJECT> m_DrawList = new List<SCENE_DRAW_OBJECT>();
// Token: 0x04000283 RID: 643
private bool m_isClearMessage;
// Token: 0x04000284 RID: 644
private bool m_isShowMessage;
}
}