(3dc4135ce) v0.9.5.1

This commit is contained in:
Regalis
2019-11-21 18:22:25 +01:00
parent b39922a074
commit 5c95c53118
287 changed files with 12655 additions and 5048 deletions
@@ -36,10 +36,13 @@ namespace Facepunch.Steamworks
internal Client client;
private byte[] buffer = new byte[1024 * 128];
public Dictionary<ulong, Action> OnRichPresenceUpdateCallbacks;
internal Friends( Client c )
{
client = c;
client.RegisterCallback<FriendRichPresenceUpdate_t>(OnRichPresenceUpdate);
client.RegisterCallback<AvatarImageLoaded_t>( OnAvatarImageLoaded );
client.RegisterCallback<PersonaStateChange_t>( OnPersonaStateChange );
client.RegisterCallback<GameRichPresenceJoinRequested_t>( OnGameJoinRequested );
@@ -149,6 +152,33 @@ namespace Facepunch.Steamworks
}
}
public void SetRichPresenceUpdateCallback(ulong steamId, Action callback)
{
if (callback != null)
{
if (OnRichPresenceUpdateCallbacks == null)
{
OnRichPresenceUpdateCallbacks = new Dictionary<ulong, Action>();
}
if (!OnRichPresenceUpdateCallbacks.ContainsKey(steamId))
{
OnRichPresenceUpdateCallbacks.Add(steamId, callback);
}
else
{
OnRichPresenceUpdateCallbacks[steamId] = callback;
}
}
else
{
if (OnRichPresenceUpdateCallbacks == null) { return; }
if (OnRichPresenceUpdateCallbacks.ContainsKey(steamId))
{
OnRichPresenceUpdateCallbacks.Remove(steamId);
}
}
}
/// <summary>
/// Returns only friends
/// </summary>
@@ -392,5 +422,14 @@ namespace Facepunch.Steamworks
LoadAvatarForSteamId( data.SteamID );
}
private void OnRichPresenceUpdate( FriendRichPresenceUpdate_t data )
{
if (OnRichPresenceUpdateCallbacks == null) { return; }
if (OnRichPresenceUpdateCallbacks.ContainsKey(data.SteamIDFriend))
{
OnRichPresenceUpdateCallbacks[data.SteamIDFriend]?.Invoke();
}
}
}
}