Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FavoritesFile.cs
Go to the documentation of this file.
1
using
System
;
2
using
System.Collections.Generic
;
3
using
System.Text
;
4
using
Newtonsoft.Json;
5
using
Terraria.UI
;
6
using
Terraria.Utilities
;
7
8
namespace
Terraria.IO
;
9
10
public
class
FavoritesFile
11
{
12
public
readonly
string
Path
;
13
14
public
readonly
bool
IsCloudSave
;
15
16
private
Dictionary<string, Dictionary<string, bool>
>
_data
=
new
Dictionary<string, Dictionary<string, bool>
>();
17
18
private
UTF8Encoding
_ourEncoder
=
new
UTF8Encoding
(
encoderShouldEmitUTF8Identifier
:
true
,
throwOnInvalidBytes
:
true
);
19
20
public
FavoritesFile
(
string
path
,
bool
isCloud
)
21
{
22
Path
=
path
;
23
IsCloudSave
=
isCloud
;
24
}
25
26
public
void
SaveFavorite
(
FileData
fileData
)
27
{
28
if
(!
_data
.
ContainsKey
(
fileData
.Type))
29
{
30
_data
.
Add
(
fileData
.Type,
new
Dictionary<string, bool>
());
31
}
32
_data
[
fileData
.Type][
fileData
.GetFileName()] =
fileData
.IsFavorite;
33
Save
();
34
}
35
36
public
void
ClearEntry
(
FileData
fileData
)
37
{
38
if
(
_data
.
ContainsKey
(
fileData
.Type))
39
{
40
_data
[
fileData
.Type].
Remove
(
fileData
.GetFileName());
41
Save
();
42
}
43
}
44
45
public
bool
IsFavorite
(
FileData
fileData
)
46
{
47
if
(!
_data
.
ContainsKey
(
fileData
.Type))
48
{
49
return
false
;
50
}
51
string
fileName
=
fileData
.GetFileName();
52
if
(
_data
[
fileData
.Type].
TryGetValue
(
fileName
,
out
var
value
))
53
{
54
return
value
;
55
}
56
return
false
;
57
}
58
59
public
void
Save
()
60
{
61
try
62
{
63
string
s
=
JsonConvert
.SerializeObject((
object
)
_data
, (Formatting)1);
64
byte
[]
bytes
=
_ourEncoder
.
GetBytes
(
s
);
65
FileUtilities
.
WriteAllBytes
(
Path
,
bytes
,
IsCloudSave
);
66
}
67
catch
(
Exception
exception
)
68
{
69
FancyErrorPrinter
.
ShowFileSavingFailError
(
exception
,
Path
);
70
throw
;
71
}
72
}
73
74
public
void
Load
()
75
{
76
if
(!
FileUtilities
.
Exists
(
Path
,
IsCloudSave
))
77
{
78
_data
.
Clear
();
79
return
;
80
}
81
try
82
{
83
byte
[]
bytes
=
FileUtilities
.
ReadAllBytes
(
Path
,
IsCloudSave
);
84
string
@
string
;
85
try
86
{
87
@
string
=
_ourEncoder
.
GetString
(
bytes
);
88
}
89
catch
90
{
91
@
string
=
Encoding
.
ASCII
.GetString(
bytes
);
92
}
93
_data
=
JsonConvert
.DeserializeObject<
Dictionary<string, Dictionary<string, bool>
>>(@
string
);
94
if
(
_data
==
null
)
95
{
96
_data
=
new
Dictionary<string, Dictionary<string, bool>
>();
97
}
98
}
99
catch
(
Exception
)
100
{
101
Console
.
WriteLine
(
"Unable to load favorites.json file ({0} : {1})"
,
Path
,
IsCloudSave
?
"Cloud Save"
:
"Local Save"
);
102
}
103
}
104
}
System.Collections.Generic.Dictionary.TryGetValue
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
Definition
Dictionary.cs:1419
System.Collections.Generic.Dictionary.ContainsKey
bool ContainsKey(TKey key)
Definition
Dictionary.cs:917
System.Collections.Generic.Dictionary.Remove
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
Definition
Dictionary.cs:893
System.Collections.Generic.Dictionary.Clear
void Clear()
Definition
Dictionary.cs:904
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Console.WriteLine
static void WriteLine()
Definition
Console.cs:733
System.Console
Definition
Console.cs:11
System.Exception
Definition
Exception.cs:15
System.Text.Encoding.ASCII
static Encoding ASCII
Definition
Encoding.cs:511
System.Text.Encoding
Definition
Encoding.cs:15
System.Text.UTF8Encoding.GetString
unsafe override string GetString(byte[] bytes, int index, int count)
Definition
UTF8Encoding.cs:453
System.Text.UTF8Encoding.GetBytes
unsafe override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex)
Definition
UTF8Encoding.cs:224
System.Text.UTF8Encoding
Definition
UTF8Encoding.cs:10
Terraria.IO.FavoritesFile.Save
void Save()
Definition
FavoritesFile.cs:59
Terraria.IO.FavoritesFile.Load
void Load()
Definition
FavoritesFile.cs:74
Terraria.IO.FavoritesFile._data
Dictionary< string, Dictionary< string, bool > > _data
Definition
FavoritesFile.cs:16
Terraria.IO.FavoritesFile.FavoritesFile
FavoritesFile(string path, bool isCloud)
Definition
FavoritesFile.cs:20
Terraria.IO.FavoritesFile.SaveFavorite
void SaveFavorite(FileData fileData)
Definition
FavoritesFile.cs:26
Terraria.IO.FavoritesFile._ourEncoder
UTF8Encoding _ourEncoder
Definition
FavoritesFile.cs:18
Terraria.IO.FavoritesFile.IsFavorite
bool IsFavorite(FileData fileData)
Definition
FavoritesFile.cs:45
Terraria.IO.FavoritesFile.ClearEntry
void ClearEntry(FileData fileData)
Definition
FavoritesFile.cs:36
Terraria.IO.FavoritesFile.Path
readonly string Path
Definition
FavoritesFile.cs:12
Terraria.IO.FavoritesFile.IsCloudSave
readonly bool IsCloudSave
Definition
FavoritesFile.cs:14
Terraria.IO.FavoritesFile
Definition
FavoritesFile.cs:11
Terraria.IO.FileData
Definition
FileData.cs:6
Terraria.UI.FancyErrorPrinter.ShowFileSavingFailError
static void ShowFileSavingFailError(Exception exception, string filePath)
Definition
FancyErrorPrinter.cs:47
Terraria.UI.FancyErrorPrinter
Definition
FancyErrorPrinter.cs:12
Terraria.Utilities.FileUtilities.Exists
static bool Exists(string path, bool cloud)
Definition
FileUtilities.cs:14
Terraria.Utilities.FileUtilities.ReadAllBytes
static byte[] ReadAllBytes(string path, bool cloud)
Definition
FileUtilities.cs:101
Terraria.Utilities.FileUtilities.WriteAllBytes
static void WriteAllBytes(string path, byte[] data, bool cloud)
Definition
FileUtilities.cs:110
Terraria.Utilities.FileUtilities
Definition
FileUtilities.cs:11
string
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.s
@ s
System.ExceptionArgument.value
@ value
System.ExceptionArgument.exception
@ exception
System.ExceptionArgument.bytes
@ bytes
System
Definition
BlockingCollection.cs:8
Terraria.IO
Definition
FavoritesFile.cs:8
Terraria.UI
Definition
ChatLine.cs:3
Terraria.Utilities
Definition
ExtensionFilter.cs:1
source
Terraria.IO
FavoritesFile.cs
Generated by
1.10.0