Files
Darklings-FightingGame/Assets/_Project/Scripts/UIScripts/MenuScripts/TopBarMenu.cs
2023-09-25 18:01:16 +03:00

78 lines
2.8 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class TopBarMenu : MonoBehaviour
{
[SerializeField] private OptionsMenu _optionsMenu = default;
[SerializeField] private PromptsInput _hotBarPrompts = default;
[SerializeField] private ControlsMenu _controlsMenu = default;
[SerializeField] private Sprite _musicOnSprite = default;
[SerializeField] private Sprite _musicOffSprite = default;
[SerializeField] private Sprite _fullScreenOnSprite = default;
[SerializeField] private Sprite _fullScreenOffSprite = default;
[SerializeField] private Image _musicImage = default;
[SerializeField] private Image _fullScreenImage = default;
[SerializeField] private BaseMenu _previousMenu = default;
[SerializeField] private GameObject _backgroundImage = default;
[SerializeField] private InputManager _inputManager = default;
[SerializeField] private GameObject _menuTitle = default;
[SerializeField] private TextMeshProUGUI _menuTitleText = default;
[SerializeField] private Animator _animator;
[SerializeField] private Canvas _canvas;
[SerializeField] private GameObject _previousSelectable;
private AudioSource _mainMenuAudio;
public bool Active { get { return _backgroundImage.activeSelf; } private set { } }
private void Start() => _mainMenuAudio = Camera.main.GetComponent<AudioSource>();
public void JoinDiscord() => Application.OpenURL("https://discord.com/invite/wPw9fV6aQg");
public void ToggleFullScreen()
{
Screen.fullScreen = !Screen.fullScreen;
_fullScreenImage.sprite = Screen.fullScreen ? _fullScreenOffSprite : _fullScreenOnSprite;
}
public void ToggleMenuMusic()
{
_mainMenuAudio.enabled = !_mainMenuAudio.enabled;
_musicImage.sprite = _mainMenuAudio.enabled ? _musicOffSprite : _musicOnSprite;
}
public void OpenControls() => _controlsMenu.Show();
public void OpenSettings() => _optionsMenu.Show();
public void ShowMenu(BaseMenu menu)
{
_previousMenu.Hide();
menu.Show();
_previousMenu = menu;
}
public void HideHotBar(GameObject hotBarToggle)
{
_canvas.sortingOrder = 0;
_backgroundImage.SetActive(false);
_animator.SetBool("Appear", false);
_animator.SetBool("Disappear", true);
_previousSelectable = hotBarToggle;
}
public void ShowHotBar()
{
_canvas.sortingOrder = 1;
_inputManager.SetPrompts(_hotBarPrompts);
_backgroundImage.SetActive(true);
_animator.SetBool("Appear", true);
_animator.SetBool("Disappear", false);
EventSystem.current.SetSelectedGameObject(_previousSelectable);
}
public void SetMenuTitle(string text)
{
_menuTitleText.text = text;
_menuTitle.SetActive(text != "");
}
}