8using Newtonsoft.Json.Bson;
9using Newtonsoft.Json.Linq;
36 private static object _ioLock =
new object();
52 _savePath = Main.SavePath + Path.DirectorySeparatorChar +
"achievements.dat";
157 if (achievement.Value.IsCompleted && !
SocialAPI.
Achievements.IsAchievementCompleted(achievement.Key))
160 achievement.Value.ClearProgress();
179 achievement.Value.ClearProgress();
187 if (this.OnAchievementCompleted !=
null)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool ContainsKey(TKey key)
void Add(TKey key, TValue value)
Dictionary< string, JObject > Conditions
void Load(string path, bool cloud)
void RegisterIconIndex(string achievementName, int iconIndex)
Dictionary< string, int > _achievementIconIndexes
Achievement GetAchievement(string achievementName)
int GetIconIndex(string achievementName)
Dictionary< string, Achievement > _achievements
readonly JsonSerializerSettings _serializerSettings
List< Achievement > CreateAchievementsList()
Achievement.AchievementCompleted OnAchievementCompleted
AchievementCondition GetCondition(string achievementName, string conditionName)
void AchievementCompleted(Achievement achievement)
T GetCondition< T >(string achievementName, string conditionName)
void Register(Achievement achievement)
void Save(string path, bool cloud)
void RegisterAchievementCategory(string achievementName, AchievementCategory category)
static Terraria.Social.Base.AchievementsSocialModule Achievements
static void ShowFileSavingFailError(Exception exception, string filePath)
static bool Exists(string path, bool cloud)
static void ProtectedInvoke(Action action)
static byte[] ReadAllBytes(string path, bool cloud)
static void Delete(string path, bool cloud, bool forceDeleteFile=false)
static void WriteAllBytes(string path, byte[] data, bool cloud)