Beispiel #1
0
    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);
    }
Beispiel #2
0
    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();
    }