using BitStrap; using UnityEngine; using UnityEngine.UI; public class PlayerListWidget : MonoBehaviour { public Image avatarImage; public Image stateImage; public Text nameText; public Text stateText; public Text levelText; public Button showStatsBtn; public Button addFriendBtn; public Toggle muteToggle; public SteamStatsManager.SteamUser steamUser; [ReadOnly] public PhotonPlayer photonPlayer; [HideInInspector] public PlayersGUI playersGUI; public void RefreshWidget() { if (steamUser != null) { if ((bool)steamUser.avatarMedium) { avatarImage.sprite = Sprite.Create(steamUser.avatarMedium, new Rect(0f, 0f, steamUser.avatarMedium.width, steamUser.avatarMedium.height), new Vector2(0.5f, 0.5f)); } else { avatarImage.sprite = null; } avatarImage.gameObject.SetActive(avatarImage.sprite != null); stateImage.color = SteamStatsManager.Instance.GetUserStateColor(steamUser); nameText.text = photonPlayer.NickName; levelText.text = Utilities.GetTranslation("LEADERBOARDS/LEVEL") + " " + ((!photonPlayer.CustomProperties.ContainsKey("playersLevel")) ? "-" : ((int)photonPlayer.CustomProperties["playersLevel"]/*cast due to .constrained prefix*/).ToString()); addFriendBtn.interactable = !SteamStatsManager.Instance.IsUserAFriend(steamUser); if ((bool)MultiplayerManager.Instance && MultiplayerManager.Instance.IsPlayerMuted(photonPlayer.NickName)) { muteToggle.isOn = false; } if (steamUser.platformProfileID == GlobalSettings.Instance.GetPlatformProfileID()) { muteToggle.gameObject.SetActive(false); addFriendBtn.gameObject.SetActive(false); } } } public void ShowStats() { playersGUI.steamUserWidget.steamUser = steamUser; playersGUI.steamUserWidget.photonPlayer = photonPlayer; playersGUI.ChangeState(PlayersGUI.State.STATS); } public void AddFriend() { SteamStatsManager.Instance.AddFriend(steamUser); } public void MutePlayer() { if ((bool)MultiplayerManager.Instance) { MultiplayerManager.Instance.MutePlayer(photonPlayer.NickName, !muteToggle.isOn); } } }