using System;
using UnityEngine;
using UnityEngine.Events;
namespace LobbyRelaySample.UI
{
public enum JoinCreateTabs
{
Join,
Create
}
///
/// The panel that holds the lobby joining and creation panels.
///
public class JoinCreateLobbyUI : UIPanelBase
{
[HideInInspector]
public UnityEvent m_OnTabChanged;
[SerializeField] //Serialized for Visisbility in Editor
JoinCreateTabs m_CurrentTab = JoinCreateTabs.Join;
public JoinCreateTabs CurrentTab
{
get => m_CurrentTab;
set
{
m_CurrentTab = value;
m_OnTabChanged?.Invoke(m_CurrentTab);
}
}
public void SetJoinTab()
{
CurrentTab = JoinCreateTabs.Join;
}
public void SetCreateTab()
{
CurrentTab = JoinCreateTabs.Create;
}
void GameStateChanged(GameState state)
{
if (state == GameState.JoinMenu)
{
m_OnTabChanged?.Invoke(m_CurrentTab);
Show(false);
}
else
{
Hide();
}
}
public override void Start()
{
base.Start();
Manager.onGameStateChanged += GameStateChanged;
}
void OnDestroy()
{
if (Manager == null)
return;
Manager.onGameStateChanged -= GameStateChanged;
}
}
}