mirror of
https://github.com/kwsch/NHSE.git
synced 2026-04-18 14:37:25 -05:00
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:
parent
c5fe5b2e76
commit
1c4df60920
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -76,6 +76,20 @@ private void B_DumpDesign_Click(object sender, EventArgs e)
|
|||
|
||||
private void B_LoadDesign_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ModifierKeys == Keys.Shift)
|
||||
{
|
||||
using var fbd = new FolderBrowserDialog();
|
||||
if (fbd.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var dir = Path.GetDirectoryName(fbd.SelectedPath);
|
||||
if (dir == null || !Directory.Exists(dir))
|
||||
return;
|
||||
Patterns.Load(fbd.SelectedPath);
|
||||
LoadPattern(Patterns[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
var original = Patterns[Index];
|
||||
var name = original.DesignName;
|
||||
using var ofd = new OpenFileDialog
|
||||
|
|
|
|||
|
|
@ -76,6 +76,20 @@ private void B_DumpDesign_Click(object sender, EventArgs e)
|
|||
|
||||
private void B_LoadDesign_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ModifierKeys == Keys.Shift)
|
||||
{
|
||||
using var fbd = new FolderBrowserDialog();
|
||||
if (fbd.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var dir = Path.GetDirectoryName(fbd.SelectedPath);
|
||||
if (dir == null || !Directory.Exists(dir))
|
||||
return;
|
||||
Patterns.Load(fbd.SelectedPath);
|
||||
LoadPattern(Patterns[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
var original = Patterns[Index];
|
||||
var name = original.DesignName;
|
||||
using var ofd = new OpenFileDialog
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user