Aetheria/Assets/Scripts/MenuPanel.cs

61 lines
1.6 KiB
C#
Raw Normal View History

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MenuPanel : MonoBehaviour
{
public RectTransform TabButtons;
public Color ActiveTabColor;
public Color InactiveTabColor;
public event Action<MenuTab> TabChanged;
private Dictionary<MenuTab, MenuTabButton> _tabs = new Dictionary<MenuTab, MenuTabButton>();
private MenuTabButton _current;
2020-12-18 13:48:03 +00:00
public MenuTab CurrentTab { get; private set; }
public void ShowTab(MenuTab tab)
{
gameObject.SetActive(true);
if (_current == _tabs[tab]) return;
if(_current != null)
{
_current.TabContents.SetActive(false);
_current.Text.color = InactiveTabColor;
}
2020-12-18 13:48:03 +00:00
CurrentTab = tab;
_current = _tabs[tab];
_current.TabContents.SetActive(true);
_current.Text.color = ActiveTabColor;
TabChanged?.Invoke(tab);
}
void Awake()
{
foreach (var tabButton in TabButtons.GetComponentsInChildren<MenuTabButton>())
{
tabButton.TabContents.SetActive(false);
tabButton.Text.color = InactiveTabColor;
_tabs.Add(tabButton.Tab, tabButton);
tabButton.Button.onClick.AddListener(() => ShowTab(tabButton.Tab));
}
ShowTab(MenuTab.Inventory);
}
}
public enum MenuTab
{
Map,
Inventory
}