Terraria 1.4.0.5 Source Code
This commit is contained in:
commit
05205f009e
1059 changed files with 563450 additions and 0 deletions
173
Social/WeGame/AchievementsSocialModule.cs
Normal file
173
Social/WeGame/AchievementsSocialModule.cs
Normal file
|
@ -0,0 +1,173 @@
|
|||
// Decompiled with JetBrains decompiler
|
||||
// Type: Terraria.Social.WeGame.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 rail;
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace Terraria.Social.WeGame
|
||||
{
|
||||
public class AchievementsSocialModule : Terraria.Social.Base.AchievementsSocialModule
|
||||
{
|
||||
private const string FILE_NAME = "/achievements-wegame.dat";
|
||||
private bool _areStatsReceived;
|
||||
private bool _areAchievementReceived;
|
||||
private RailCallBackHelper _callbackHelper = new RailCallBackHelper();
|
||||
private IRailPlayerAchievement _playerAchievement;
|
||||
private IRailPlayerStats _playerStats;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
// ISSUE: method pointer
|
||||
this._callbackHelper.RegisterCallback((RAILEventID) 2001, new RailEventCallBackHandler((object) this, __methodptr(RailEventCallBack)));
|
||||
// ISSUE: method pointer
|
||||
this._callbackHelper.RegisterCallback((RAILEventID) 2101, new RailEventCallBackHandler((object) this, __methodptr(RailEventCallBack)));
|
||||
IRailPlayerStats myPlayerStats = this.GetMyPlayerStats();
|
||||
IRailPlayerAchievement playerAchievement = this.GetMyPlayerAchievement();
|
||||
if (myPlayerStats == null || playerAchievement == null)
|
||||
return;
|
||||
myPlayerStats.AsyncRequestStats("");
|
||||
playerAchievement.AsyncRequestAchievement("");
|
||||
while (!this._areStatsReceived && !this._areAchievementReceived)
|
||||
{
|
||||
CoreSocialModule.RailEventTick();
|
||||
Thread.Sleep(10);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Shutdown() => this.StoreStats();
|
||||
|
||||
private IRailPlayerStats GetMyPlayerStats()
|
||||
{
|
||||
if (this._playerStats == null)
|
||||
{
|
||||
IRailStatisticHelper irailStatisticHelper = rail_api.RailFactory().RailStatisticHelper();
|
||||
if (irailStatisticHelper != null)
|
||||
{
|
||||
RailID railId = new RailID();
|
||||
((RailComparableID) railId).id_ = (__Null) 0L;
|
||||
this._playerStats = irailStatisticHelper.CreatePlayerStats(railId);
|
||||
}
|
||||
}
|
||||
return this._playerStats;
|
||||
}
|
||||
|
||||
private IRailPlayerAchievement GetMyPlayerAchievement()
|
||||
{
|
||||
if (this._playerAchievement == null)
|
||||
{
|
||||
IRailAchievementHelper achievementHelper = rail_api.RailFactory().RailAchievementHelper();
|
||||
if (achievementHelper != null)
|
||||
{
|
||||
RailID railId = new RailID();
|
||||
((RailComparableID) railId).id_ = (__Null) 0L;
|
||||
this._playerAchievement = achievementHelper.CreatePlayerAchievement(railId);
|
||||
}
|
||||
}
|
||||
return this._playerAchievement;
|
||||
}
|
||||
|
||||
public void RailEventCallBack(RAILEventID eventId, EventBase data)
|
||||
{
|
||||
if (eventId != 2001)
|
||||
{
|
||||
if (eventId != 2101)
|
||||
return;
|
||||
this._areAchievementReceived = true;
|
||||
}
|
||||
else
|
||||
this._areStatsReceived = true;
|
||||
}
|
||||
|
||||
public override bool IsAchievementCompleted(string name)
|
||||
{
|
||||
bool flag = false;
|
||||
RailResult railResult = (RailResult) 1;
|
||||
IRailPlayerAchievement playerAchievement = this.GetMyPlayerAchievement();
|
||||
if (playerAchievement != null)
|
||||
railResult = playerAchievement.HasAchieved(name, ref flag);
|
||||
return flag && railResult == 0;
|
||||
}
|
||||
|
||||
public override byte[] GetEncryptionKey()
|
||||
{
|
||||
RailID railId = rail_api.RailFactory().RailPlayer().GetRailID();
|
||||
byte[] numArray = new byte[16];
|
||||
byte[] bytes = BitConverter.GetBytes((ulong) ((RailComparableID) railId).id_);
|
||||
Array.Copy((Array) bytes, (Array) numArray, 8);
|
||||
Array.Copy((Array) bytes, 0, (Array) numArray, 8, 8);
|
||||
return numArray;
|
||||
}
|
||||
|
||||
public override string GetSavePath() => "/achievements-wegame.dat";
|
||||
|
||||
private int GetIntStat(string name)
|
||||
{
|
||||
int num = 0;
|
||||
this.GetMyPlayerStats()?.GetStatValue(name, ref num);
|
||||
return num;
|
||||
}
|
||||
|
||||
private float GetFloatStat(string name)
|
||||
{
|
||||
double num = 0.0;
|
||||
this.GetMyPlayerStats()?.GetStatValue(name, ref num);
|
||||
return (float) num;
|
||||
}
|
||||
|
||||
private bool SetFloatStat(string name, float value)
|
||||
{
|
||||
IRailPlayerStats myPlayerStats = this.GetMyPlayerStats();
|
||||
RailResult railResult = (RailResult) 1;
|
||||
if (myPlayerStats != null)
|
||||
railResult = myPlayerStats.SetStatValue(name, (double) value);
|
||||
return railResult == 0;
|
||||
}
|
||||
|
||||
public override void UpdateIntStat(string name, int value)
|
||||
{
|
||||
IRailPlayerStats myPlayerStats = this.GetMyPlayerStats();
|
||||
if (myPlayerStats == null)
|
||||
return;
|
||||
int num = 0;
|
||||
if (myPlayerStats.GetStatValue(name, ref num) != null || num >= value)
|
||||
return;
|
||||
myPlayerStats.SetStatValue(name, value);
|
||||
}
|
||||
|
||||
private bool SetIntStat(string name, int value)
|
||||
{
|
||||
IRailPlayerStats myPlayerStats = this.GetMyPlayerStats();
|
||||
RailResult railResult = (RailResult) 1;
|
||||
if (myPlayerStats != null)
|
||||
railResult = myPlayerStats.SetStatValue(name, value);
|
||||
return railResult == 0;
|
||||
}
|
||||
|
||||
public override void UpdateFloatStat(string name, float value)
|
||||
{
|
||||
IRailPlayerStats myPlayerStats = this.GetMyPlayerStats();
|
||||
if (myPlayerStats == null)
|
||||
return;
|
||||
double num = 0.0;
|
||||
if (myPlayerStats.GetStatValue(name, ref num) != null || num >= (double) value)
|
||||
return;
|
||||
myPlayerStats.SetStatValue(name, (double) value);
|
||||
}
|
||||
|
||||
public override void StoreStats()
|
||||
{
|
||||
this.SaveStats();
|
||||
this.SaveAchievement();
|
||||
}
|
||||
|
||||
private void SaveStats() => this.GetMyPlayerStats()?.AsyncStoreStats("");
|
||||
|
||||
private void SaveAchievement() => this.GetMyPlayerAchievement()?.AsyncStoreAchievement("");
|
||||
|
||||
public override void CompleteAchievement(string name) => this.GetMyPlayerAchievement()?.MakeAchievement(name);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue