mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-02-08 05:30:59 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using Sandbox.Engine;
|
|
using Steamworks;
|
|
|
|
namespace Sandbox;
|
|
|
|
/// <summary>
|
|
/// Handles callbacks from Steam lobbies and translates them to our Global, Party or Game lobbies.
|
|
/// </summary>
|
|
internal static class SteamCallbacks
|
|
{
|
|
internal static void InitSteamCallbacks()
|
|
{
|
|
SteamFriends.OnPersonaStateChange += SteamFriends_OnPersonaStateChange;
|
|
SteamFriends.OnFriendRichPresenceUpdate += SteamFriends_OnPersonaStateChange;
|
|
SteamFriends.OnGameRichPresenceJoinRequested += SteamFriends_OnGameRichPresenceJoinRequested;
|
|
SteamFriends.OnGameLobbyJoinRequested += SteamFriends_OnGameLobbyJoinRequested;
|
|
}
|
|
|
|
private static void SteamFriends_OnGameRichPresenceJoinRequested( Steamworks.Friend friend, string connectStr )
|
|
{
|
|
using var scope = GlobalContext.MenuScope();
|
|
ConsoleSystem.Run( "connect", connectStr.Split( ' ' ).Last() );
|
|
}
|
|
|
|
private static void SteamFriends_OnGameLobbyJoinRequested( Sandbox.SteamId lobby )
|
|
{
|
|
using var scope = GlobalContext.MenuScope();
|
|
ConsoleSystem.Run( "connect", lobby.Value );
|
|
}
|
|
|
|
private static void SteamFriends_OnPersonaStateChange( Steamworks.Friend obj )
|
|
{
|
|
using var scope = GlobalContext.MenuScope();
|
|
Event.Run( "friend.change", new Sandbox.Friend( obj ) );
|
|
}
|
|
}
|