Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AchievementsSocialModule.cs
Go to the documentation of this file.
1using System;
4using Steamworks;
6
8
10{
11 private const string FILE_NAME = "/achievements-steam.dat";
12
14
15 private bool _areStatsReceived;
16
18
20
21 public override void Initialize()
22 {
24 SteamUserStats.RequestCurrentStats();
25 while (!_areStatsReceived)
26 {
28 Thread.Sleep(10);
29 }
30 }
31
32 public override void Shutdown()
33 {
34 _userStatsReceived.Unregister();
35 StoreStats();
36 }
37
38 public override bool IsAchievementCompleted(string name)
39 {
40 bool flag = default(bool);
41 return SteamUserStats.GetAchievement(name, ref flag) && flag;
42 }
43
44 public override byte[] GetEncryptionKey()
45 {
46 //IL_0008: Unknown result type (might be due to invalid IL or missing references)
47 byte[] array = new byte[16];
48 byte[] bytes = BitConverter.GetBytes(SteamUser.GetSteamID().m_SteamID);
49 Array.Copy(bytes, array, 8);
50 Array.Copy(bytes, 0, array, 8, 8);
51 return array;
52 }
53
54 public override string GetSavePath()
55 {
56 return "/achievements-steam.dat";
57 }
58
59 private int GetIntStat(string name)
60 {
62 {
63 return value;
64 }
65 if (SteamUserStats.GetStat(name, ref value))
66 {
67 _intStatCache.Add(name, value);
68 }
69 return value;
70 }
71
72 private float GetFloatStat(string name)
73 {
75 {
76 return value;
77 }
78 if (SteamUserStats.GetStat(name, ref value))
79 {
81 }
82 return value;
83 }
84
85 private bool SetFloatStat(string name, float value)
86 {
87 _floatStatCache[name] = value;
88 return SteamUserStats.SetStat(name, value);
89 }
90
91 public override void UpdateIntStat(string name, int value)
92 {
93 if (GetIntStat(name) < value)
94 {
95 SetIntStat(name, value);
96 }
97 }
98
99 private bool SetIntStat(string name, int value)
100 {
101 _intStatCache[name] = value;
102 return SteamUserStats.SetStat(name, value);
103 }
104
105 public override void UpdateFloatStat(string name, float value)
106 {
107 if (GetFloatStat(name) < value)
108 {
109 SetFloatStat(name, value);
110 }
111 }
112
113 public override void StoreStats()
114 {
115 SteamUserStats.StoreStats();
116 }
117
118 public override void CompleteAchievement(string name)
119 {
120 SteamUserStats.SetAchievement(name);
121 }
122
124 {
125 //IL_0000: Unknown result type (might be due to invalid IL or missing references)
126 //IL_000e: Unknown result type (might be due to invalid IL or missing references)
127 //IL_000f: Unknown result type (might be due to invalid IL or missing references)
128 //IL_0014: Unknown result type (might be due to invalid IL or missing references)
129 if (results.m_nGameID == 105600 && results.m_steamIDUser == SteamUser.GetSteamID())
130 {
131 _areStatsReceived = true;
132 }
133 }
134}
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624
static byte[] GetBytes(bool value)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static void Sleep(int millisecondsTimeout)
Definition Thread.cs:658
override void UpdateIntStat(string name, int value)
override void UpdateFloatStat(string name, float value)