public NiShaderTexDesc(BinaryReader reader, NiFile niFile) : base(reader, niFile) { HasMap = new NiBoolean(reader); if (!HasMap) { return; } Map = new NiTexDesc(reader, niFile); MapId = reader.ReadUInt32(); }
public NiTexturingProperty(BinaryReader reader, NiFile file) : base(reader, file) { Flags = reader.ReadInt16(); TextureCount = reader.ReadUInt32(); HasBaseTexture = new NiBoolean(reader); if (HasBaseTexture) { BaseTexture = new NiTexDesc(reader, file); } HasDarkTexture = new NiBoolean(reader); if (HasDarkTexture) { DarkTexture = new NiTexDesc(reader, file); } HasDetailTexture = new NiBoolean(reader); if (HasDetailTexture) { DetailTexture = new NiTexDesc(reader, file); } HasGlossTexture = new NiBoolean(reader); if (HasGlossTexture) { GlossTexture = new NiTexDesc(reader, file); } HasGlowTexture = new NiBoolean(reader); if (HasGlowTexture) { GlowTexture = new NiTexDesc(reader, file); } if (TextureCount > 5) { HasBumpMapTexture = new NiBoolean(reader); if (!HasBumpMapTexture) { goto Normal; } BumpMapTexture = new NiTexDesc(reader, file); BumpMapLumaScale = reader.ReadSingle(); BumpMapLumaOffset = reader.ReadSingle(); BumpMapMatrix = new NiMatrix2X2(reader, file); } Normal: if (TextureCount > 6) { HasNormalTexture = new NiBoolean(reader); if (!HasNormalTexture) { goto Parallax; } NormalTexture = new NiTexDesc(reader, file); } Parallax: if (TextureCount > 7) { HasParallaxTexture = new NiBoolean(reader); if (!HasParallaxTexture) { goto Shader; } ParallaxTexture = new NiTexDesc(reader, file); ParallaxOffset = reader.ReadSingle(); } Shader: ShaderTexturesCount = reader.ReadUInt32(); for (var i = 0; i < ShaderTexturesCount; i++) { ShaderTextures[i] = new NiShaderTexDesc(reader, file); } }