Add pattern bulk import

#443
Pattern names don't update on the left side (even for single-imports), don't bother for now. Just save & reopen the editor.
This commit is contained in:
Kurt
2021-01-22 23:14:14 -08:00
parent c5fe5b2e76
commit 1c4df60920
3 changed files with 82 additions and 0 deletions

View File

@@ -164,6 +164,33 @@ private static void Dump(this DesignPattern dp, string path)
File.WriteAllBytes(dest, dp.Data);
}
/// <summary>
/// Loads all designs from the requested <see cref="path"/>.
/// </summary>
/// <param name="patterns">Patterns to load</param>
/// <param name="path">Path to load from</param>
public static void Load(this DesignPattern[] patterns, string path)
{
if (patterns.Length == 0)
return;
var files = Directory.GetFiles(path, "*.nhd", SearchOption.TopDirectoryOnly);
int ctr = 0;
foreach (var f in files)
{
var fi = new FileInfo(f);
if (fi.Length != DesignPattern.SIZE)
continue;
var data = File.ReadAllBytes(f);
var p = new DesignPattern(data);
p.ChangeOrigins(patterns[ctr], data);
patterns[ctr] = p;
if (++ctr >= patterns.Length)
break;
}
}
/// <summary>
/// Dumps all designs to the requested <see cref="path"/>.
/// </summary>
@@ -186,6 +213,33 @@ public static void Dump(this IEnumerable<DesignPatternPRO> patterns, string path
dp.Dump(path);
}
/// <summary>
/// Loads all designs from the requested <see cref="path"/>.
/// </summary>
/// <param name="patterns">Patterns to load</param>
/// <param name="path">Path to load from</param>
public static void Load(this DesignPatternPRO[] patterns, string path)
{
if (patterns.Length == 0)
return;
var files = Directory.GetFiles(path, "*.nhpd", SearchOption.TopDirectoryOnly);
int ctr = 0;
foreach (var f in files)
{
var fi = new FileInfo(f);
if (fi.Length != DesignPatternPRO.SIZE)
continue;
var data = File.ReadAllBytes(f);
var p = new DesignPatternPRO(data);
p.ChangeOrigins(patterns[ctr], data);
patterns[ctr] = p;
if (++ctr >= patterns.Length)
break;
}
}
private static void Dump(this DesignPatternPRO dp, string path)
{
var name = dp.DesignName;