AcTools.Kn5File.Kn5Reader.ReadMaterial C# (CSharp) Method

ReadMaterial() public method

public ReadMaterial ( ) : Kn5Material
return Kn5Material
        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;
        }

Usage Example

Example #1
0
        private void FromFile_Materials(Kn5Reader reader)
        {
            try {
                var count = reader.ReadInt32();

                Materials = new Dictionary <string, Kn5Material>(count);

                for (var i = 0; i < count; i++)
                {
                    var material = reader.ReadMaterial();
                    Materials[material.Name] = material;
                }
            } catch (NotImplementedException) {
                Materials = null;
            }
        }
All Usage Examples Of AcTools.Kn5File.Kn5Reader::ReadMaterial