internal static void InstallEvents()
 {
     UserStatsReceived_t.Install((UserStatsReceived_t x) => {
         if (x.SteamIDUser == SteamClient.SteamId)
         {
             SteamUserStats.StatsRecieved = true;
         }
         Action <SteamId, Result> onUserStatsReceived = SteamUserStats.OnUserStatsReceived;
         if (onUserStatsReceived != null)
         {
             onUserStatsReceived(x.SteamIDUser, x.Result);
         }
         else
         {
         }
     }, false);
     UserStatsStored_t.Install((UserStatsStored_t x) => {
         Action <Result> onUserStatsStored = SteamUserStats.OnUserStatsStored;
         if (onUserStatsStored != null)
         {
             onUserStatsStored(x.Result);
         }
         else
         {
         }
     }, false);
     UserAchievementStored_t.Install((UserAchievementStored_t x) => {
         Action <Achievement, int, int> onAchievementProgress = SteamUserStats.OnAchievementProgress;
         if (onAchievementProgress != null)
         {
             onAchievementProgress(new Achievement(x.AchievementName), x.CurProgress, x.MaxProgress);
         }
         else
         {
         }
     }, false);
     UserStatsUnloaded_t.Install((UserStatsUnloaded_t x) => {
         Action <SteamId> onUserStatsUnloaded = SteamUserStats.OnUserStatsUnloaded;
         if (onUserStatsUnloaded != null)
         {
             onUserStatsUnloaded(x.SteamIDUser);
         }
         else
         {
         }
     }, false);
     UserAchievementIconFetched_t.Install((UserAchievementIconFetched_t x) => {
         Action <string, int> onAchievementIconFetched = SteamUserStats.OnAchievementIconFetched;
         if (onAchievementIconFetched != null)
         {
             onAchievementIconFetched(x.AchievementName, x.IconHandle);
         }
         else
         {
         }
     }, false);
 }
        internal static void InstallEvents()
        {
            UserStatsReceived_t.Install(x =>
            {
                if (x.SteamIDUser == SteamClient.SteamId)
                {
                    StatsRecieved = true;
                }

                OnUserStatsReceived?.Invoke(x.SteamIDUser, x.Result);
            });

            UserStatsStored_t.Install(x => OnUserStatsStored?.Invoke(x.Result));
            UserAchievementStored_t.Install(x => OnAchievementProgress?.Invoke(x.AchievementName, (int)x.CurProgress, (int)x.MaxProgress));
            UserStatsUnloaded_t.Install(x => OnUserStatsUnloaded?.Invoke(x.SteamIDUser));
        }
	private void OnUserAchievementStored(UserAchievementStored_t pCallback) {
		Debug.Log("[" + UserAchievementStored_t.k_iCallback + " - UserAchievementStored] - " + pCallback.m_nGameID + " -- " + pCallback.m_bGroupAchievement + " -- " + pCallback.m_rgchAchievementName + " -- " + pCallback.m_nCurProgress + " -- " + pCallback.m_nMaxProgress);
	}
	//-----------------------------------------------------------------------------
	// Purpose: An achievement was stored
	//-----------------------------------------------------------------------------
	private void OnAchievementStored(UserAchievementStored_t pCallback) {
		// We may get callbacks for other games' stats arriving, ignore them
		if ((ulong)m_GameID == pCallback.m_nGameID) {
			if (0 == pCallback.m_nMaxProgress) {
				Debug.Log("Achievement '" + pCallback.m_rgchAchievementName + "' unlocked!");
			}
			else {
				Debug.Log("Achievement '" + pCallback.m_rgchAchievementName + "' progress callback, (" + pCallback.m_nCurProgress + "," + pCallback.m_nMaxProgress + ")");
			}
		}
	}