Browse Source

Updated Steam achievements events

James Peret 2 years ago
parent
commit
694c4c6b48
2 changed files with 12 additions and 1 deletions
  1. 11 0
      Runtime/SteamworksAchievements.cs
  2. 1 1
      Runtime/SteamworksManager.cs

+ 11 - 0
Runtime/SteamworksAchievements.cs

@@ -22,6 +22,7 @@ namespace KairoEngine.SteamIntegration
         {
             if(listenForUnlockEvents) GenericEvents.StartListening(listenEventName, UnlockAchievement);
             if(broadcastEventOnUnlock) Steamworks.SteamUserStats.OnAchievementProgress += AchievementChanged;
+            Timer.ExecuteRealTimeNotDisposable(1000, () => BroadcastAchievements() );
         }
 
         public void Stop()
@@ -70,5 +71,15 @@ namespace KairoEngine.SteamIntegration
                 Debug.Log($"{achievement.Name} ({(achievement.State ? "UNLOCKED" : "LOCKED")} - {achievement.Identifier})");
             }
         }
+
+        public void BroadcastAchievements()
+        {
+            if(!SteamworksManager.HasInitialized()) return;
+            var achievements = Steamworks.SteamUserStats.Achievements;
+            foreach (var achievement in achievements)
+            {
+                GenericEvents.Trigger("AchievementOverrideEvent", achievement.Identifier, achievement.State);
+            }
+        }
     }
 }

+ 1 - 1
Runtime/SteamworksManager.cs

@@ -48,13 +48,13 @@ namespace KairoEngine.SteamIntegration
             try
             {
                 Steamworks.SteamClient.Init( appId, true );
+                RefreshStats();
                 hasInitialized = true;
                 playerName = Steamworks.SteamClient.Name;
                 var playerSteamId = Steamworks.SteamClient.SteamId;
                 if(showDebug)  Debug.Log($"{playerName} ({playerSteamId})");
                 if(useStats) stats.Start(steamStatsLibray);
                 if(useAchievements) achievements.Start();
-                RefreshStats();
                 //PrintFriendsList();
             }
             catch ( System.Exception e )