1 |
using System; |
2 |
using System.IO; |
3 |
using Oni.Metadata; |
4 |
|
5 |
namespace Oni |
6 |
{ |
7 |
internal class BinImporter : Importer |
8 |
{ |
9 |
public override void Import(string filePath, string outputDirPath) |
10 |
{ |
11 |
using (var reader = new BinaryReader(filePath)) |
12 |
{ |
13 |
int tag = reader.ReadInt32(); |
14 |
|
15 |
if (!Enum.IsDefined(typeof(BinaryTag), tag)) |
16 |
throw new NotSupportedException(string.Format(".bin file with tag '{0:x}' is unuspported", tag)); |
17 |
|
18 |
var tagName = ((BinaryTag)tag).ToString(); |
19 |
|
20 |
BeginImport(); |
21 |
|
22 |
var bina = CreateInstance(TemplateTag.BINA, tagName + Path.GetFileNameWithoutExtension(filePath)); |
23 |
|
24 |
using (var writer = bina.OpenWrite()) |
25 |
{ |
26 |
writer.Write(reader.Length); |
27 |
writer.Write(32); |
28 |
} |
29 |
|
30 |
RawWriter.Write(tag); |
31 |
RawWriter.Write(reader.ReadBytes(reader.Length - 4)); |
32 |
|
33 |
Write(outputDirPath); |
34 |
} |
35 |
} |
36 |
} |
37 |
} |