コード例 #1
0
ファイル: GARC.cs プロジェクト: wooddice/pkNX
        public override void Dump(string path, ContainerHandler handler)
        {
            string format = this.GetFileFormatString();

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            handler.Initialize(Count);
            for (int i = 0; i < Count; i++)
            {
                FATB[i].Dump(path, i, format, Reader.BaseStream, Header.DataOffset);
                handler.StepFile(i + 1);
            }
        }
コード例 #2
0
ファイル: GARC.cs プロジェクト: wooddice/pkNX
        private void PackGARC(BinaryWriter bw, ContainerHandler handler, CancellationToken token)
        {
            StartPack();
            handler.Initialize(Count);

            WriteIntro(bw);
            int dataOffset = (int)bw.BaseStream.Position;

            for (int i = 0; i < Count; i++)
            {
                if (token.IsCancellationRequested)
                {
                    return;
                }
                WriteEntry(bw, i, dataOffset);
            }
            WriteIntro(bw, true);
            bw.Flush();
        }
コード例 #3
0
ファイル: GARC.cs プロジェクト: wooddice/pkNX
 protected override Task Pack(BinaryWriter bw, ContainerHandler handler, CancellationToken token)
 {
     return(Task.Run(() => PackGARC(bw, handler, token), token));
 }