82 lines
2.3 KiB
C#
82 lines
2.3 KiB
C#
using UnityEngine;
|
|
|
|
public class MenuSettingsTransit : MonoBehaviour
|
|
{
|
|
[SerializeField] private Menu _menu;
|
|
[SerializeField] private SettingsScreen _settingsScreen;
|
|
[SerializeField] private SettingsPasswordPanel _passwordPanelPrefab;
|
|
|
|
private SettingsPasswordPanel _activePasswordPanel;
|
|
|
|
private void OnDestroy()
|
|
{
|
|
if (_activePasswordPanel == null)
|
|
return;
|
|
|
|
_activePasswordPanel.OnAccepted -= AcceptSettingsAccess;
|
|
_activePasswordPanel.OnCancelled -= CancelSettingsAccess;
|
|
}
|
|
|
|
public void GotoSettings()
|
|
{
|
|
if (_activePasswordPanel != null)
|
|
return;
|
|
|
|
_menu.ControlsEnabled = false;
|
|
_settingsScreen.gameObject.SetActive(true);
|
|
|
|
if (SettingsPasswordStore.HasPassword == false)
|
|
{
|
|
EnterSettings();
|
|
return;
|
|
}
|
|
|
|
_activePasswordPanel = Instantiate(_passwordPanelPrefab, _settingsScreen.transform);
|
|
_activePasswordPanel.OnAccepted += AcceptSettingsAccess;
|
|
_activePasswordPanel.OnCancelled += CancelSettingsAccess;
|
|
_settingsScreen.BlockControls();
|
|
ControlsPerformer.Instance.SetControlable(_activePasswordPanel);
|
|
_activePasswordPanel.OpenForSettingsAccess();
|
|
}
|
|
|
|
public void GotoMenu()
|
|
{
|
|
ClosePasswordPanel();
|
|
_settingsScreen.gameObject.SetActive(false);
|
|
SettingsManager.SaveSettings();
|
|
_menu.ControlsEnabled = true;
|
|
ControlsPerformer.Instance.SetControlable(_menu);
|
|
}
|
|
|
|
private void EnterSettings()
|
|
{
|
|
_settingsScreen.BlockControls();
|
|
ControlsPerformer.Instance.SetControlable(_settingsScreen);
|
|
}
|
|
|
|
private void AcceptSettingsAccess()
|
|
{
|
|
ClosePasswordPanel();
|
|
EnterSettings();
|
|
}
|
|
|
|
private void CancelSettingsAccess()
|
|
{
|
|
ClosePasswordPanel();
|
|
_settingsScreen.gameObject.SetActive(false);
|
|
_menu.ControlsEnabled = true;
|
|
ControlsPerformer.Instance.SetControlable(_menu);
|
|
}
|
|
|
|
private void ClosePasswordPanel()
|
|
{
|
|
if (_activePasswordPanel == null)
|
|
return;
|
|
|
|
_activePasswordPanel.OnAccepted -= AcceptSettingsAccess;
|
|
_activePasswordPanel.OnCancelled -= CancelSettingsAccess;
|
|
Destroy(_activePasswordPanel.gameObject);
|
|
_activePasswordPanel = null;
|
|
}
|
|
}
|