public static void Save(World world, string filename, bool resetTime = false) { try { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Validating World...")); world.Validate(); } catch (ArgumentOutOfRangeException err) { string msg = string.Format("There is a problem in your world.\r\n" + "{0}\r\nThis world will not open in Terraria\r\n" + "Would you like to save anyways??\r\n" , err.ParamName); if (MessageBox.Show(msg, "World Error", MessageBoxButton.YesNo, MessageBoxImage.Error) != MessageBoxResult.Yes) return; } lock (_fileLock) { if (resetTime) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Resetting Time...")); world.ResetTime(); } if (filename == null) return; string temp = filename + ".tmp"; using (var fs = new FileStream(temp, FileMode.Create)) { using (var bw = new BinaryWriter(fs)) { if (world.Version > 87) SaveV2(world, bw); else SaveV1(world, bw); bw.Close(); fs.Close(); // make a backup of current file if it exists if (File.Exists(filename)) { string backup = filename + ".TEdit"; File.Copy(filename, backup, true); } // replace actual file with temp save file File.Copy(temp, filename, true); // delete temp save file File.Delete(temp); OnProgressChanged(null, new ProgressChangedEventArgs(0, "World Save Complete.")); } } world._lastSave = File.GetLastWriteTimeUtc(filename); } }
public NewWorldView() { InitializeComponent(); _newWorld = new World(1200, 4300, "TEdit World"); _newWorld.Version = World.CompatibleVersion; _newWorld.GroundLevel = 350; _newWorld.RockLevel = 480; _newWorld.ResetTime(); AddCharNames(); this.DataContext = NewWorld; }
public static void Save(World world, string filename, bool resetTime = false) { lock (_fileLock) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Validating World...")); world.Validate(); if (resetTime) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Resetting Time...")); world.ResetTime(); } if (filename == null) { return; } string temp = filename + ".tmp"; using (var fs = new FileStream(temp, FileMode.Create)) { using (var bw = new BinaryWriter(fs)) { if (world.Version > 87) { SaveV2(world, bw); } else { SaveV1(world, bw); } bw.Close(); fs.Close(); // make a backup of current file if it exists if (File.Exists(filename)) { string backup = filename + ".TEdit"; File.Copy(filename, backup, true); } // replace actual file with temp save file File.Copy(temp, filename, true); // delete temp save file File.Delete(temp); OnProgressChanged(null, new ProgressChangedEventArgs(0, "World Save Complete.")); } } world._lastSave = File.GetLastWriteTimeUtc(filename); } }
public static void Save(World world, string filename, bool resetTime = false) { lock (_fileLock) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Validating World...")); world.Validate(); if (resetTime) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Resetting Time...")); world.ResetTime(); } if (filename == null) return; string temp = filename + ".tmp"; using (var fs = new FileStream(temp, FileMode.Create)) { using (var bw = new BinaryWriter(fs)) { if (CompatibleVersion > 87) SaveV2(world, bw); else SaveV1(world, bw); bw.Close(); fs.Close(); // make a backup of current file if it exists if (File.Exists(filename)) { string backup = filename + ".TEdit"; File.Copy(filename, backup, true); } // replace actual file with temp save file File.Copy(temp, filename, true); // delete temp save file File.Delete(temp); OnProgressChanged(null, new ProgressChangedEventArgs(0, "World Save Complete.")); } } world._lastSave = File.GetLastWriteTimeUtc(filename); } }
public static void Save(World world, string filename, bool resetTime = false) { try { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Validating World...")); world.Validate(); } catch (ArgumentOutOfRangeException err) { string msg = string.Format("There is a problem in your world.\r\n" + "{0}\r\nThis world will not open in Terraria\r\n" + "Would you like to save anyways??\r\n" , err.ParamName); if (MessageBox.Show(msg, "World Error", MessageBoxButton.YesNo, MessageBoxImage.Error) != MessageBoxResult.Yes) { return; } } lock (_fileLock) { if (resetTime) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "Resetting Time...")); world.ResetTime(); } if (filename == null) { return; } string temp = filename + ".tmp"; using (var fs = new FileStream(temp, FileMode.Create)) { using (var bw = new BinaryWriter(fs)) { if (world.Version > 87) { SaveV2(world, bw); } else { SaveV1(world, bw); } bw.Close(); fs.Close(); // make a backup of current file if it exists if (File.Exists(filename)) { string backup = filename + ".TEdit"; File.Copy(filename, backup, true); } // replace actual file with temp save file File.Copy(temp, filename, true); // delete temp save file File.Delete(temp); OnProgressChanged(null, new ProgressChangedEventArgs(0, "World Save Complete.")); } } world._lastSave = File.GetLastWriteTimeUtc(filename); } }
public static void Save(World world, string filename, bool resetTime = false) { try { OnProgressChanged(world, new ProgressChangedEventArgs(0, "验证世界有效性...")); world.Validate(); } catch (ArgumentOutOfRangeException err) { string msg = string.Format("地图文件有问题.\r\n" + "{0}\r\n它不能在游戏内打开\r\n" + "无论如何, 你还要保存它么??\r\n" , err.ParamName); if (MessageBox.Show(msg, "地图文件错误", MessageBoxButton.YesNo, MessageBoxImage.Error) != MessageBoxResult.Yes) { return; } } lock (_fileLock) { if (resetTime) { OnProgressChanged(world, new ProgressChangedEventArgs(0, "重置时间...")); world.ResetTime(); } if (filename == null) { return; } string temp = filename + ".tmp"; using (var fs = new FileStream(temp, FileMode.Create)) { using (var bw = new BinaryWriter(fs)) { if (world.Version > 87) { SaveV2(world, bw); } else { SaveV1(world, bw); } bw.Close(); fs.Close(); // make a backup of current file if it exists if (File.Exists(filename)) { string backup = filename + "." + DateTime.Now.ToString("yyyyMMddHHmmss") + ".TEdit"; File.Copy(filename, backup, true); } // replace actual file with temp save file File.Copy(temp, filename, true); // delete temp save file File.Delete(temp); OnProgressChanged(null, new ProgressChangedEventArgs(0, "世界保存完毕.")); } } world._lastSave = File.GetLastWriteTimeUtc(filename); } }