public BrgMaterial(BrgBinaryReader reader, BrgFile file)
: this(file)
{
Id = reader.ReadInt32();
Flags = (BrgMatFlag)reader.ReadInt32();
unknown01b = reader.ReadInt32();
int nameLength = reader.ReadInt32();
this.DiffuseColor = reader.ReadColor3D();
this.AmbientColor = reader.ReadColor3D();
this.SpecularColor = reader.ReadColor3D();
this.EmissiveColor = reader.ReadColor3D();
this.DiffuseMap = reader.ReadString(nameLength);
if (Flags.HasFlag(BrgMatFlag.SpecularExponent))
{
this.SpecularExponent = reader.ReadSingle();
}
if (Flags.HasFlag(BrgMatFlag.BumpMap))
{
this.BumpMap = reader.ReadString(reader.ReadInt32());
}
if (Flags.HasFlag(BrgMatFlag.Alpha))
{
this.Opacity = reader.ReadSingle();
}
if (Flags.HasFlag(BrgMatFlag.REFLECTIONTEXTURE))
{
byte numSFX = reader.ReadByte();
sfx = new List <BrgMatSFX>(numSFX);
for (int i = 0; i < numSFX; i++)
{
sfx.Add(reader.ReadMaterialSFX());
}
}
else
{
sfx = new List <BrgMatSFX>();
}
}