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

◆ Generate()

void System.Resources.ResourceWriter.Generate ( )
inline

Implements System.Resources.IResourceWriter.

Definition at line 228 of file ResourceWriter.cs.

229 {
230 if (_resourceList == null)
231 {
233 }
236 binaryWriter.Write(ResourceManager.MagicNumber);
237 binaryWriter.Write(ResourceManager.HeaderVersionNumber);
242 binaryWriter2.Flush();
243 binaryWriter.Write((int)memoryStream.Length);
244 memoryStream.Seek(0L, SeekOrigin.Begin);
245 memoryStream.CopyTo(binaryWriter.BaseStream, (int)memoryStream.Length);
246 binaryWriter.Write(2);
247 int num = _resourceList.Count;
248 if (_preserializedData != null)
249 {
251 }
252 binaryWriter.Write(num);
253 int[] array = new int[num];
254 int[] array2 = new int[num];
255 int num2 = 0;
258 Stream stream = new MemoryStream();
259 using (stream)
260 {
262 if (_preserializedData != null)
263 {
265 {
267 }
268 }
270 {
272 array2[num2++] = (int)binaryWriter3.Seek(0, SeekOrigin.Current);
273 binaryWriter3.Write(resource.Key);
274 binaryWriter3.Write((int)binaryWriter4.Seek(0, SeekOrigin.Current));
275 object value = resource.Value;
277 binaryWriter4.Write7BitEncodedInt((int)resourceTypeCode);
278 if (value is PrecannedResource precannedResource)
279 {
281 }
282 else
283 {
285 }
286 }
287 binaryWriter.Write(list.Count);
288 foreach (string item in list)
289 {
290 binaryWriter.Write(item);
291 }
292 Array.Sort(array, array2);
293 binaryWriter.Flush();
294 int num3 = (int)binaryWriter.BaseStream.Position & 7;
295 if (num3 > 0)
296 {
297 for (int i = 0; i < 8 - num3; i++)
298 {
299 binaryWriter.Write("PAD"[i % 3]);
300 }
301 }
302 int[] array3 = array;
303 foreach (int value2 in array3)
304 {
305 binaryWriter.Write(value2);
306 }
307 int[] array4 = array2;
308 foreach (int value3 in array4)
309 {
310 binaryWriter.Write(value3);
311 }
312 binaryWriter.Flush();
313 binaryWriter3.Flush();
314 binaryWriter4.Flush();
315 int num4 = (int)(binaryWriter.Seek(0, SeekOrigin.Current) + memoryStream2.Length);
316 num4 += 4;
317 binaryWriter.Write(num4);
318 if (memoryStream2.Length > 0)
319 {
320 memoryStream2.Seek(0L, SeekOrigin.Begin);
321 memoryStream2.CopyTo(binaryWriter.BaseStream, (int)memoryStream2.Length);
322 }
323 binaryWriter3.Dispose();
324 stream.Position = 0L;
325 stream.CopyTo(binaryWriter.BaseStream);
326 binaryWriter4.Dispose();
327 }
328 binaryWriter.Flush();
329 _resourceList = null;
330 }
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
void ICollection< KeyValuePair< TKey, TValue > >. Add(KeyValuePair< TKey, TValue > keyValuePair)
void WriteValue(System.Resources.ResourceTypeCode typeCode, object value, BinaryWriter writer)
SortedDictionary< string, object > _resourceList
void WriteData(BinaryWriter writer, object dataContext)
System.Resources.ResourceTypeCode FindTypeCode(object value, List< string > types)
Dictionary< string, PrecannedResource > _preserializedData
static string InvalidOperation_ResourceWriterSaved
Definition SR.cs:14
Definition SR.cs:7
static Encoding Unicode
Definition Encoding.cs:519
static Encoding UTF8
Definition Encoding.cs:526

References System.Resources.ResourceWriter._output, System.Resources.ResourceWriter._preserializedData, System.Resources.ResourceWriter._resourceList, System.Collections.Generic.SortedDictionary< TKey, TValue >.Add(), System.array, System.Collections.Generic.Dictionary< TKey, TValue >.CopyTo(), System.Collections.Generic.SortedDictionary< TKey, TValue >.Count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Resources.ResourceWriter.FindTypeCode(), System.Resources.FastResourceComparer.HashFunction(), System.Resources.ResourceManager.HeaderVersionNumber, System.SR.InvalidOperation_ResourceWriterSaved, System.item, System.L, System.list, System.Resources.ResourceManager.MagicNumber, System.Resources.ResourceWriter.ResourceReaderTypeName, System.Resources.ResourceWriter.ResourceSetTypeName, System.Array.Sort(), System.stream, System.Text.Encoding.Unicode, System.Text.Encoding.UTF8, System.value, System.Resources.ResourceWriter.WriteData(), and System.Resources.ResourceWriter.WriteValue().

Referenced by System.Resources.ResourceWriter.Dispose().