using Steamworks;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Ys.UI;
namespace Ys.SteamSdk
{
[System.Serializable]
public class SteamBaseInfo
{
public CSteamID steamId;
public Texture2D downloadedAvatar;
public string NickName;
public EPersonaState personaState;
}
public class SteamBase : MonoBehaviour
{
public AppId_t AppId = (AppId_t)1109040;
public static SteamBase Instance { get; set; }
[Header("查询好友的条件")]
public EFriendFlags eFriendFlags = EFriendFlags.k_EFriendFlagAll;
public SteamBaseInfo Ower//自己的信息
{
get
{
return AllMySteamUsersInfosList[0];
}
}
[Header("所有[满足条件]好友[包含自己]")]
public List<SteamBaseInfo> AllMySteamUsersInfosList = new List<SteamBaseInfo>();
public List<SteamBaseInfo> GetOnlySteamFridendUsersList//除了你以外你的所有[满足条件]朋友
{
get
{
List<SteamBaseInfo> tempList = new List<SteamBaseInfo>();
foreach (var item in AllMySteamUsersInfosList)
{
tempList.Add(item);
}
tempList.RemoveAt(0);
if (tempList.Count == 0)
{
return AllMySteamUsersInfosList;
}
else
{
return tempList;
}
}
}
private Coroutine DownLoadSteamAvtorCoroutine;
[HideInInspector]
public Texture2D DownLoadSteamAvtorTex_Temp;
public SteamBaseInfo GetSteamBaseInfoBySteamId(CSteamID cSteamID)
{
foreach (var item in AllMySteamUsersInfosList)
{
if (item.steamId == cSteamID)
{
return item;
}
}
return default(SteamBaseInfo);
}
void Awake()
{
Instance = this;
}
void Start()
{
SteamFridends.Instance.UpdateFridendListEvent += UpdateSteamFridendInfo;
//本地自己
CSteamID csid = SteamApps.GetAppOwner();
SteamBaseInfo ower = new SteamBaseInfo
{
steamId = csid,
downloadedAvatar = null,
NickName = SteamFriends.GetFriendPersonaName(csid),
personaState = SteamFriends.GetFriendPersonaState(csid)
};
AllMySteamUsersInfosList.Add(ower);
//其他朋友
for (int i = 0; i < SteamFriends.GetFriendCount(eFriendFlags); i++)
{
CSteamID steamid = SteamFriends.GetFriendByIndex(i, eFriendFlags);
if (SteamApps.BIsSubscribedApp(AppId))//必须拥有本产品的好友
{
AllMySteamUsersInfosList.Add(new SteamBaseInfo
{
steamId = steamid,