145 lines
3.9 KiB
C#
145 lines
3.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Threading.Tasks;
|
|
using TMPro;
|
|
using Unity.Services.Authentication;
|
|
using UnityEngine;
|
|
|
|
|
|
public class AuntMenu : Menu<AuntMenu>
|
|
{
|
|
[SerializeField] private GameObject loadingScreen;
|
|
[Header("Register")]
|
|
[SerializeField] private TMP_InputField usernameFieldRegister;
|
|
[SerializeField] private TMP_InputField nameFieldRegister;
|
|
[SerializeField] private TMP_InputField ageFieldRegister;
|
|
[SerializeField] private TMP_InputField paswordFieldRegister;
|
|
[SerializeField] private TMP_InputField EmailFieldRegister;
|
|
private string usernameRegister;
|
|
private string AgeRegister;
|
|
private string EmailRegister;
|
|
private string paswordRegister;
|
|
|
|
[SerializeField] private GameObject RegisterObj;
|
|
[SerializeField] private GameObject InvalidAge;
|
|
|
|
[Header("Login")]
|
|
[SerializeField] private TMP_InputField usernameFieldLogin;
|
|
[SerializeField] private TMP_InputField paswordFieldLogin;
|
|
private string usernameLogin;
|
|
private string passwordLogin;
|
|
|
|
SaveData saveData;
|
|
|
|
|
|
private void OnEnable()
|
|
{
|
|
AuthenticationService.Instance.SignedIn += NextToMenu;
|
|
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
StartCoroutine(LoadingScreen());
|
|
}
|
|
|
|
IEnumerator LoadingScreen()
|
|
{
|
|
loadingScreen.SetActive(true);
|
|
yield return new WaitForSeconds(2);
|
|
loadingScreen.SetActive(false);
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
AuthenticationService.Instance.SignedIn -= NextToMenu;
|
|
}
|
|
|
|
|
|
private bool IsRegisterFieldInvalid()
|
|
{
|
|
if (string.IsNullOrEmpty(usernameFieldRegister.text))
|
|
{
|
|
Debug.LogWarning("Username field is empty!");
|
|
return true;
|
|
}
|
|
if (string.IsNullOrEmpty(paswordFieldRegister.text))
|
|
{
|
|
Debug.LogWarning("Password field is empty!");
|
|
return true;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(EmailFieldRegister.text))
|
|
{
|
|
Debug.LogWarning("Email field is empty!");
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
public async void Login()
|
|
{
|
|
usernameLogin = usernameFieldLogin.text.Trim();
|
|
passwordLogin = paswordFieldLogin.text.Trim();
|
|
|
|
if (string.IsNullOrEmpty(usernameLogin) || string.IsNullOrEmpty(passwordLogin))
|
|
{
|
|
Debug.LogWarning("Username or password is empty!");
|
|
return;
|
|
}
|
|
|
|
await AuthenticationManager.SigninUsernamePassword(usernameLogin, passwordLogin);
|
|
|
|
usernameFieldLogin.text = "";
|
|
paswordFieldLogin.text = "";
|
|
}
|
|
|
|
|
|
private void NextToMenu()
|
|
{
|
|
MainMenu.Open();
|
|
Debug.Log("MainMenu Open");
|
|
}
|
|
|
|
public async void Register()
|
|
{
|
|
if (IsRegisterFieldInvalid()) return;
|
|
|
|
usernameRegister = usernameFieldRegister.text;
|
|
paswordRegister = paswordFieldRegister.text;
|
|
EmailRegister = EmailFieldRegister.text;
|
|
AgeRegister = ageFieldRegister.text;
|
|
|
|
if (!int.TryParse(AgeRegister, out int age))
|
|
{
|
|
Debug.LogWarning("Age must be a valid number!");
|
|
return;
|
|
}
|
|
|
|
if (age < 6 || age > 12)
|
|
{
|
|
Debug.LogWarning("Age must be between 6 and 12 years!");
|
|
InvalidAge.SetActive(true);
|
|
return;
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(usernameRegister) || string.IsNullOrEmpty(paswordRegister))
|
|
{
|
|
Debug.LogWarning("Username or password is empty!");
|
|
return;
|
|
}
|
|
|
|
await AuthenticationManager.SignUpUsernamePassword(usernameRegister, paswordRegister, EmailRegister, AgeRegister);
|
|
SaveData dataToSave = new SaveData();
|
|
dataToSave.playerName = nameFieldRegister.text;
|
|
dataToSave.agePlayer = AgeRegister;
|
|
dataToSave.username = usernameRegister;
|
|
dataToSave.password = paswordRegister;
|
|
|
|
await Cloudsave.SaveData(dataToSave, "DataPlayer");
|
|
}
|
|
|
|
}
|