예제 #1
0
        public static WorldFileData FromInvalidWorld(string path, bool cloudSave)
        {
            WorldFileData worldFileData = new WorldFileData(path);

            worldFileData.IsExpertMode = false;
            worldFileData.Metadata     = FileMetadata.FromCurrentSettings(FileType.World);
            worldFileData.SetWorldSize(1, 1);
            worldFileData.HasCorruption = true;
            worldFileData.IsHardMode    = false;
            worldFileData.IsValid       = false;
            worldFileData.Name          = FileUtilities.GetFileName(path, false);
            worldFileData.CreationTime  = cloudSave ? DateTime.Now : File.GetCreationTime(path);
            return(worldFileData);
        }
예제 #2
0
        public static WorldFileData FromInvalidWorld(string path, bool cloudSave)
        {
            WorldFileData worldFileData = new WorldFileData(path, cloudSave);

            worldFileData.GameMode = 0;
            worldFileData.SetSeedToEmpty();
            worldFileData.WorldGeneratorVersion = 0UL;
            worldFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
            worldFileData.SetWorldSize(1, 1);
            worldFileData.HasCorruption = true;
            worldFileData.IsHardMode    = false;
            worldFileData.IsValid       = false;
            worldFileData.Name          = FileUtilities.GetFileName(path, false);
            worldFileData.UniqueId      = Guid.Empty;
            worldFileData.CreationTime  = cloudSave ? DateTime.Now : File.GetCreationTime(path);
            return(worldFileData);
        }
		public static WorldFileData FromInvalidWorld(string path, bool cloudSave)
		{
			WorldFileData worldFileData = new WorldFileData(path, cloudSave);
			worldFileData.IsExpertMode = false;
			worldFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
			worldFileData.SetWorldSize(1, 1);
			worldFileData.HasCorruption = true;
			worldFileData.IsHardMode = false;
			worldFileData.IsValid = false;
			worldFileData.Name = FileUtilities.GetFileName(path, false);
			if (!cloudSave)
			{
				worldFileData.CreationTime = File.GetCreationTime(path);
			}
			else
			{
				worldFileData.CreationTime = DateTime.Now;
			}
			return worldFileData;
		}
예제 #4
0
 public static WorldFileData GetAllMetadata(string file, bool cloudSave)
 {
     if (file == null || (cloudSave && SocialAPI.Cloud == null))
     {
         return null;
     }
     WorldFileData worldFileData = new WorldFileData(file, cloudSave);
     if (!FileUtilities.Exists(file, cloudSave))
     {
         worldFileData.CreationTime = DateTime.Now;
         worldFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
         return worldFileData;
     }
     try
     {
         Stream stream;
         if (cloudSave)
         {
             stream = new MemoryStream(SocialAPI.Cloud.Read(file));
         } else {
             stream = new FileStream(file, FileMode.Open);
         }
         using (stream)
         {
             using (BinaryReader binaryReader = new BinaryReader(stream))
             {
                 int num = binaryReader.ReadInt32();
                 if (num >= 135)
                 {
                     worldFileData.Metadata = FileMetadata.Read(binaryReader, FileType.World);
                 }
                 else
                 {
                     worldFileData.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
                 }
                 if (num <= Main.curRelease)
                 {
                     binaryReader.ReadInt16();
                     stream.Position = (long)binaryReader.ReadInt32();
                     worldFileData.Name = binaryReader.ReadString();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     int y = binaryReader.ReadInt32();
                     int x = binaryReader.ReadInt32();
                     worldFileData.SetWorldSize(x, y);
                     worldFileData.IsExpertMode = (num >= 112 && binaryReader.ReadBoolean());
                     if (num >= 141)
                     {
                         worldFileData.CreationTime = DateTime.FromBinary(binaryReader.ReadInt64());
                     }
                     else if (!cloudSave)
                     {
                         worldFileData.CreationTime = File.GetCreationTime(file);
                     }
                     else
                     {
                         worldFileData.CreationTime = DateTime.Now;
                     }
                     binaryReader.ReadByte();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     binaryReader.ReadDouble();
                     binaryReader.ReadDouble();
                     binaryReader.ReadDouble();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadInt32();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadInt32();
                     binaryReader.ReadInt32();
                     worldFileData.HasCrimson = binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     if (num >= 118)
                     {
                         binaryReader.ReadBoolean();
                     }
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadBoolean();
                     binaryReader.ReadByte();
                     binaryReader.ReadInt32();
                     worldFileData.IsHardMode = binaryReader.ReadBoolean();
                     return worldFileData;
                 }
             }
         }
     }
     catch (Exception)
     {
     }
     return null;
 }
예제 #5
0
        public static WorldFileData GetAllMetadata(string file, bool cloudSave)
        {
            Stream memoryStream;
            if (file == null || cloudSave && SocialAPI.Cloud == null)
            {
                return null;
            }
            try
            {
                WorldFileData worldFileDatum = new WorldFileData(file, cloudSave);
                if (cloudSave)
                {
                    memoryStream = new MemoryStream(SocialAPI.Cloud.Read(file));
                }
                else
                {
                    memoryStream = new FileStream(file, FileMode.Open);
                }
                using (Stream stream = memoryStream)
                {
                    using (BinaryReader binaryReader = new BinaryReader(stream))
                    {
                        int num = binaryReader.ReadInt32();
                        if (num < 135)
                        {
                            worldFileDatum.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
                        }
                        else
                        {
                            worldFileDatum.Metadata = FileMetadata.Read(binaryReader, FileType.World);
                        }
                        if (num <= Main.curRelease)
                        {
                            binaryReader.ReadInt16();
                            stream.Position = (long)binaryReader.ReadInt32();
                            worldFileDatum.Name = binaryReader.ReadString();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            int num1 = binaryReader.ReadInt32();
                            worldFileDatum.SetWorldSize(binaryReader.ReadInt32(), num1);
                            worldFileDatum.IsExpertMode = (num < 112 ? false : binaryReader.ReadBoolean());
                            if (num >= 141)
                            {
                                worldFileDatum.CreationTime = DateTime.FromBinary(binaryReader.ReadInt64());
                            }
                            else if (cloudSave)
                            {
                                worldFileDatum.CreationTime = DateTime.Now;
                            }
                            else
                            {
                                worldFileDatum.CreationTime = File.GetCreationTime(file);
                            }
                            binaryReader.ReadByte();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            binaryReader.ReadDouble();
                            binaryReader.ReadDouble();
                            binaryReader.ReadDouble();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadInt32();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadInt32();
                            binaryReader.ReadInt32();
                            worldFileDatum.HasCrimson = binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            if (num >= 118)
                            {
                                binaryReader.ReadBoolean();
                            }
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadBoolean();
                            binaryReader.ReadByte();
                            binaryReader.ReadInt32();
                            worldFileDatum.IsHardMode = binaryReader.ReadBoolean();
                            return worldFileDatum;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception during world metadata load.");
                Console.WriteLine("If you are using -autocreate, it is safe to ignore this.");
            #if DEBUG
                Console.WriteLine(ex);
                System.Diagnostics.Debugger.Break();

            #endif
            }
            return new WorldFileData();
        }
예제 #6
0
        public static WorldFileData GetAllMetadata(string file)
        {
            if (file != null)
            {
                WorldFileData data = new WorldFileData(file);
                if (!FileUtilities.Exists(file))
                {
                    data.CreationTime = DateTime.Now;
                    data.Metadata = FileMetadata.FromCurrentSettings(FileType.World);
                    return data;
                }
                try
                {
                    using (Stream stream = new FileStream(file, FileMode.Open))
                    {
                        using (BinaryReader reader = new BinaryReader(stream))
                        {
                            int num = reader.ReadInt32();
                            if (num >= 0x87)
                                data.Metadata = FileMetadata.Read(reader, FileType.World);
                            else
                                data.Metadata = FileMetadata.FromCurrentSettings(FileType.World);

                            if (num <= Main.curRelease)
                            {
                                reader.ReadInt16();
                                stream.Position = reader.ReadInt32();
                                data.Name = reader.ReadString();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                int y = reader.ReadInt32();
                                int x = reader.ReadInt32();
                                data.SetWorldSize(x, y);
                                data.IsExpertMode = (num >= 0x70) && reader.ReadBoolean();
                                if (num >= 0x8d)
                                    data.CreationTime = DateTime.FromBinary(reader.ReadInt64());
                                else
                                    data.CreationTime = DateTime.Now;
                                data.CreationTime = File.GetCreationTime(file);
                                reader.ReadByte();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                reader.ReadDouble();
                                reader.ReadDouble();
                                reader.ReadDouble();
                                reader.ReadBoolean();
                                reader.ReadInt32();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadInt32();
                                reader.ReadInt32();
                                data.HasCrimson = reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                if (num >= 0x76)
                                {
                                    reader.ReadBoolean();
                                }
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadBoolean();
                                reader.ReadByte();
                                reader.ReadInt32();
                                data.IsHardMode = reader.ReadBoolean();
                                return data;
                            }
                        }
                    }
                }
                catch (Exception)
                {
                }
            }
            return null;
        }