MIF_E31222569/Assets/ToothyV/Scripts/UI/AuntMenu.cs

145 lines
4.0 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 = CryptoUtility.Encrypt(usernameRegister);
dataToSave.password = CryptoUtility.Encrypt(paswordRegister);
await Cloudsave.SaveData(dataToSave, "DataPlayer");
}
}