List <AnimationDataFile> FindAllSubFiles(ByteChunk data) { var toalFileCount = data.ReadInt32(); var fileList = new List <AnimationDataFile>(toalFileCount); for (int i = 0; i < toalFileCount; i++) { var file = new AnimationDataFile(data); fileList.Add(file); data.Index += file.Size; } return(fileList); }
public byte[] ToByteArray() { if (HasUnknownElements) { throw new Exception("Can not save animation pack with unkown elements"); } using MemoryStream memStream = new MemoryStream(); int totalFileCount = Fragments.Count; if (AnimationBin != null) { totalFileCount++; } memStream.Write(ByteParsers.Int32.EncodeValue(totalFileCount, out _)); if (AnimationBin != null) { var animBinByteArray = AnimationBin.ToByteArray(); AnimationDataFile file = new AnimationDataFile() { Name = AnimationBin.FileName, Size = animBinByteArray.Length }; memStream.Write(file.ToByteArray()); memStream.Write(animBinByteArray); } foreach (var item in Fragments) { var itemByteArray = item.ToByteArray(); AnimationDataFile file = new AnimationDataFile() { Name = item.FileName, Size = itemByteArray.Length }; memStream.Write(file.ToByteArray()); memStream.Write(itemByteArray); } return(memStream.ToArray()); }