Terraria 1.4.0.5 Source Code

This commit is contained in:
MikeyIsBaeYT 2021-10-26 12:45:26 -04:00
commit 05205f009e
1059 changed files with 563450 additions and 0 deletions

View file

@ -0,0 +1,108 @@
// Decompiled with JetBrains decompiler
// Type: Terraria.Social.Steam.AchievementsSocialModule
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
using Steamworks;
using System;
using System.Collections.Generic;
using System.Threading;
namespace Terraria.Social.Steam
{
public class AchievementsSocialModule : Terraria.Social.Base.AchievementsSocialModule
{
private const string FILE_NAME = "/achievements-steam.dat";
private Callback<UserStatsReceived_t> _userStatsReceived;
private bool _areStatsReceived;
private Dictionary<string, int> _intStatCache = new Dictionary<string, int>();
private Dictionary<string, float> _floatStatCache = new Dictionary<string, float>();
public override void Initialize()
{
// ISSUE: method pointer
this._userStatsReceived = Callback<UserStatsReceived_t>.Create(new Callback<UserStatsReceived_t>.DispatchDelegate((object) this, __methodptr(OnUserStatsReceived)));
SteamUserStats.RequestCurrentStats();
while (!this._areStatsReceived)
{
CoreSocialModule.Pulse();
Thread.Sleep(10);
}
}
public override void Shutdown() => this.StoreStats();
public override bool IsAchievementCompleted(string name)
{
bool flag;
return SteamUserStats.GetAchievement(name, ref flag) & flag;
}
public override byte[] GetEncryptionKey()
{
byte[] numArray = new byte[16];
byte[] bytes = BitConverter.GetBytes((ulong) SteamUser.GetSteamID().m_SteamID);
Array.Copy((Array) bytes, (Array) numArray, 8);
Array.Copy((Array) bytes, 0, (Array) numArray, 8, 8);
return numArray;
}
public override string GetSavePath() => "/achievements-steam.dat";
private int GetIntStat(string name)
{
int num;
if (this._intStatCache.TryGetValue(name, out num) || !SteamUserStats.GetStat(name, ref num))
return num;
this._intStatCache.Add(name, num);
return num;
}
private float GetFloatStat(string name)
{
float num;
if (this._floatStatCache.TryGetValue(name, out num) || !SteamUserStats.GetStat(name, ref num))
return num;
this._floatStatCache.Add(name, num);
return num;
}
private bool SetFloatStat(string name, float value)
{
this._floatStatCache[name] = value;
return SteamUserStats.SetStat(name, value);
}
public override void UpdateIntStat(string name, int value)
{
if (this.GetIntStat(name) >= value)
return;
this.SetIntStat(name, value);
}
private bool SetIntStat(string name, int value)
{
this._intStatCache[name] = value;
return SteamUserStats.SetStat(name, value);
}
public override void UpdateFloatStat(string name, float value)
{
if ((double) this.GetFloatStat(name) >= (double) value)
return;
this.SetFloatStat(name, value);
}
public override void StoreStats() => SteamUserStats.StoreStats();
public override void CompleteAchievement(string name) => SteamUserStats.SetAchievement(name);
private void OnUserStatsReceived(UserStatsReceived_t results)
{
if (results.m_nGameID != 105600L || !CSteamID.op_Equality((CSteamID) results.m_steamIDUser, SteamUser.GetSteamID()))
return;
this._areStatsReceived = true;
}
}
}