2025-09-24 11:24:38 +05:00
|
|
|
using UnityEngine;
|
|
|
|
using TMPro;
|
2025-10-15 20:28:33 +04:00
|
|
|
using UnityEngine.Windows;
|
2025-09-24 11:24:38 +05:00
|
|
|
|
|
|
|
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();
|
2025-10-15 20:28:33 +04:00
|
|
|
GetName();
|
|
|
|
string currentNickname = Context.PlayerData.Nickname;
|
2025-09-24 11:24:38 +05:00
|
|
|
if (currentNickname.HasValue() == false)
|
|
|
|
{
|
|
|
|
_name.text = "Player" + Random.Range(10000, 100000);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2025-10-15 20:28:33 +04:00
|
|
|
|
2025-09-24 11:24:38 +05:00
|
|
|
_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;
|
2025-10-15 20:28:33 +04:00
|
|
|
SetName(PlayerPrefs.GetString("WALLET_ADDRESS"),Context.PlayerData.Nickname.ToString());
|
|
|
|
Close();
|
2025-09-24 11:24:38 +05:00
|
|
|
}
|
2025-10-15 20:28:33 +04:00
|
|
|
public async void SetName(string walletaddress,string playername)
|
|
|
|
{
|
|
|
|
Debug.Log("Setting name for wallet address" + walletaddress.ToString());
|
|
|
|
var rec = await GameDb.SetNameIfEmptyAsync(walletaddress, playername);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
public async void GetName()
|
|
|
|
{
|
|
|
|
var playername= await GameDb.GetPlayerNameAsync(PlayerPrefs.GetString("WALLET_ADDRESS"));
|
|
|
|
Context.PlayerData.Nickname = playername;
|
|
|
|
_name.text = playername;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
2025-09-24 11:24:38 +05:00
|
|
|
}
|