Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Save()

bool Terraria.IO.Preferences.Save ( bool canCreateFile = true)
inline

Definition at line 112 of file Preferences.cs.

113 {
114 //IL_00c5: Unknown result type (might be due to invalid IL or missing references)
115 //IL_00cc: Expected O, but got Unknown
116 lock (_lock)
117 {
118 try
119 {
120 if (this.OnSave != null)
121 {
122 this.OnSave(this);
123 }
124 if (!canCreateFile && !File.Exists(_path))
125 {
126 return false;
127 }
128 Directory.GetParent(_path).Create();
129 if (File.Exists(_path))
130 {
132 }
133 if (!UseBson)
134 {
135 string text = JsonConvert.SerializeObject((object)_data, _serializerSettings);
136 if (this.OnProcessText != null)
137 {
138 this.OnProcessText(ref text);
139 }
142 }
143 else
144 {
147 try
148 {
150 JsonSerializer.Create(_serializerSettings).Serialize((JsonWriter)(object)val, (object)_data);
151 }
152 finally
153 {
154 ((IDisposable)val)?.Dispose();
155 }
156 }
157 }
158 catch (Exception ex)
159 {
160 Console.WriteLine(Language.GetTextValue("Error.UnableToWritePreferences", _path));
161 Console.WriteLine(ex.ToString());
162 return false;
163 }
164 return true;
165 }
166 }
static void WriteLine()
Definition Console.cs:733
static ? DirectoryInfo GetParent(string path)
Definition Directory.cs:9
static void SetAttributes(string path, FileAttributes fileAttributes)
Definition File.cs:230
static FileStream Create(string path)
Definition File.cs:73
static bool Exists([NotNullWhen(true)] string? path)
Definition File.cs:97
static void WriteAllText(string path, string? contents)
Definition File.cs:282
Dictionary< string, object > _data
readonly object _lock
readonly string _path
Action< Preferences > OnSave
readonly JsonSerializerSettings _serializerSettings
readonly bool UseBson
TextProcessAction OnProcessText
static string GetTextValue(string key)
Definition Language.cs:15

References Terraria.IO.Preferences._data, Terraria.IO.Preferences._lock, Terraria.IO.Preferences._path, Terraria.IO.Preferences._serializerSettings, System.IO.File.Create(), System.IO.File.Exists(), System.IO.Directory.GetParent(), Terraria.Localization.Language.GetTextValue(), Terraria.IO.Preferences.OnProcessText, Terraria.IO.Preferences.OnSave, System.IO.File.SetAttributes(), System.text, Terraria.IO.Preferences.UseBson, System.IO.File.WriteAllText(), and System.Console.WriteLine().

Referenced by Terraria.IO.Preferences.Put().