public Kn5Material ReadMaterial() {
var material = new Kn5Material {
Name = ReadString(),
ShaderName = ReadString(),
BlendMode = ReadBlendMode(), // byte
AlphaTested = ReadBoolean(), // bool
DepthMode = ReadDepthMode(), // int32
ShaderProperties = new Kn5Material.ShaderProperty[ReadInt32()]
};
for (var i = 0; i < material.ShaderProperties.Length; i++) {
material.ShaderProperties[i] = new Kn5Material.ShaderProperty {
Name = ReadString(),
ValueA = ReadSingle(),
ValueB = ReadSingle2D(),
ValueC = ReadSingle3D(),
ValueD = ReadSingle4D()
};
}
material.TextureMappings = new Kn5Material.TextureMapping[ReadInt32()];
for (var i = 0; i < material.TextureMappings.Length; i++) {
material.TextureMappings[i] = new Kn5Material.TextureMapping {
Name = ReadString(),
Slot = ReadInt32(),
Texture = ReadString()
};
}
return material;
}