private TexFileHdr readHeader(BinaryReader br) { TexFileHdr res = new TexFileHdr(); res.header_size = br.ReadInt32(); res.file_size = br.ReadInt32(); res.wdth = br.ReadInt32(); res.hght = br.ReadInt32(); res.flags = br.ReadInt32(); res.fade_1 = br.ReadInt32(); res.fade_2 = br.ReadInt32(); res.alpha = br.ReadByte(); res.magic = br.ReadBytes(3); return(res); }
public override void OnImportAsset(AssetImportContext ctx) { int idx = ctx.assetPath.LastIndexOf("texture_library"); FileStream fs = File.Open(ctx.assetPath, FileMode.Open); BinaryReader fs_reader = new BinaryReader(fs, new ASCIIEncoding()); TexFileHdr hdr = readHeader(fs_reader); if (hdr.magic[0] != 'T' || hdr.magic[1] != 'X' || hdr.magic[2] != '2') { ctx.LogImportError("Unknown texture format"); return; } var name_chars = fs_reader.ReadChars(hdr.header_size - 8 * 4); string originalname = new string(name_chars); originalname = originalname.Substring(0, originalname.IndexOf('\0')); SEGSRuntime.Tools.EnsureDirectoryExists(Path.GetDirectoryName(PREFAB_DESTINATION_DIRECTORY + originalname)); FileStream tgt = File.Open(PREFAB_DESTINATION_DIRECTORY + originalname, FileMode.Create); fs.CopyTo(tgt); tgt.Close(); fs.Close(); }