2023-09-25 16:24:19 +03:00
|
|
|
using TMPro;
|
2023-07-04 21:32:21 +03:00
|
|
|
using UnityEngine;
|
2023-08-28 02:38:39 +03:00
|
|
|
using UnityEngine.EventSystems;
|
2023-07-06 16:01:26 +03:00
|
|
|
using UnityEngine.UI;
|
2023-07-04 21:32:21 +03:00
|
|
|
|
|
|
|
|
public class TopBarMenu : MonoBehaviour
|
|
|
|
|
{
|
2023-07-06 16:01:26 +03:00
|
|
|
[SerializeField] private OptionsMenu _optionsMenu = default;
|
2023-08-29 17:42:32 +03:00
|
|
|
[SerializeField] private PromptsInput _hotBarPrompts = default;
|
2023-07-06 16:01:26 +03:00
|
|
|
[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;
|
2023-07-19 17:10:21 +03:00
|
|
|
[SerializeField] private BaseMenu _previousMenu = default;
|
2023-08-28 02:38:39 +03:00
|
|
|
[SerializeField] private GameObject _backgroundImage = default;
|
|
|
|
|
[SerializeField] private InputManager _inputManager = default;
|
|
|
|
|
[SerializeField] private Animator _animator;
|
2023-08-28 22:50:54 +03:00
|
|
|
[SerializeField] private Canvas _canvas;
|
2023-09-20 22:07:55 +03:00
|
|
|
[SerializeField] private GameObject _previousSelectable;
|
2023-12-03 02:36:58 +02:00
|
|
|
[SerializeField] private AudioSource _mainMenuAudio;
|
2023-08-28 02:38:39 +03:00
|
|
|
public bool Active { get { return _backgroundImage.activeSelf; } private set { } }
|
2023-07-06 16:01:26 +03:00
|
|
|
|
2023-09-25 18:01:16 +03:00
|
|
|
public void JoinDiscord() => Application.OpenURL("https://discord.com/invite/wPw9fV6aQg");
|
2023-07-06 16:01:26 +03:00
|
|
|
|
|
|
|
|
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();
|
2023-07-19 17:10:21 +03:00
|
|
|
|
|
|
|
|
public void ShowMenu(BaseMenu menu)
|
|
|
|
|
{
|
|
|
|
|
_previousMenu.Hide();
|
|
|
|
|
menu.Show();
|
|
|
|
|
_previousMenu = menu;
|
|
|
|
|
}
|
2023-08-28 02:38:39 +03:00
|
|
|
|
|
|
|
|
public void HideHotBar(GameObject hotBarToggle)
|
|
|
|
|
{
|
2023-08-28 22:50:54 +03:00
|
|
|
_canvas.sortingOrder = 0;
|
2023-08-28 02:38:39 +03:00
|
|
|
_backgroundImage.SetActive(false);
|
|
|
|
|
_animator.SetBool("Appear", false);
|
|
|
|
|
_animator.SetBool("Disappear", true);
|
2023-09-20 22:07:55 +03:00
|
|
|
_previousSelectable = hotBarToggle;
|
2023-08-28 02:38:39 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ShowHotBar()
|
|
|
|
|
{
|
2023-08-28 22:50:54 +03:00
|
|
|
_canvas.sortingOrder = 1;
|
2023-08-29 17:42:32 +03:00
|
|
|
_inputManager.SetPrompts(_hotBarPrompts);
|
2023-08-28 02:38:39 +03:00
|
|
|
_backgroundImage.SetActive(true);
|
|
|
|
|
_animator.SetBool("Appear", true);
|
|
|
|
|
_animator.SetBool("Disappear", false);
|
|
|
|
|
EventSystem.current.SetSelectedGameObject(_previousSelectable);
|
|
|
|
|
}
|
2023-07-04 21:32:21 +03:00
|
|
|
}
|