Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TileMaterials.cs
Go to the documentation of this file.
2using System.IO;
4using Newtonsoft.Json;
5using Terraria.ID;
6
8
9public static class TileMaterials
10{
12
13 private static readonly TileMaterial[] MaterialsByTileId;
14
16 {
18 _materialsByName = DeserializeEmbeddedResource<Dictionary<string, TileMaterial>>("Terraria.GameContent.Metadata.MaterialData.Materials.json");
20 for (int i = 0; i < MaterialsByTileId.Length; i++)
21 {
23 }
24 foreach (KeyValuePair<string, string> item in DeserializeEmbeddedResource<Dictionary<string, string>>("Terraria.GameContent.Metadata.MaterialData.Tiles.json"))
25 {
26 string key = item.Key;
27 string value = item.Value;
28 SetForTileId((ushort)TileID.Search.GetId(key), _materialsByName[value]);
29 }
30 }
31
32 private static T DeserializeEmbeddedResource<T>(string path)
33 {
34 using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(path);
35 using StreamReader streamReader = new StreamReader(stream);
36 return JsonConvert.DeserializeObject<T>(streamReader.ReadToEnd());
37 }
38
39 public static void SetForTileId(ushort tileId, TileMaterial material)
40 {
41 MaterialsByTileId[tileId] = material;
42 }
43
44 public static TileMaterial GetByTileId(ushort tileId)
45 {
47 }
48}
static RuntimeAssembly GetExecutingAssembly(ref StackCrawlMark stackMark)
Definition Assembly.cs:198
static TileMaterial GetByTileId(ushort tileId)
static Dictionary< string, TileMaterial > _materialsByName
static void SetForTileId(ushort tileId, TileMaterial material)
static T DeserializeEmbeddedResource< T >(string path)
static readonly TileMaterial[] MaterialsByTileId
static readonly ushort Count
Definition TileID.cs:1698
static readonly IdDictionary Search
Definition TileID.cs:1700