Files
2026-03-04 10:03:45 +08:00

1196 lines
35 KiB
C#

using System;
using System.Linq;
using System.Text;
using HeathenEngineering.Events;
using HeathenEngineering.Scriptable;
using Steamworks;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;
namespace HeathenEngineering.SteamApi.Foundation
{
[HelpURL("https://heathen-engineering.github.io/steamworks-documentation/class_heathen_engineering_1_1_steam_api_1_1_foundation_1_1_steamworks_foundation_manager.html")]
[DisallowMultipleComponent]
public class SteamworksFoundationManager : MonoBehaviour
{
[FormerlySerializedAs("Settings")]
public SteamSettings settings;
public BoolReference _doNotDistroyOnLoad = new BoolReference(value: false);
[FormerlySerializedAs("OnSteamInitalized")]
public UnityEvent onSteamInitalized;
[FormerlySerializedAs("OnSteamInitalizationError")]
public UnityStringEvent onSteamInitalizationError;
[FormerlySerializedAs("OnOverlayActivated")]
public UnityBoolEvent onOverlayActivated;
[FormerlySerializedAs("OnUserStatsRecieved")]
public UnityUserStatsReceivedEvent onUserStatsRecieved;
[FormerlySerializedAs("OnUserStatsStored")]
public UnityUserStatsStoredEvent onUserStatsStored;
[FormerlySerializedAs("OnNumberOfCurrentPlayersResult")]
public UnityNumberOfCurrentPlayersResultEvent onNumberOfCurrentPlayersResult;
[FormerlySerializedAs("OnAchievementStored")]
public UnityUserAchievementStoredEvent onAchievementStored;
[FormerlySerializedAs("OnSteamIOnAvatarLoadednitalized")]
public UnityAvatarImageLoadedEvent onAvatarLoaded;
[FormerlySerializedAs("OnPersonaStateChanged")]
public UnityPersonaStateChangeEvent onPersonaStateChanged;
[FormerlySerializedAs("OnRecievedFriendChatMessage")]
public FriendChatMessageEvent onRecievedFriendChatMessage;
[FormerlySerializedAs("GameServerShuttingDown")]
public UnityEvent gameServerShuttingDown;
[FormerlySerializedAs("Disconnected")]
public SteamSettings.GameServer.DisconnectedEvent disconnected;
[FormerlySerializedAs("Connected")]
public SteamSettings.GameServer.ConnectedEvent connected;
[FormerlySerializedAs("Failure")]
public SteamSettings.GameServer.FailureEvent failure;
private static SteamworksFoundationManager s_instance;
public static bool s_EverInialized;
private ENotificationPosition currentNotificationPosition = ENotificationPosition.k_EPositionBottomRight;
private Vector2Int currentNotificationIndent = Vector2Int.zero;
private SteamAPIWarningMessageHook_t m_SteamAPIWarningMessageHook;
[Obsolete("This field exists to support a singleton based design model however singleton as a model created unnessisary dependencies between GameObjects. It is recomended that you use SteamSettings objects directly.", false)]
public static SteamworksFoundationManager Instance => s_instance;
[Obsolete("use SteamSettings.initialized", false)]
public bool _initialized => settings.Initialized;
[Obsolete("Reference the BoolVariable assigned to the SteamSettings.initialized member directly as opposed to using static members", false)]
public static bool Initialized => Instance._initialized;
[Obsolete("Use SteamSettings.client.userData", false)]
public static SteamUserData _UserData
{
get
{
if (Instance != null && Instance.settings != null)
{
return Instance.settings.client.userData;
}
return null;
}
}
[Obsolete("Use SteamSettings.client.userData", false)]
public SteamUserData UserData
{
get
{
if (settings != null)
{
return settings.client.userData;
}
return null;
}
}
private static void SteamAPIDebugTextHook(int nSeverity, StringBuilder pchDebugText)
{
Debug.LogWarning(pchDebugText);
}
private void Awake()
{
if (s_instance != null)
{
UnityEngine.Object.Destroy(base.gameObject);
return;
}
s_instance = this;
if (s_EverInialized)
{
onSteamInitalizationError.Invoke("Tried to Initialize the SteamAPI twice in one session!");
throw new Exception("Tried to Initialize the SteamAPI twice in one session!");
}
if (_doNotDistroyOnLoad.Value)
{
UnityEngine.Object.DontDestroyOnLoad(base.gameObject);
}
if (!Packsize.Test())
{
Debug.LogError("[Steamworks.NET] Packsize Test returned false, the wrong version of Steamworks.NET is being run in this platform.", this);
onSteamInitalizationError.Invoke("[Steamworks.NET] Packsize Test returned false, the wrong version of Steamworks.NET is being run in this platform.");
}
if (!DllCheck.Test())
{
Debug.LogError("[Steamworks.NET] DllCheck Test returned false, One or more of the Steamworks binaries seems to be the wrong version.", this);
onSteamInitalizationError.Invoke("[Steamworks.NET] DllCheck Test returned false, One or more of the Steamworks binaries seems to be the wrong version.");
}
try
{
if (SteamAPI.RestartAppIfNecessary(settings.applicationId))
{
Application.Quit();
}
}
catch (DllNotFoundException ex)
{
Debug.LogError("[Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.\n" + ex, this);
onSteamInitalizationError.Invoke("[Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.\n" + ex);
Application.Quit();
}
}
private void OnEnable()
{
if (s_instance == null)
{
s_instance = this;
}
Debug.Log("Client Startup Detected!");
settings.Init();
if (!settings.Initialized)
{
Debug.LogError("[Steamworks.NET] SteamAPI_Init() failed. Refer to Valve's documentation or the comment above this line for more information.", this);
onSteamInitalizationError.Invoke("[Steamworks.NET] SteamAPI_Init() failed. Refer to Valve's documentation or the comment above this line for more information.");
return;
}
s_EverInialized = true;
onSteamInitalized.Invoke();
Debug.Log("Steam client Initalized!");
if (settings.Initialized)
{
if (m_SteamAPIWarningMessageHook == null)
{
m_SteamAPIWarningMessageHook = SteamAPIDebugTextHook;
SteamClient.SetWarningMessageHook(m_SteamAPIWarningMessageHook);
}
settings.client.m_GameOverlayActivated = Callback<GameOverlayActivated_t>.Create(settings.client.HandleOnOverlayOpen);
settings.client.onOverlayActivated.AddListener(onOverlayActivated.Invoke);
settings.client.RegisterAchievementsSystem();
settings.client.onAchievementStored.AddListener(onAchievementStored.Invoke);
settings.client.onUserStatsReceived.AddListener(onUserStatsRecieved.Invoke);
settings.client.onUserStatsStored.AddListener(onUserStatsStored.Invoke);
settings.client.onNumberOfCurrentPlayersResult.AddListener(onNumberOfCurrentPlayersResult.Invoke);
settings.client.RequestCurrentStats();
settings.client.RegisterFriendsSystem(settings.client.user);
settings.client.onAvatarLoaded.AddListener(onAvatarLoaded.Invoke);
settings.client.onPersonaStateChanged.AddListener(onPersonaStateChanged.Invoke);
settings.client.onRecievedFriendChatMessage.AddListener(onRecievedFriendChatMessage.Invoke);
}
}
private void OnDisable()
{
settings.client.onOverlayActivated.RemoveListener(onOverlayActivated.Invoke);
settings.client.onAchievementStored.RemoveListener(onAchievementStored.Invoke);
settings.client.onUserStatsReceived.RemoveListener(onUserStatsRecieved.Invoke);
settings.client.onUserStatsStored.RemoveListener(onUserStatsStored.Invoke);
settings.client.onNumberOfCurrentPlayersResult.RemoveListener(onNumberOfCurrentPlayersResult.Invoke);
settings.client.onAvatarLoaded.RemoveListener(onAvatarLoaded.Invoke);
settings.client.onPersonaStateChanged.RemoveListener(onPersonaStateChanged.Invoke);
settings.client.onRecievedFriendChatMessage.RemoveListener(onRecievedFriendChatMessage.Invoke);
}
private void OnDestroy()
{
Debug.Log("Foundation Destroy");
if (s_instance != this)
{
return;
}
s_instance = null;
if (settings.Initialized)
{
if (settings != null && settings.client.user != null)
{
settings.client.user.ClearData();
}
SteamAPI.Shutdown();
}
}
private void Update()
{
if (!settings.Initialized)
{
return;
}
SteamAPI.RunCallbacks();
if (settings != null)
{
if (currentNotificationPosition != settings.client.overlay.notificationPosition)
{
currentNotificationPosition = settings.client.overlay.notificationPosition;
settings.client.SetNotificationPosition(settings.client.overlay.notificationPosition);
}
if (currentNotificationIndent != settings.client.overlay.notificationInset)
{
currentNotificationIndent = settings.client.overlay.notificationInset;
settings.client.SetNotificationInset(settings.client.overlay.notificationInset);
}
}
}
private void InitializeGameServer()
{
if (settings.server.gameServerShuttingDown == null)
{
settings.server.gameServerShuttingDown = new UnityEvent();
}
if (settings.server.disconnected == null)
{
settings.server.disconnected = new SteamSettings.GameServer.DisconnectedEvent();
}
if (settings.server.connected == null)
{
settings.server.connected = new SteamSettings.GameServer.ConnectedEvent();
}
if (settings.server.failure == null)
{
settings.server.failure = new SteamSettings.GameServer.FailureEvent();
}
settings.server.steamServerConnectFailure = Callback<SteamServerConnectFailure_t>.CreateGameServer(settings.server.OnSteamServerConnectFailure);
settings.server.steamServersConnected = Callback<SteamServersConnected_t>.CreateGameServer(settings.server.OnSteamServersConnected);
settings.server.steamServersDisconnected = Callback<SteamServersDisconnected_t>.CreateGameServer(settings.server.OnSteamServersDisconnected);
settings.server.gameServerShuttingDown.AddListener(gameServerShuttingDown.Invoke);
settings.server.disconnected.AddListener(disconnected.Invoke);
settings.server.connected.AddListener(connected.Invoke);
settings.server.connected.AddListener(OnSteamServersConnected);
settings.server.failure.AddListener(failure.Invoke);
if (settings.isDebugging)
{
Debug.Log("Establishing debug hooks");
settings.server.gameServerShuttingDown.AddListener(LogShutDown);
settings.server.disconnected.AddListener(LogDisconnect);
settings.server.connected.AddListener(LogConnect);
settings.server.failure.AddListener(LogFailure);
}
settings.Init();
if (!settings.Initialized)
{
Debug.Log("SteamGameServer_Init call failed!");
onSteamInitalizationError.Invoke("SteamGameServer_Init call failed!");
return;
}
Debug.Log("SteamGameServer_Init call succeded\n\tPublic IP = " + SteamGameServer.GetPublicIP().ToString() + "\n\tIP = " + settings.server.ip + "\n\tAuthentication Port = " + settings.server.authenticationPort + "\n\tServer Port = " + settings.server.serverPort + "\n\tMaster Server Updater Port = " + settings.server.masterServerUpdaterPort + "\n\tVersion = " + settings.server.serverVersion);
onSteamInitalized.Invoke();
SteamGameServer.SetModDir(settings.server.gameDirectory);
SteamGameServer.SetProduct(settings.applicationId.m_AppId.ToString());
SteamGameServer.SetGameDescription(settings.server.gameDescription);
if (settings.server.supportSpectators)
{
if (settings.isDebugging)
{
Debug.Log("Spectator enabled:\n\tName = " + settings.server.spectatorServerName + "\n\tSpectator Port = " + settings.server.spectatorPort);
}
SteamGameServer.SetSpectatorPort(settings.server.spectatorPort);
SteamGameServer.SetSpectatorServerName(settings.server.spectatorServerName);
}
else if (settings.isDebugging)
{
Debug.Log("Spectator Set Up Skipped");
}
if (settings.server.anonymousServerLogin)
{
if (settings.isDebugging)
{
Debug.Log("Logging on with Anonymous");
}
SteamGameServer.LogOnAnonymous();
}
else
{
if (settings.isDebugging)
{
Debug.Log("Logging on with token");
}
SteamGameServer.LogOn(settings.server.gameServerToken);
}
if (settings.server.usingGameServerAuthApi || settings.server.enableHeartbeats)
{
SteamGameServer.EnableHeartbeats(bActive: true);
}
Debug.Log("Steam Game Server Started.\nWaiting for connection result from Steam");
}
private void OnSteamServersConnected(SteamServersConnected_t pLogonSuccess)
{
settings.server.serverId = SteamGameServer.GetSteamID();
Debug.Log("Game Server connected to Steam successfully!\n\tMod Directory = " + settings.server.gameDirectory + "\n\tApplicaiton ID = " + settings.applicationId.m_AppId + "\n\tServer ID = " + settings.server.serverId.m_SteamID + "\n\tServer Name = " + settings.server.serverName + "\n\tGame Description = " + settings.server.gameDescription + "\n\tMax Player Count = " + settings.server.maxPlayerCount);
SendUpdatedServerDetailsToSteam();
}
private void SendUpdatedServerDetailsToSteam()
{
SteamGameServer.SetMaxPlayerCount(settings.server.maxPlayerCount);
SteamGameServer.SetPasswordProtected(settings.server.isPasswordProtected);
SteamGameServer.SetServerName(settings.server.serverName);
SteamGameServer.SetBotPlayerCount(settings.server.botPlayerCount);
SteamGameServer.SetMapName(settings.server.mapName);
SteamGameServer.SetDedicatedServer(settings.server.isDedicated);
if (settings.server.rulePairs == null || settings.server.rulePairs.Count <= 0)
{
return;
}
foreach (StringKeyValuePair rulePair in settings.server.rulePairs)
{
SteamGameServer.SetKeyValue(rulePair.key, rulePair.value);
}
}
private void LogFailure(SteamServerConnectFailure_t arg0)
{
Debug.LogError("Connection Failure: " + arg0.m_eResult);
}
private void LogConnect(SteamServersConnected_t arg0)
{
Debug.LogError("Connection Ready");
}
private void LogDisconnect(SteamServersDisconnected_t arg0)
{
Debug.LogError("Connection Closed: " + arg0.m_eResult);
}
private void LogShutDown()
{
Debug.LogError("Game Server Logging Off");
}
public bool ListenForFriendMessages(bool isOn)
{
return SteamFriends.SetListenForFriendsMessages(isOn);
}
public bool SendFriendChatMessage(SteamUserData friend, string message)
{
return friend.SendMessage(message);
}
public bool SendFriendChatMessage(ulong friendId, string message)
{
return SendFriendChatMessage(new CSteamID(friendId), message);
}
public bool SendFriendChatMessage(CSteamID friend, string message)
{
return SteamFriends.ReplyToFriendMessage(friend, message);
}
[Obsolete("Use SteamSettings.client.SetNotificationPosition", false)]
public static void _SetNotificationPosition(ENotificationPosition position)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.SetNotificationPosition(position);
}
}
[Obsolete("Use SteamSettings.client.SetNotificationInset", false)]
public static void _SetNotificationInset(Vector2Int inset)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.SetNotificationInset(inset);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public static void _OpenStore()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenStore();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public static void _OpenStore(uint appId)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenStore(appId);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public static void _OpenStore(uint appId, EOverlayToStoreFlag flag)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenStore(appId, flag);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public static void _OpenStore(AppId_t appId, EOverlayToStoreFlag flag)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenStore(appId, flag);
}
}
[Obsolete("Use SteamSettings.client.overlay.Open", false)]
public static void _Open(string dialog)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.Open(dialog);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenWebPage", false)]
public static void _OpenWebPage(string URL)
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenWebPage(URL);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriends", false)]
public static void _OpenFriends()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenFriends();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenCommunity", false)]
public static void _OpenCommunity()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenCommunity();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenPlayers", false)]
public static void _OpenPlayers()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenPlayers();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenSettings", false)]
public static void _OpenSettings()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenSettings();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenOfficialGameGroup", false)]
public static void _OpenOfficialGameGroup()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenOfficialGameGroup();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStats", false)]
public static void _OpenStats()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenStats();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenAchievements", false)]
public static void _OpenAchievements()
{
if (Instance != null && Instance.settings != null)
{
Instance.settings.client.overlay.OpenAchievements();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenChat", false)]
public static void _OpenChat(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenChat(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenProfile", false)]
public static void _OpenProfile(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenProfile(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenTrade", false)]
public static void _OpenTrade(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenTrade(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStats", false)]
public static void _OpenStats(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenStats(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenAchievements", false)]
public static void _OpenAchievements(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenAchievements(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriendAdd", false)]
public static void _OpenFriendAdd(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenFriendAdd(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriendRemove", false)]
public static void _OpenFriendRemove(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenFriendRemove(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenRequestAccept", false)]
public static void _OpenRequestAccept(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenRequestAccept(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenRequestIgnore", false)]
public static void _OpenRequestIgnore(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
Instance.settings.client.overlay.OpenRequestIgnore(user.id);
}
}
[Obsolete("Use SteamSettings.client.SetNotificationPosition", false)]
public void SetNotificationPosition(ENotificationPosition position)
{
if (settings != null)
{
settings.client.SetNotificationPosition(position);
}
}
[Obsolete("Use SteamSettings.client.SetNotificationInset", false)]
public void SetNotificationInset(Vector2Int inset)
{
if (settings != null)
{
settings.client.SetNotificationInset(inset);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public void OpenStore()
{
if (settings != null)
{
settings.client.overlay.OpenStore();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public void OpenStore(uint appId)
{
if (settings != null)
{
settings.client.overlay.OpenStore(appId);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public void OpenStore(uint appId, EOverlayToStoreFlag flag)
{
if (settings != null)
{
settings.client.overlay.OpenStore(appId, flag);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStore", false)]
public void OpenStore(AppId_t appId, EOverlayToStoreFlag flag)
{
if (settings != null)
{
settings.client.overlay.OpenStore(appId, flag);
}
}
[Obsolete("Use SteamSettings.client.overlay.Open", false)]
public void Open(string dialog)
{
if (settings != null)
{
settings.client.overlay.Open(dialog);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenWebPage", false)]
public void OpenWebPage(string URL)
{
if (settings != null)
{
settings.client.overlay.OpenWebPage(URL);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriends", false)]
public void OpenFriends()
{
if (settings != null)
{
settings.client.overlay.OpenFriends();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenCommunity", false)]
public void OpenCommunity()
{
if (settings != null)
{
settings.client.overlay.OpenCommunity();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenPlayers", false)]
public void OpenPlayers()
{
if (settings != null)
{
settings.client.overlay.OpenPlayers();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenSettings", false)]
public void OpenSettings()
{
if (settings != null)
{
settings.client.overlay.OpenSettings();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenOfficialGameGroup", false)]
public void OpenOfficialGameGroup()
{
if (settings != null)
{
settings.client.overlay.OpenOfficialGameGroup();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStats", false)]
public void OpenStats()
{
if (settings != null)
{
settings.client.overlay.OpenStats();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenAchievements", false)]
public void OpenAchievements()
{
if (settings != null)
{
settings.client.overlay.OpenAchievements();
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenChat", false)]
public void OpenChat(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenChat(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenProfile", false)]
public void OpenProfile(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenProfile(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenTrade", false)]
public void OpenTrade(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenTrade(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenStats", false)]
public void OpenStats(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenStats(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenAchievements", false)]
public void OpenAchievements(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenAchievements(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriendAdd", false)]
public void OpenFriendAdd(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenFriendAdd(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenFriendRemove", false)]
public void OpenFriendRemove(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenFriendRemove(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenRequestAccept", false)]
public void OpenRequestAccept(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenRequestAccept(user.id);
}
}
[Obsolete("Use SteamSettings.client.overlay.OpenRequestIgnore", false)]
public void OpenRequestIgnore(SteamUserData user)
{
if (user.id.m_SteamID != SteamUser.GetSteamID().m_SteamID)
{
settings.client.overlay.OpenRequestIgnore(user.id);
}
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static string _GetUserName(ulong steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
return steamUserData.DisplayName;
}
return string.Empty;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static FriendGameInfo_t _GetUserGameInfo(ulong steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
return steamUserData.GameInfo;
}
return default(FriendGameInfo_t);
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static Texture2D _GetUserAvatar(ulong steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
if (!steamUserData.iconLoaded)
{
_RefreshAvatar(steamUserData);
}
return steamUserData.avatar;
}
return null;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static SteamUserData _GetUserData(ulong steamId)
{
return Instance.settings.client.GetUserData(new CSteamID(steamId));
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static string _GetUserName(CSteamID steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
return steamUserData.DisplayName;
}
return string.Empty;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static FriendGameInfo_t _GetUserGameInfo(CSteamID steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
return steamUserData.GameInfo;
}
return default(FriendGameInfo_t);
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static Texture2D _GetUserAvatar(CSteamID steamId)
{
SteamUserData steamUserData = _GetUserData(steamId);
if (steamUserData != null)
{
if (!steamUserData.iconLoaded)
{
_RefreshAvatar(steamUserData);
}
return steamUserData.avatar;
}
return null;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public static SteamUserData _GetUserData(CSteamID steamId)
{
return Instance.settings.client.GetUserData(steamId);
}
[Obsolete("Use SteamSettings.client.RefreshAvatar", false)]
public static void _RefreshAvatar(SteamUserData userData)
{
Instance.settings.client.RefreshAvatar(userData);
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public string GetUserName(ulong steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
return userData.DisplayName;
}
return string.Empty;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public FriendGameInfo_t GetUserGameInfo(ulong steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
return userData.GameInfo;
}
return default(FriendGameInfo_t);
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public Texture2D GetUserAvatar(ulong steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
if (!userData.iconLoaded)
{
RefreshAvatar(userData);
}
return userData.avatar;
}
return null;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public SteamUserData GetUserData(ulong steamId)
{
return settings.client.GetUserData(new CSteamID(steamId));
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public string GetUserName(CSteamID steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
return userData.DisplayName;
}
return string.Empty;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public FriendGameInfo_t GetUserGameInfo(CSteamID steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
return userData.GameInfo;
}
return default(FriendGameInfo_t);
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public Texture2D GetUserAvatar(CSteamID steamId)
{
SteamUserData userData = GetUserData(steamId);
if (userData != null)
{
if (!userData.iconLoaded)
{
RefreshAvatar(userData);
}
return userData.avatar;
}
return null;
}
[Obsolete("Use SteamSettings.client.GetUserData", false)]
public SteamUserData GetUserData(CSteamID steamId)
{
return settings.client.GetUserData(steamId);
}
[Obsolete("Use SteamSettings.client.RefreshAvatar", false)]
public void RefreshAvatar(SteamUserData userData)
{
settings.client.RefreshAvatar(userData);
}
[Obsolete("Use SteamSettings.client.StoreStatsAndAchievements", false)]
public void StoreStatsAndAchievements()
{
settings.client.StoreStatsAndAchievements();
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public SteamAchievementData GetAchievement(string achievementId)
{
if (settings != null)
{
if (settings.client.achievements.Exists((SteamAchievementData a) => a.achievementId == achievementId))
{
return settings.client.achievements.FirstOrDefault((SteamAchievementData a) => a.achievementId == achievementId);
}
return null;
}
return null;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public SteamAchievementData GetAchievement(int achievementIndex)
{
if (settings != null)
{
if (settings.client.achievements.Count > achievementIndex && achievementIndex > -1)
{
return settings.client.achievements[achievementIndex];
}
return null;
}
return null;
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public void UnlockAchievement(SteamAchievementData achievementData)
{
achievementData.Unlock();
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public void UnlockAchievement(string achievementId)
{
if (settings != null && settings.client.achievements.Exists((SteamAchievementData a) => a.achievementId == achievementId))
{
settings.client.achievements.FirstOrDefault((SteamAchievementData a) => a.achievementId == achievementId).Unlock();
}
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public void UnlockAchievement(int achievementIndex)
{
if (settings != null && settings.client.achievements.Count > achievementIndex && achievementIndex > -1)
{
settings.client.achievements[achievementIndex].Unlock();
}
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public bool IsAchievementAchieved(string achievementId)
{
SteamAchievementData achievement = GetAchievement(achievementId);
if (achievement != null)
{
return achievement.isAchieved;
}
return false;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public bool IsAchievementAchieved(int achievementIndex)
{
SteamAchievementData achievement = GetAchievement(achievementIndex);
if (achievement != null)
{
return achievement.isAchieved;
}
return false;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public bool AchievementExists(string achievementId)
{
return GetAchievement(achievementId) != null;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public bool AchievementExists(int achievementIndex)
{
return GetAchievement(achievementIndex) != null;
}
[Obsolete("Use SteamSettings.client.StoreStatsAndAchievements", false)]
public static void _StoreStatsAndAchievements()
{
Instance.settings.client.StoreStatsAndAchievements();
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static SteamAchievementData _GetAchievement(string achievementId)
{
if (Instance != null)
{
return Instance.GetAchievement(achievementId);
}
return null;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static SteamAchievementData _GetAchievement(int achievementIndex)
{
if (Instance != null)
{
return Instance.GetAchievement(achievementIndex);
}
return null;
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public static void _UnlockAchievement(SteamAchievementData achievementData)
{
if (Instance != null)
{
Instance.UnlockAchievement(achievementData);
}
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public static void _UnlockAchievement(string achievementId)
{
if (Instance != null)
{
Instance.UnlockAchievement(achievementId);
}
}
[Obsolete("Use SteamSettings.client.UnlockAchievementData", false)]
public static void _UnlockAchievement(int achievementIndex)
{
if (Instance != null)
{
Instance.UnlockAchievement(achievementIndex);
}
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static bool _IsAchievementAchieved(string achievementId)
{
if (Instance != null)
{
return Instance.AchievementExists(achievementId);
}
return false;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static bool _IsAchievementAchieved(int achievementIndex)
{
if (Instance != null)
{
return Instance.IsAchievementAchieved(achievementIndex);
}
return false;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static bool _AchievementExists(string achievementId)
{
if (Instance != null)
{
return Instance.AchievementExists(achievementId);
}
return false;
}
[Obsolete("Use SteamSettings.client.achievements", false)]
public static bool _AchievementExists(int achievementIndex)
{
if (Instance != null)
{
return Instance.AchievementExists(achievementIndex);
}
return false;
}
}
}