using Heathen.SteamworksIntegration; using Steamworks; using UnityEngine; public class LobbyObserver : MonoBehaviour { [SerializeField] private ScriptableLobbyDataVariable scriptable_variable_LobbyData; private LobbyManager lobbyManager; private void LobbyEnterSuccess(LobbyData lobbyData) { RefreshLobbyData(); } private void LobbyEnterFailed(EChatRoomEnterResponse response) { RefreshLobbyData(); } private void OnLobbyLeave() { RefreshLobbyData(); } private void OnLobbyCreated(LobbyData lobbyData) { RefreshLobbyData(); } private void OnLobbyCreateFailed(EResult result) { RefreshLobbyData(); } private void Awake() { lobbyManager = GetComponent(); } private void OnEnable() { lobbyManager.evtEnterSuccess.AddListener(LobbyEnterSuccess); lobbyManager.evtEnterFailed.AddListener(LobbyEnterFailed); lobbyManager.evtLeave.AddListener(OnLobbyLeave); lobbyManager.evtCreated.AddListener(OnLobbyCreated); lobbyManager.evtCreateFailed.AddListener(OnLobbyCreateFailed); } private void OnDisable() { lobbyManager.evtEnterSuccess.RemoveListener(LobbyEnterSuccess); lobbyManager.evtEnterFailed.RemoveListener(LobbyEnterFailed); lobbyManager.evtLeave.RemoveListener(OnLobbyLeave); lobbyManager.evtCreated.RemoveListener(OnLobbyCreated); lobbyManager.evtCreateFailed.RemoveListener(OnLobbyCreateFailed); } private void RefreshLobbyData() { if (scriptable_variable_LobbyData.Value != lobbyManager.Lobby) { scriptable_variable_LobbyData.Value = lobbyManager.Lobby; } } }