Files
source/Assets/Scripts/IconsMenu.cs

217 lines
7.4 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Iconsmenu : MonoBehaviour
{
public GameObject iconsPanel;
public GameObject overlaysPanel;
public Button backButton;
public Sprite defaultIcon;
public Button placeholderButton;
public TMP_Text selectionText;
public Image previewBird;
public Image previewOverlay;
public Button icon1;
public Button icon2;
public Button icon3;
public Button icon4;
public Button icon5;
public Button icon6;
public Button icon7;
public Button icon8;
public Button overlay0;
public Button overlay1;
public Button overlay2;
public Button overlay3;
public Button overlay4;
public Button overlay5;
public Button overlay6;
public Button overlay7;
public Button overlay8;
public Button overlay9;
public Button overlay10;
public Button overlay11;
public Button overlay12;
public Button overlay13;
public Button overlay14;
public GameObject previewBirdObject;
private void Start()
{
defaultIcon = Tools.GetIconForUser(PlayerPrefs.GetInt("userId", 0));
icon1.transform.GetChild(0).GetComponent<Image>().sprite = defaultIcon;
SwitchToIcon();
SelectOverlay(PlayerPrefs.GetInt("overlay", Mathf.Clamp(PlayerPrefs.GetInt("overlay", 0), 0, 14)));
SelectIcon(PlayerPrefs.GetInt("icon", Mathf.Clamp(PlayerPrefs.GetInt("icon", 0), 1, 8)));
if (PlayerPrefs.GetInt("icon", 0) == 7)
{
SelectOverlay(0);
placeholderButton.interactable = false;
}
placeholderButton.onClick.AddListener(ToggleKit);
backButton.onClick.AddListener(async () =>
{
PlayerPrefs.SetInt("icon", Mathf.Clamp(PlayerPrefs.GetInt("icon", 0), 1, 8));
PlayerPrefs.SetInt("overlay", Mathf.Clamp(PlayerPrefs.GetInt("overlay", 0), 0, 14));
PlayerPrefs.Save();
await SceneManager.LoadSceneAsync("MainMenu");
});
previewBird.GetComponentInParent<Button>().onClick.AddListener(() =>
{
var scale = previewBird.transform.localScale;
if (scale.x == -1)
{
scale.x = 1;
}
else
{
scale.x = -1;
}
previewBird.transform.localScale = scale;
});
icon1.onClick.AddListener(() => SelectIcon(1));
icon2.onClick.AddListener(() => SelectIcon(2));
icon3.onClick.AddListener(() => SelectIcon(3));
icon4.onClick.AddListener(() => SelectIcon(4));
icon5.onClick.AddListener(() => SelectIcon(5));
icon6.onClick.AddListener(() => SelectIcon(6));
icon7.onClick.AddListener(() => SelectIcon(7));
icon8.onClick.AddListener(() => SelectIcon(8));
overlay0.onClick.AddListener(() => SelectOverlay(0));
overlay1.onClick.AddListener(() => SelectOverlay(1));
overlay2.onClick.AddListener(() => SelectOverlay(2));
overlay3.onClick.AddListener(() => SelectOverlay(3));
overlay4.onClick.AddListener(() => SelectOverlay(4));
overlay5.onClick.AddListener(() => SelectOverlay(5));
overlay6.onClick.AddListener(() => SelectOverlay(6));
overlay7.onClick.AddListener(() => SelectOverlay(7));
overlay8.onClick.AddListener(() => SelectOverlay(8));
overlay9.onClick.AddListener(() => SelectOverlay(9));
overlay10.onClick.AddListener(() => SelectOverlay(10));
overlay11.onClick.AddListener(() => SelectOverlay(11));
overlay12.onClick.AddListener(() => SelectOverlay(12));
overlay13.onClick.AddListener(() => SelectOverlay(13));
overlay14.onClick.AddListener(() => SelectOverlay(14));
}
private void SwitchToIcon()
{
iconsPanel.SetActive(true);
overlaysPanel.SetActive(false);
selectionText.text = "Icon selection";
placeholderButton.GetComponentInChildren<TMP_Text>().text = "Overlays";
}
private void SwitchToOverlay()
{
iconsPanel.SetActive(false);
overlaysPanel.SetActive(true);
selectionText.text = "Overlay selection";
placeholderButton.GetComponentInChildren<TMP_Text>().text = "Icons";
}
private void ToggleKit()
{
if (GetCurrentKit() == 1)
{
SwitchToOverlay();
}
else if (GetCurrentKit() == 2)
{
SwitchToIcon();
}
}
private int GetCurrentKit()
{
if (iconsPanel.activeSelf)
{
return 1;
}
if (overlaysPanel.activeSelf)
{
return 2;
}
return 0;
}
private void SelectIcon(int iconID)
{
PlayerPrefs.SetInt("icon", iconID);
PlayerPrefs.Save();
icon1.interactable = iconID != 1;
icon2.interactable = iconID != 2;
icon3.interactable = iconID != 3;
icon4.interactable = iconID != 4;
icon5.interactable = iconID != 5;
icon6.interactable = iconID != 6;
icon7.interactable = iconID != 7;
icon8.interactable = iconID != 8;
previewBird.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + iconID);
if (iconID == 1)
{
previewBird.sprite = defaultIcon;
}
if (iconID == 7)
{
SelectOverlay(0, false);
placeholderButton.interactable = false;
}
else
{
SelectOverlay(PlayerPrefs.GetInt("pastOverlay", 0), false);
placeholderButton.interactable = true;
}
}
private void SelectOverlay(int overlayID, bool savePast = true)
{
if (savePast)
{
PlayerPrefs.SetInt("pastOverlay", PlayerPrefs.GetInt("overlay", 0));
}
PlayerPrefs.SetInt("overlay", overlayID);
PlayerPrefs.Save();
overlay0.interactable = overlayID != 0;
overlay1.interactable = overlayID != 1;
overlay2.interactable = overlayID != 2;
overlay3.interactable = overlayID != 3;
overlay4.interactable = overlayID != 4;
overlay5.interactable = overlayID != 5;
overlay6.interactable = overlayID != 6;
overlay7.interactable = overlayID != 7;
overlay8.interactable = !(PlayerPrefs.GetInt("userId", 0) == 1 && PlayerPrefs.GetInt("icon", 0) == 1) && overlayID != 8;
overlay9.interactable = overlayID != 9;
overlay10.interactable = overlayID != 10;
overlay11.interactable = overlayID != 11;
overlay12.interactable = overlayID != 12;
overlay13.interactable = overlayID != 13;
overlay14.interactable = overlayID != 14;
previewOverlay.rectTransform.localPosition = new Vector3(-32f, 44.50001f, 0f);
previewOverlay.gameObject.SetActive(true);
if (overlayID == 8)
{
previewOverlay.rectTransform.localPosition = new Vector3(-35.36f, 31.6f, 0f);
}
else if (overlayID == 11)
{
previewOverlay.rectTransform.localPosition = new Vector3(-31.44f, 43.50004f, 0f);
}
else if (overlayID == 13)
{
previewOverlay.rectTransform.localPosition = new Vector3(-35.28575f, 31.3667f, 0f);
}
if (overlayID == 0)
{
previewOverlay.gameObject.SetActive(false);
previewOverlay.sprite = null;
}
else
{
previewOverlay.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlayID);
}
}
}