using System; using HeathenEngineering.Tools; using UnityEngine; using UnityEngine.Events; using UnityEngine.Serialization; using UnityEngine.UI; namespace HeathenEngineering.SteamApi.Foundation.UI { [RequireComponent(typeof(Text))] public class GetSteamName : HeathenUIBehaviour { [FormerlySerializedAs("UserData")] public SteamUserData userData; private Text text; private void Start() { text = GetComponent(); if (userData != null) { LinkSteamUser(userData); } } private void Update() { } private void OnEnable() { if (userData != null) { LinkSteamUser(userData); } } public void LinkSteamUser(SteamUserData newUserData) { if (userData != null && userData.OnNameChanged != null) { userData.OnNameChanged.RemoveListener(handleNameChanged); } userData = newUserData; handleNameChanged(); if (userData != null) { if (userData.OnNameChanged == null) { userData.OnNameChanged = new UnityEvent(); } userData.OnNameChanged.AddListener(handleNameChanged); } } private void handleNameChanged() { text = GetComponent(); try { text.text = userData.DisplayName; } catch (Exception) { text.text = Singleton.Instance.GetCurrentPlayerData().PlayerName; } } private void OnDestroy() { } } }