RizzeBattleRoyale/Assets/TPSBR/Scripts/UI/MenuViews/UIChangeNicknameView.cs
2025-09-24 11:24:38 +05:00

75 lines
1.4 KiB
C#

using UnityEngine;
using TMPro;
namespace TPSBR.UI
{
public class UIChangeNicknameView : UICloseView
{
// PRIVATE MEMBERS
[SerializeField]
private TextMeshProUGUI _caption;
[SerializeField]
private TMP_InputField _name;
[SerializeField]
private UIButton _confirmButton;
[SerializeField]
private int _minCharacters = 5;
// PUBLIC METHODS
public void SetData(string caption, bool nameRequired)
{
_caption.text = caption;
CloseButton.SetActive(nameRequired == false);
}
// UIView INTERFACE
protected override void OnInitialize()
{
base.OnInitialize();
_confirmButton.onClick.AddListener(OnConfirmButton);
}
protected override void OnDeinitialize()
{
_confirmButton.onClick.RemoveListener(OnConfirmButton);
base.OnDeinitialize();
}
protected override void OnOpen()
{
base.OnOpen();
string currentNickname = Context.PlayerData.Nickname;
if (currentNickname.HasValue() == false)
{
_name.text = "Player" + Random.Range(10000, 100000);
}
else
{
_name.text = Context.PlayerData.Nickname;
}
}
protected override void OnTick()
{
base.OnTick();
_confirmButton.interactable = _name.text.Length >= _minCharacters && _name.text != Context.PlayerData.Nickname;
}
// PRIVATE METHODS
private void OnConfirmButton()
{
Context.PlayerData.Nickname = _name.text;
Close();
}
}
}