/// <summary> Deletes the .lvl (and related) files and database tables. Unloads level if it is loaded. </summary> public static bool Delete(string map) { Level lvl = LevelInfo.FindExact(map); if (lvl != null && !lvl.Unload()) { return(false); } if (!Directory.Exists("levels/deleted")) { Directory.CreateDirectory("levels/deleted"); } if (File.Exists(LevelInfo.DeletedPath(map))) { int num = 0; while (File.Exists(LevelInfo.DeletedPath(map + num))) { num++; } File.Move(LevelInfo.MapPath(map), LevelInfo.DeletedPath(map + num)); } else { File.Move(LevelInfo.MapPath(map), LevelInfo.DeletedPath(map)); } DoAll(map, "", action_delete); DeleteDatabaseTables(map); BlockDBFile.DeleteBackingFile(map); return(true); }
/// <summary> Deletes the .lvl (and related) files and database tables. Unloads level if it is loaded. </summary> public static bool Delete(string name) { Level lvl = LevelInfo.FindExact(name); if (lvl != null && !lvl.Unload()) { return(false); } if (!Directory.Exists("levels/deleted")) { Directory.CreateDirectory("levels/deleted"); } if (File.Exists(LevelInfo.DeletedPath(name))) { int num = 0; while (File.Exists(LevelInfo.DeletedPath(name + num))) { num++; } File.Move(LevelInfo.MapPath(name), LevelInfo.DeletedPath(name + num)); } else { File.Move(LevelInfo.MapPath(name), LevelInfo.DeletedPath(name)); } DeleteIfExists(LevelInfo.MapPath(name) + ".backup"); DeleteIfExists("levels/level properties/" + name); DeleteIfExists("levels/level properties/" + name + ".properties"); DeleteIfExists("blockdefs/lvl_" + name + ".json"); DeleteIfExists("blockprops/lvl_" + name + ".txt"); DeleteIfExists(BotsFile.BotsPath(name)); DeleteDatabaseTables(name); BlockDBFile.DeleteBackingFile(name); return(true); }