RizzeBattleRoyale/Assets/TPSBR/Scripts/UI/MenuViews/UIChangeNicknameView.cs

92 lines
2.0 KiB
C#
Raw Normal View History

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
}