From 5fdbf02b29efad5ee1e849e6fe775e9aa9cc6c31 Mon Sep 17 00:00:00 2001 From: Garry Newman Date: Fri, 3 May 2019 14:11:05 +0100 Subject: [PATCH] Added SteamClient.OnCallbackException --- Facepunch.Steamworks.Test/AppTest.cs | 7 +++++++ Facepunch.Steamworks/SteamClient.cs | 20 +++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Facepunch.Steamworks.Test/AppTest.cs b/Facepunch.Steamworks.Test/AppTest.cs index d765728..447a1e5 100644 --- a/Facepunch.Steamworks.Test/AppTest.cs +++ b/Facepunch.Steamworks.Test/AppTest.cs @@ -14,6 +14,13 @@ namespace Steamworks [AssemblyInitialize] public static void AssemblyInit( TestContext context ) { + Steamworks.SteamClient.OnCallbackException = ( e ) => + { + Console.Error.WriteLine( e.Message ); + Console.Error.WriteLine( e.StackTrace ); + Assert.Fail( e.Message ); + }; + // // Init Client // diff --git a/Facepunch.Steamworks/SteamClient.cs b/Facepunch.Steamworks/SteamClient.cs index 206435f..4ccd798 100644 --- a/Facepunch.Steamworks/SteamClient.cs +++ b/Facepunch.Steamworks/SteamClient.cs @@ -48,6 +48,8 @@ namespace Steamworks RunCallbacksAsync(); } + public static Action OnCallbackException; + public static bool IsValid => initialized; internal static async void RunCallbacksAsync() @@ -55,14 +57,7 @@ namespace Steamworks while ( IsValid ) { await Task.Delay( 16 ); - try - { - SteamAPI.RunCallbacks(); - } - catch ( System.Exception ) - { - // TODO - error outputs - } + RunCallbacks(); } } @@ -98,7 +93,14 @@ namespace Steamworks public static void RunCallbacks() { - SteamAPI.RunCallbacks(); + try + { + SteamAPI.RunCallbacks(); + } + catch ( System.Exception e ) + { + OnCallbackException?.Invoke( e ); + } } internal static void UnregisterCallback( IntPtr intPtr )