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

◆ GetAllMetadata()

static WorldFileData Terraria.IO.WorldFile.GetAllMetadata ( string file,
bool cloudSave )
inlinestatic

Definition at line 243 of file WorldFile.cs.

244 {
245 if (file == null || (cloudSave && SocialAPI.Cloud == null))
246 {
247 return null;
248 }
249 WorldFileData worldFileData = new WorldFileData(file, cloudSave);
251 {
252 return WorldFileData.FromInvalidWorld(file, cloudSave);
253 }
254 try
255 {
258 int num = binaryReader.ReadInt32();
259 if (num >= 135)
260 {
261 worldFileData.Metadata = FileMetadata.Read(binaryReader, FileType.World);
262 }
263 else
264 {
265 worldFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
266 }
267 if (num <= 279)
268 {
269 binaryReader.ReadInt16();
270 stream.Position = binaryReader.ReadInt32();
271 worldFileData.Name = binaryReader.ReadString();
272 if (num >= 179)
273 {
274 string seed = ((num != 179) ? binaryReader.ReadString() : binaryReader.ReadInt32().ToString());
275 worldFileData.SetSeed(seed);
276 worldFileData.WorldGeneratorVersion = binaryReader.ReadUInt64();
277 }
278 else
279 {
280 worldFileData.SetSeedToEmpty();
281 worldFileData.WorldGeneratorVersion = 0uL;
282 }
283 if (num >= 181)
284 {
285 worldFileData.UniqueId = new Guid(binaryReader.ReadBytes(16));
286 }
287 else
288 {
289 worldFileData.UniqueId = Guid.Empty;
290 }
291 binaryReader.ReadInt32();
292 binaryReader.ReadInt32();
293 binaryReader.ReadInt32();
294 binaryReader.ReadInt32();
295 binaryReader.ReadInt32();
296 int y = binaryReader.ReadInt32();
297 int x = binaryReader.ReadInt32();
298 worldFileData.SetWorldSize(x, y);
299 if (num >= 209)
300 {
301 worldFileData.GameMode = binaryReader.ReadInt32();
302 if (num >= 222)
303 {
304 worldFileData.DrunkWorld = binaryReader.ReadBoolean();
305 if (num >= 227)
306 {
307 worldFileData.ForTheWorthy = binaryReader.ReadBoolean();
308 }
309 if (num >= 238)
310 {
311 worldFileData.Anniversary = binaryReader.ReadBoolean();
312 }
313 if (num >= 239)
314 {
315 worldFileData.DontStarve = binaryReader.ReadBoolean();
316 }
317 if (num >= 241)
318 {
319 worldFileData.NotTheBees = binaryReader.ReadBoolean();
320 }
321 if (num >= 249)
322 {
323 worldFileData.RemixWorld = binaryReader.ReadBoolean();
324 }
325 if (num >= 266)
326 {
327 worldFileData.NoTrapsWorld = binaryReader.ReadBoolean();
328 }
329 if (num >= 267)
330 {
331 worldFileData.ZenithWorld = binaryReader.ReadBoolean();
332 }
333 else
334 {
335 worldFileData.ZenithWorld = worldFileData.DrunkWorld && worldFileData.RemixWorld;
336 }
337 }
338 }
339 else if (num >= 112)
340 {
341 if (binaryReader.ReadBoolean())
342 {
343 worldFileData.GameMode = 1;
344 }
345 else
346 {
347 worldFileData.GameMode = 0;
348 }
349 }
350 if (num >= 141)
351 {
352 worldFileData.CreationTime = DateTime.FromBinary(binaryReader.ReadInt64());
353 }
354 else if (!cloudSave)
355 {
356 worldFileData.CreationTime = File.GetCreationTime(file);
357 }
358 else
359 {
360 worldFileData.CreationTime = DateTime.Now;
361 }
362 binaryReader.ReadByte();
363 binaryReader.ReadInt32();
364 binaryReader.ReadInt32();
365 binaryReader.ReadInt32();
366 binaryReader.ReadInt32();
367 binaryReader.ReadInt32();
368 binaryReader.ReadInt32();
369 binaryReader.ReadInt32();
370 binaryReader.ReadInt32();
371 binaryReader.ReadInt32();
372 binaryReader.ReadInt32();
373 binaryReader.ReadInt32();
374 binaryReader.ReadInt32();
375 binaryReader.ReadInt32();
376 binaryReader.ReadInt32();
377 binaryReader.ReadInt32();
378 binaryReader.ReadInt32();
379 binaryReader.ReadInt32();
380 binaryReader.ReadInt32();
381 binaryReader.ReadInt32();
382 binaryReader.ReadDouble();
383 binaryReader.ReadDouble();
384 binaryReader.ReadDouble();
385 binaryReader.ReadBoolean();
386 binaryReader.ReadInt32();
387 binaryReader.ReadBoolean();
388 binaryReader.ReadBoolean();
389 binaryReader.ReadInt32();
390 binaryReader.ReadInt32();
391 worldFileData.HasCrimson = binaryReader.ReadBoolean();
392 binaryReader.ReadBoolean();
393 binaryReader.ReadBoolean();
394 binaryReader.ReadBoolean();
395 binaryReader.ReadBoolean();
396 binaryReader.ReadBoolean();
397 binaryReader.ReadBoolean();
398 binaryReader.ReadBoolean();
399 binaryReader.ReadBoolean();
400 binaryReader.ReadBoolean();
401 binaryReader.ReadBoolean();
402 if (num >= 118)
403 {
404 binaryReader.ReadBoolean();
405 }
406 else
407 _ = 0;
408 binaryReader.ReadBoolean();
409 binaryReader.ReadBoolean();
410 binaryReader.ReadBoolean();
411 binaryReader.ReadBoolean();
412 binaryReader.ReadBoolean();
413 binaryReader.ReadBoolean();
414 binaryReader.ReadBoolean();
415 binaryReader.ReadBoolean();
416 binaryReader.ReadBoolean();
417 binaryReader.ReadByte();
418 binaryReader.ReadInt32();
419 worldFileData.IsHardMode = binaryReader.ReadBoolean();
420 if (num >= 257)
421 {
422 binaryReader.ReadBoolean();
423 }
424 binaryReader.ReadInt32();
425 binaryReader.ReadInt32();
426 binaryReader.ReadInt32();
427 binaryReader.ReadDouble();
428 if (num >= 118)
429 {
430 binaryReader.ReadDouble();
431 }
432 if (num >= 113)
433 {
434 binaryReader.ReadByte();
435 }
436 binaryReader.ReadBoolean();
437 binaryReader.ReadInt32();
438 binaryReader.ReadSingle();
439 binaryReader.ReadInt32();
440 binaryReader.ReadInt32();
441 binaryReader.ReadInt32();
442 binaryReader.ReadByte();
443 binaryReader.ReadByte();
444 binaryReader.ReadByte();
445 binaryReader.ReadByte();
446 binaryReader.ReadByte();
447 binaryReader.ReadByte();
448 binaryReader.ReadByte();
449 binaryReader.ReadByte();
450 binaryReader.ReadInt32();
451 binaryReader.ReadInt16();
452 binaryReader.ReadSingle();
453 if (num < 95)
454 {
455 return worldFileData;
456 }
457 for (int num2 = binaryReader.ReadInt32(); num2 > 0; num2--)
458 {
459 binaryReader.ReadString();
460 }
461 if (num < 99)
462 {
463 return worldFileData;
464 }
465 binaryReader.ReadBoolean();
466 if (num < 101)
467 {
468 return worldFileData;
469 }
470 binaryReader.ReadInt32();
471 if (num < 104)
472 {
473 return worldFileData;
474 }
475 binaryReader.ReadBoolean();
476 if (num >= 129)
477 {
478 binaryReader.ReadBoolean();
479 }
480 if (num >= 201)
481 {
482 binaryReader.ReadBoolean();
483 }
484 if (num >= 107)
485 {
486 binaryReader.ReadInt32();
487 }
488 if (num >= 108)
489 {
490 binaryReader.ReadInt32();
491 }
492 if (num < 109)
493 {
494 return worldFileData;
495 }
496 int num3 = binaryReader.ReadInt16();
497 for (int i = 0; i < num3; i++)
498 {
499 binaryReader.ReadInt32();
500 }
501 if (num < 128)
502 {
503 return worldFileData;
504 }
505 binaryReader.ReadBoolean();
506 if (num < 131)
507 {
508 return worldFileData;
509 }
510 binaryReader.ReadBoolean();
511 binaryReader.ReadBoolean();
512 binaryReader.ReadBoolean();
513 worldFileData.DefeatedMoonlord = binaryReader.ReadBoolean();
514 return worldFileData;
515 }
516 }
517 catch (Exception)
518 {
519 }
520 return null;
521 }
static DateTime GetCreationTime(string path)
Definition File.cs:164
static Terraria.Social.Base.CloudSocialModule Cloud
Definition SocialAPI.cs:18
static bool Exists(string path, bool cloud)
static DateTime Now
Definition DateTime.cs:103
static DateTime FromBinary(long dateData)
Definition DateTime.cs:671
static readonly Guid Empty
Definition Guid.cs:86

References Terraria.Social.SocialAPI.Cloud, System.Guid.Empty, Terraria.Utilities.FileUtilities.Exists(), System.DateTime.FromBinary(), Terraria.IO.FileMetadata.FromCurrentSettings(), Terraria.IO.WorldFileData.FromInvalidWorld(), System.IO.File.GetCreationTime(), System.DateTime.Now, Terraria.IO.FileMetadata.Read(), and System.stream.

Referenced by Terraria.Main.LoadDedConfig(), Terraria.Main.LoadWorlds(), Terraria.Main.SetWorld(), and Terraria.GameContent.UI.States.UIWorkshopWorldImport.UpdateWorkshopWorldList().