fix popup item menu and refactor ui system

This commit is contained in:
Vova
2023-12-11 16:16:18 +02:00
parent bf088009f6
commit e7f082a774
14 changed files with 131 additions and 63 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ public class JobSelectorUI : MonoBehaviour
public void ShowJobSelectionDialog(string title, Action onCancel, Action<JobInfoSO> onConfirm)
{
UIManager.Instance.Freeze();
GameManager.Instance.UI.Freeze();
gameObject.SetActive(true);
_title.text = title;
@@ -95,7 +95,7 @@ public class JobSelectorUI : MonoBehaviour
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
GameManager.Instance.UI.Unfreeze();
Destroy(this);
}
+7 -7
View File
@@ -42,22 +42,22 @@ public class RadialMenuItem : MonoBehaviour
{
b.onClick.AddListener(() =>
{
CloseDialog();
Hide();
Close();
_menuButtonClick?.Invoke(_actions.ElementAt(buttonNumber).Key);
});
}
private void CloseDialog()
public void CancelAndClose()
{
UIManager.Instance.Unfreeze();
Destroy(_popupMenu);
Destroy(this);
Close();
_menuButtonClick?.Invoke(RadialMenuActions.Cancel);
}
private void Hide()
private void Close()
{
GameManager.Instance.UI.Unfreeze();
Destroy(this);
gameObject.SetActive(false);
Destroy(gameObject);
}
+2 -2
View File
@@ -22,7 +22,7 @@ public class TimeSliderUI : MonoBehaviour
{
GameManager.Instance.Time.OnFastForwardEnd += CloseDialog;
GameManager.Instance.Pause();
UIManager.Instance.Freeze();
GameManager.Instance.UI.Freeze();
gameObject.SetActive(true);
_title.text = title;
@@ -46,7 +46,7 @@ public class TimeSliderUI : MonoBehaviour
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
GameManager.Instance.UI.Unfreeze();
Destroy(this);
}
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using UnityEngine;
public class UIManager : MonoBehaviour
public class UISystem : MonoBehaviour
{
[SerializeField]
private TimeSliderUI _timeSliderPrefab;
@@ -13,16 +13,7 @@ public class UIManager : MonoBehaviour
[SerializeField]
private RadialMenuItem _radialMenuItemPrefab;
public static UIManager Instance { get; private set; }
private void Awake()
{
if (Instance != null)
{
return;
}
Instance = this;
}
RadialMenuItem _popupMenu;
private void Start()
{
@@ -41,14 +32,21 @@ public class UIManager : MonoBehaviour
jobSelector.ShowJobSelectionDialog(title, onCancel, onConfirm);
}
public void ShowItemsMenu(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions,Action<RadialMenuActions> itemsMenuCallback)
public void ShowItemPopupMenu(Dictionary<RadialMenuActions, RadialMenuActionDescription> actions,Action<RadialMenuActions> itemsMenuCallback)
{
var popupMenu = Instantiate(_radialMenuItemPrefab);
popupMenu.transform.transform.SetParent(transform, false);
popupMenu.transform.position = Input.mousePosition;
popupMenu.ShowButtons(popupMenu, actions,itemsMenuCallback);
_popupMenu = Instantiate(_radialMenuItemPrefab);
_popupMenu.transform.transform.SetParent(transform, false);
_popupMenu.transform.position = Input.mousePosition;
_popupMenu.ShowButtons(_popupMenu, actions,itemsMenuCallback);
}
public void ClosePopupMenu()
{
if (_popupMenu != null)
{
_popupMenu.CancelAndClose();
}
}
public void Freeze()
{
_blurOverlay.SetActive(true);
@@ -58,9 +56,4 @@ public class UIManager : MonoBehaviour
{
_blurOverlay.SetActive(false);
}
private void OnDisable()
{
}
}