Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XnbReader.cs
Go to the documentation of this file.
1using System;
2using System.IO;
5using Microsoft.Xna.Framework.Content;
6
8
10{
11 public static class LoadOnMainThread<T>
12 {
13 public static bool Value;
14 }
15
17 {
18 private Stream _stream;
19
21 : base(serviceProvider)
22 {
23 }
24
25 public void SetStream(Stream stream)
26 {
28 }
29
30 public T Load<T>()
31 {
32 return ((ContentManager)this).ReadAsset<T>("XnaAsset", (Action<IDisposable>)null);
33 }
34
35 protected override Stream OpenStream(string assetName)
36 {
37 return _stream;
38 }
39 }
40
42
43 private bool _disposedValue;
44
49
50 public async ValueTask<T> FromStream<T>(Stream stream, MainThreadCreationContext mainThreadCtx) where T : class
51 {
53 if (LoadOnMainThread<T>.Value)
54 {
55 await mainThreadCtx;
56 }
58 return value.Load<T>();
59 }
60
61 protected virtual void Dispose(bool disposing)
62 {
63 if (!_disposedValue)
64 {
65 if (disposing)
66 {
67 _contentLoader.Dispose();
68 }
69 _disposedValue = true;
70 }
71 }
72
73 public void Dispose()
74 {
75 Dispose(disposing: true);
76 }
77}
InternalContentManager(IServiceProvider serviceProvider)
Definition XnbReader.cs:20
override Stream OpenStream(string assetName)
Definition XnbReader.cs:35
XnbReader(IServiceProvider services)
Definition XnbReader.cs:45
readonly ThreadLocal< InternalContentManager > _contentLoader
Definition XnbReader.cs:41
async ValueTask< T > FromStream< T >(Stream stream, MainThreadCreationContext mainThreadCtx)
Definition XnbReader.cs:50
virtual void Dispose(bool disposing)
Definition XnbReader.cs:61