AcTools.Kn5File.Kn5.FromFile_Textures C# (CSharp) Method

FromFile_Textures() private method

private FromFile_Textures ( Kn5Reader reader ) : void
reader Kn5Reader
return void
        private void FromFile_Textures(Kn5Reader reader) {
            try {
                var count = reader.ReadInt32();

                Textures = new Dictionary<string, Kn5Texture>(count);
                TexturesData = new Dictionary<string, byte[]>(count);

                for (var i = 0; i < count; i++) {
                    var texture = reader.ReadTexture();
                    if (!Textures.ContainsKey(texture.Name)) {
                        Textures[texture.Name] = texture;
                        TexturesData[texture.Name] = reader.ReadBytes(texture.Length);
                    } else {
                        reader.BaseStream.Seek(texture.Length, SeekOrigin.Current);
                    }
                }
            } catch (NotImplementedException) {
                Textures = null;
                TexturesData = null;
            }
        }

Usage Example

Example #1
0
        public static Kn5 FromFile(string filename, bool skipTextures, bool readNodesAsBytes = true)
        {
            if (!File.Exists(filename))
            {
                throw new FileNotFoundException(filename);
            }

            var kn5 = new Kn5(filename);

            using (var reader = new Kn5Reader(filename)) {
                kn5.FromFile_Header(reader);

                if (skipTextures)
                {
                    kn5.FromFile_Textures(reader, BlankKn5TextureLoader.Instance);
                }
                else
                {
                    kn5.FromFile_Textures(reader, DefaultKn5TextureLoader.Instance);
                }

                kn5.FromFile_Materials(reader);
                kn5.FromFile_Nodes(reader, readNodesAsBytes);
            }

            return(kn5);
        }
All Usage Examples Of AcTools.Kn5File.Kn5::FromFile_Textures