This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
chovy-gm/GMAssetCompiler/GMExtension.cs

62 lines
1.1 KiB
C#

using System.Collections.Generic;
using System.IO;
namespace GMAssetCompiler
{
public class GMExtension
{
public string Name
{
get;
private set;
}
public string Folder
{
get;
private set;
}
public IList<GMExtensionInclude> Includes
{
get;
private set;
}
public IList<byte[]> ExtensionDLL
{
get;
private set;
}
public GMExtension(GMAssets _a, Stream _s)
{
_s.ReadInteger();
Name = _s.ReadString();
Folder = _s.ReadString();
Includes = new List<GMExtensionInclude>();
int num = _s.ReadInteger();
for (int i = 0; i < num; i++)
{
Includes.Add(new GMExtensionInclude(_s));
}
byte[] array = _s.ReadStream();
if (array == null)
{
return;
}
MemoryStream memoryStream = new MemoryStream(array);
int key = memoryStream.ReadInteger();
GMAssets.Decrypt(key, array, memoryStream.Position + 1);
ExtensionDLL = new List<byte[]>();
for (int j = 0; j < Includes.Count; j++)
{
if (Includes[j].Kind != 3)
{
ExtensionDLL.Add(memoryStream.ReadCompressedStream());
}
}
}
}
}