145 lines
3.7 KiB
C#
145 lines
3.7 KiB
C#
using BrewMonster.Network;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace BrewMonster.UI
|
|
{
|
|
public abstract class AUIDialog : MonoBehaviour
|
|
{
|
|
protected Dictionary<int, string> m_StringTable = new Dictionary<int, string>();
|
|
protected bool m_bShow = false;
|
|
protected string m_strDataName = "";
|
|
protected string m_strDataPtrName = "";
|
|
protected uint m_dwData;
|
|
protected object m_pvData;
|
|
protected AUIManager m_pAUIManager = null;
|
|
string m_szName;
|
|
|
|
public virtual void Show(bool value)
|
|
{
|
|
gameObject.SetActive(value);
|
|
OnShowDialogue();
|
|
}
|
|
public string GetName()
|
|
{
|
|
return m_szName;
|
|
}
|
|
public bool SetName(string pszName)
|
|
{
|
|
m_szName = pszName;
|
|
if (m_pAUIManager == null)
|
|
return false; // Will be registered when SetAUIManager is called
|
|
|
|
if (m_pAUIManager.m_DlgName.ContainsKey(pszName))
|
|
return false;
|
|
|
|
//m_pAUIManager.m_DlgName.Remove(m_szName);
|
|
m_pAUIManager.m_DlgName[m_szName] = this;
|
|
|
|
return true;
|
|
}
|
|
public void SetData(uint dwData, string strName = "")
|
|
{
|
|
m_strDataName = strName;
|
|
m_dwData = dwData;
|
|
}
|
|
|
|
public uint GetData()
|
|
{
|
|
return m_dwData;
|
|
}
|
|
|
|
public object GetDataPtr(string strName)
|
|
{
|
|
//if (0 != m_pvData && strName != m_strDataPtrName)
|
|
// AUI_ReportError(__LINE__, 1, "AUIDialog::GetDataPtr(), data name not match");
|
|
return m_pvData;
|
|
}
|
|
|
|
public bool IsShow()
|
|
{
|
|
return m_bShow;
|
|
}
|
|
|
|
public void SetDataPtr(object pvData, string strName)
|
|
{
|
|
m_strDataPtrName = strName;
|
|
m_pvData = pvData;
|
|
}
|
|
|
|
|
|
public CECGameUIMan GetGameUIMan()
|
|
{
|
|
return EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
|
|
}
|
|
|
|
public CECHostPlayer GetHostPlayer()
|
|
{
|
|
return EC_Game.GetGameRun().GetHostPlayer();
|
|
}
|
|
|
|
public string GetStringFromTable(int idString)
|
|
{
|
|
CECGameUIMan gameUIMan = EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
|
|
string str = gameUIMan.GetStringFromAuiDialogTable(idString);
|
|
if (str == null)
|
|
{
|
|
return gameUIMan.GetStringFromTable(idString);
|
|
}
|
|
return str;
|
|
}
|
|
|
|
public AUIManager GetAUIManager()
|
|
{
|
|
return m_pAUIManager;
|
|
}
|
|
|
|
public void SetAUIManager(AUIManager pAUIManager)
|
|
{
|
|
m_pAUIManager = pAUIManager;
|
|
// Register dialog name if it was set before manager was assigned
|
|
if (m_pAUIManager != null && !string.IsNullOrEmpty(m_szName) && !m_pAUIManager.m_DlgName.ContainsKey(m_szName))
|
|
{
|
|
m_pAUIManager.m_DlgName[m_szName] = this;
|
|
}
|
|
}
|
|
|
|
public virtual void OnEnable()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void OnDisable()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void Awake()
|
|
{
|
|
m_szName = "Dialog_";
|
|
}
|
|
|
|
public virtual void Start()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void Update()
|
|
{
|
|
Render();
|
|
}
|
|
public virtual void OnShowDialogue()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual bool Render()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
/// <summary>Override in dialogs that support attribute-point reset (e.g. DlgCharacter). No-op by default.</summary>
|
|
public virtual void ResetPoints() { }
|
|
}
|
|
}
|