using System; using I2.Loc; using UnityEngine; using wf; public class FFNameDialog : MonoBehaviour { public bool IsDecided { get { return this.m_bDecided; } } public void Init() { this.m_uiPanel = base.gameObject.GetComponent(); this.m_goMsg = UTY.GetChildObject(base.gameObject, "Base/Message", false); this.m_uiMsg = this.m_goMsg.GetComponent(); this.m_uiMsg.gameObject.AddComponent(); this.m_goSelectA = UTY.GetChildObject(base.gameObject, "Base/SelectA", false); this.m_uiBtnSelectA = this.m_goSelectA.GetComponent(); this.m_uiLabelA = UTY.GetChildObject(this.m_goSelectA, "label", false).GetComponent(); this.m_uiLabelA.gameObject.AddComponent(); this.m_goSelectB = UTY.GetChildObject(base.gameObject, "Base/SelectB", false); this.m_uiBtnSelectB = this.m_goSelectB.GetComponent(); this.m_uiLabelB = UTY.GetChildObject(this.m_goSelectB, "label", false).GetComponent(); this.m_uiLabelB.gameObject.AddComponent(); this.m_goSelectC = UTY.GetChildObject(base.gameObject, "Base/SelectC", true); if (this.m_goSelectC != null) { this.m_uiBtnSelectC = this.m_goSelectC.GetComponent(); this.m_uiLabelC = UTY.GetChildObject(this.m_goSelectC, "label", false).GetComponent(); this.m_uiLabelC.gameObject.AddComponent(); this.m_goSelectC.SetActive(false); } EventDelegate.Set(this.m_uiBtnSelectA.onClick, new EventDelegate.Callback(this.OnClickA)); EventDelegate.Set(this.m_uiBtnSelectB.onClick, new EventDelegate.Callback(this.OnClickB)); if (this.m_uiBtnSelectC != null) { EventDelegate.Set(this.m_uiBtnSelectC.onClick, new EventDelegate.Callback(this.OnClickC)); } base.gameObject.SetActive(false); } public void SetOnClickCallBack(string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB, string f_strC, FFNameDialog.OnClick f_dgC) { this.m_dgOnClickA = f_dgA; this.m_dgOnClickB = f_dgB; this.m_dgOnClickC = f_dgC; if (this.m_dgOnClickA == null) { this.m_dgOnClickA = new FFNameDialog.OnClick(this.OnCloseDefaultEvent); } if (this.m_dgOnClickB == null) { this.m_dgOnClickB = new FFNameDialog.OnClick(this.OnCloseDefaultEvent); } if (this.m_dgOnClickC == null) { this.m_dgOnClickC = new FFNameDialog.OnClick(this.OnCloseDefaultEvent); } if (!string.IsNullOrEmpty(f_strA)) { this.m_uiLabelA.text = f_strA; } if (!string.IsNullOrEmpty(f_strB)) { this.m_uiLabelB.text = f_strB; } if (this.m_uiLabelC != null && !string.IsNullOrEmpty(f_strC)) { this.m_uiLabelC.text = f_strC; } } public void Show(string f_strMsg, string f_strA, FFNameDialog.OnClick f_dgA, string f_strB, FFNameDialog.OnClick f_dgB, string f_strC, FFNameDialog.OnClick f_dgC) { if (this.selectABPostion != null) { this.selectABPostion.Apply(); } NDebug.Assert(this.m_bDecided, "ダイアログの二重呼出しはできません。"); if (!string.IsNullOrEmpty(f_strMsg)) { this.m_uiMsg.text = f_strMsg; Utility.SetLocalizeTerm(this.m_uiMsg, f_strMsg, false); } this.SetOnClickCallBack(f_strA, f_dgA, f_strB, f_dgB, f_strC, f_dgC); base.gameObject.SetActive(true); iTween.StopByName(base.gameObject, "ffdlg"); iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "ffdlg", "from", this.m_uiPanel.alpha, "to", 1.0, "time", 0.3, "onUpdate", "UpdateAlpha" })); this.m_bDecided = false; } public void ShowFromLanguageTerm(string messageTerm, string resultATerm, FFNameDialog.OnClick f_dgA, string resultBTerm, FFNameDialog.OnClick f_dgB = null) { Utility.SetLocalizeTerm(this.m_uiMsg, messageTerm, true); Utility.SetLocalizeTerm(this.m_uiLabelA, resultATerm, true); Utility.SetLocalizeTerm(this.m_uiLabelB, resultBTerm, true); this.Show(null, null, f_dgA, null, f_dgB, null, null); } public void ShowFromLanguageTerm(string messageTerm, string resultATerm, FFNameDialog.OnClick f_dgA, string resultBTerm, FFNameDialog.OnClick f_dgB, string resultCTerm, FFNameDialog.OnClick f_dgC) { Utility.SetLocalizeTerm(this.m_uiMsg, messageTerm, true); Utility.SetLocalizeTerm(this.m_uiLabelA, resultATerm, true); Utility.SetLocalizeTerm(this.m_uiLabelB, resultBTerm, true); Utility.SetLocalizeTerm(this.m_uiLabelC, resultCTerm, true); this.Show(null, null, f_dgA, null, f_dgB, null, f_dgC); if (this.selectCPostion != null) { this.selectCPostion.Apply(); } } public void UpdateAlpha(float f_fNewValue) { this.m_uiPanel.alpha = f_fNewValue; } public void CompleteHide() { this.Hide(); } public void Hide() { base.gameObject.SetActive(false); this.m_dgOnClickA = null; this.m_dgOnClickB = null; this.m_dgOnClickC = null; } public void Close() { if (base.gameObject.activeSelf) { iTween.StopByName(base.gameObject, "ffdlg"); iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "ffdlg", "from", this.m_uiPanel.alpha, "to", 0.0, "time", 0.3, "onUpdate", "UpdateAlpha", "onComplete", "CompleteHide" })); } } private void OnClickA() { this.m_bDecided = true; if (this.m_dgOnClickA != null) { FFNameDialog.OnClick dgOnClickA = this.m_dgOnClickA; this.m_dgOnClickA = null; dgOnClickA(); } } private void OnClickB() { this.m_bDecided = true; if (this.m_dgOnClickB != null) { FFNameDialog.OnClick dgOnClickB = this.m_dgOnClickB; this.m_dgOnClickB = null; dgOnClickB(); } } private void OnClickC() { this.m_bDecided = true; if (this.m_dgOnClickC != null) { FFNameDialog.OnClick dgOnClickC = this.m_dgOnClickC; this.m_dgOnClickC = null; dgOnClickC(); } } private void OnCloseDefaultEvent() { GameMain.Instance.SysDlg.Close(); } [SerializeField] private UIWFPositionStore selectABPostion; [SerializeField] private UIWFPositionStore selectCPostion; private GameObject m_goSelectA; private UIButton m_uiBtnSelectA; private UILabel m_uiLabelA; private GameObject m_goSelectB; private UIButton m_uiBtnSelectB; private UILabel m_uiLabelB; private GameObject m_goSelectC; private UIButton m_uiBtnSelectC; private UILabel m_uiLabelC; private GameObject m_goMsg; private UILabel m_uiMsg; private UIPanel m_uiPanel; private FFNameDialog.OnClick m_dgOnClickA; private FFNameDialog.OnClick m_dgOnClickB; private FFNameDialog.OnClick m_dgOnClickC; private bool m_bDecided = true; public delegate void OnClick(); }