public override uint GetSize(NiHeader header) { if (!((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21))) { return(base.GetSize(header) + 56U); } else if ((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21)) { return(base.GetSize(header) + 36U); } else { return(base.GetSize(header) + 32U); } }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); this.data = reader.ReadInt32(); this.skinInstance = reader.ReadInt32(); if (header.GetVersion() > 335544325U) { this.numMaterials = reader.ReadUInt32(); for (int index = 0; (long)index < (long)this.numMaterials; ++index) { this.materialNames.Add(reader.ReadUInt32()); } for (int index = 0; (long)index < (long)this.numMaterials; ++index) { this.materialExtraData.Add(reader.ReadInt32()); } this.activeMaterial = reader.ReadInt32(); this.dirtyFlag = Utils.ReadBool(reader); if (header.GetUserVersion() == 12) { this.bsProperties[0] = reader.ReadInt32(); this.bsProperties[1] = reader.ReadInt32(); } } else { this.hasShader = Utils.ReadBool(reader); if (!this.hasShader) { return; } this.shaderName = Utils.ReadSizedString(reader); this.unknownInt = reader.ReadInt32(); } }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); this.shaderFlags1 = reader.ReadUInt32(); this.shaderFlags2 = reader.ReadUInt32(); this.uvOffset = Utils.ReadUVCoord(reader); this.uvScale = Utils.ReadUVCoord(reader); this.sourceTexture = Utils.ReadSizedString(reader); this.textureClampMode = reader.ReadUInt32(); this.falloffStartAngle = reader.ReadSingle(); this.falloffStopAngle = reader.ReadSingle(); this.falloffStartOpacity = reader.ReadSingle(); this.falloffStopOpacity = reader.ReadSingle(); this.emissiveColor = Utils.ReadColor4(reader); this.emissiveMultiple = reader.ReadSingle(); this.softFalloffDepth = reader.ReadSingle(); this.greyscaleTexture = Utils.ReadSizedString(reader); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { this.envMapTexture = Utils.ReadSizedString(reader); this.normalTexture = Utils.ReadSizedString(reader); this.envMaskTexture = Utils.ReadSizedString(reader); this.enviromentMapScale = reader.ReadSingle(); } }
public override uint GetSize(NiHeader header) { if (header.GetUserVersion2() == 100 || header.GetUserVersion2() == 130) { return(base.GetSize(header) + 28U); } else { if (header.GetVersion() > 335544325U) { if (header.GetUserVersion() == 12) { return(base.GetSize(header) + 25U + this.numMaterials * (uint)this.materialNames.Count + this.numMaterials * (uint)this.materialExtraData.Count); } else { return(base.GetSize(header) + 17U + this.numMaterials * (uint)this.materialNames.Count + this.numMaterials * (uint)this.materialExtraData.Count); } } else { if (this.hasShader) { return(base.GetSize(header) + 13U + (uint)this.shaderName.Length); } else { return(base.GetSize(header) + 9U); } } } }
public override void Write(NiHeader header, BinaryWriter writer) { List <int> blockReferences = header.GetBlockReferences(); if (blockReferences.Count > 0) { if (this.collisionObject != -1) { this.collisionObject = blockReferences[this.collisionObject]; } } base.Write(header, writer); writer.Write(this.flags); if ((header.GetUserVersion() >= 11U) && (header.GetUserVersion2() >= 26U)) { writer.Write(this.flags2); } Utils.WriteVector3(writer, this.translation); Utils.WriteMatrix33(writer, this.rotation); writer.Write(this.scale); if ((header.GetVersion() <= 335544325U) || (header.GetUserVersion() <= 11U)) { writer.Write((uint)this.properties.Count); for (int index = 0; (long)index < this.properties.Count; ++index) { if (blockReferences.Count > 0) { this.properties[index] = blockReferences[this.properties[index]]; } writer.Write(this.properties[index]); } } writer.Write(this.collisionObject); }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); if (!((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21))) { this.ambientColor = Utils.ReadColor3(reader); this.diffuseColor = Utils.ReadColor3(reader); } this.specularColor = Utils.ReadColor3(reader); this.emissiveColor = Utils.ReadColor3(reader); this.glossiness = reader.ReadSingle(); this.alpha = reader.ReadSingle(); if ((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21)) { this.emitMulti = reader.ReadSingle(); } }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); if (header.GetVersion() > 335544325U) this.stringDataIdx = reader.ReadInt32(); else this.stringData = Utils.ReadSizedString(reader); }
public override void Write(NiHeader header, BinaryWriter writer) { base.Write(header, writer); if (!((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21))) { Utils.WriteColor3(writer, this.ambientColor); Utils.WriteColor3(writer, this.diffuseColor); } Utils.WriteColor3(writer, this.specularColor); Utils.WriteColor3(writer, this.emissiveColor); writer.Write(this.glossiness); writer.Write(this.alpha); if ((header.GetVersion() == 335675399U) && (header.GetUserVersion() >= 11) && (header.GetUserVersion2() > 21)) { writer.Write(this.emitMulti); } }
public override void Read(NiHeader header, BinaryReader reader) { Utils.ReadString(reader, header.GetVersion(), out this.nameIdx, out this.name); this.numExtraData = reader.ReadUInt32(); for (int index = 0; (long)index < (long)this.numExtraData; ++index) { this.extraData.Add(reader.ReadInt32()); } this.controller = reader.ReadInt32(); }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); if (header.GetVersion() > 335544325U) { this.nameIdx = reader.ReadInt32(); } else { this.name = Utils.ReadSizedString(reader); } }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); if (header.GetVersion() <= 335544325U) { this.stencilEnabled = reader.ReadByte(); this.stencilFunction = reader.ReadUInt32(); this.stencilRef = reader.ReadUInt32(); this.stencilMask = reader.ReadUInt32(); this.failAction = reader.ReadUInt32(); this.zFailAction = reader.ReadUInt32(); this.passAction = reader.ReadUInt32(); this.drawMode = reader.ReadUInt32(); } if (header.GetVersion() >= 335609859U) { this.flags = reader.ReadUInt16(); this.stencilRef = reader.ReadUInt32(); this.stencilMask = reader.ReadUInt32(); } }
public override uint GetSize(NiHeader header) { uint size = base.GetSize(header) + 58U; if ((header.GetUserVersion() >= 11U) && (header.GetUserVersion2() >= 26U)) { size += 2; } if ((header.GetVersion() <= 335544325U) || (header.GetUserVersion() <= 11U)) { size += 4 + 4 * (uint)this.properties.Count; } return(size); }
public override void Write(NiHeader header, BinaryWriter writer) { List <int> blockReferences = header.GetBlockReferences(); if (blockReferences.Count > 0) { if (this.controller != -1) { this.controller = blockReferences[this.controller]; } } base.Write(header, writer); if (header.GetVersion() <= 335544325U) { if (this.name != "") { Utils.WriteSizedString(writer, this.name); } else if (this.nameIdx == -1) { Utils.WriteSizedString(writer, "Scene Root"); } else { Utils.WriteSizedString(writer, header.GetString((uint)this.nameIdx)); } } else { writer.Write(this.nameIdx); } writer.Write(this.extraData.Count); if (this.extraData.Count > 0) { for (int index = 0; index < this.extraData.Count; index++) { if (blockReferences.Count > 0) { if (this.extraData[index] != -1) { this.extraData[index] = blockReferences[this.extraData[index]]; } } writer.Write(this.extraData[index]); } } writer.Write(controller); }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); this.flags = reader.ReadUInt16(); if ((header.GetUserVersion() >= 11U) && (header.GetUserVersion2() >= 26U)) { this.flags2 = reader.ReadUInt16(); } this.translation = Utils.ReadVector3(reader); this.rotation = Utils.ReadMatrix33(reader); this.scale = reader.ReadSingle(); if ((header.GetVersion() <= 335544325U) || (header.GetUserVersion() <= 11U)) { this.numProperties = reader.ReadUInt32(); for (int index = 0; (long)index < (long)this.numProperties; ++index) { this.properties.Add(reader.ReadInt32()); } } this.collisionObject = reader.ReadInt32(); }
public override uint GetSize(NiHeader header) { uint num = base.GetSize(header) + 88U; if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { num += 40U; } if ((int)this.shaderType == 1) { num += 4U; } else if ((int)this.shaderType == 5) { num += 12U; } else if ((int)this.shaderType == 6) { num += 12U; } else if ((int)this.shaderType == 7) { num += 8U; } else if ((int)this.shaderType == 11) { num += 20U; } else if ((int)this.shaderType == 14) { num += 16U; } else if ((int)this.shaderType == 16) { num += 28U; } return(num); }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); this.data = reader.ReadInt32(); this.skinInstance = reader.ReadInt32(); if (header.GetVersion() > 335544325U) { this.numMaterials = reader.ReadUInt32(); for (int index = 0; (long)index < (long)this.numMaterials; ++index) this.materialNames.Add(reader.ReadUInt32()); for (int index = 0; (long)index < (long)this.numMaterials; ++index) this.materialExtraData.Add(reader.ReadInt32()); this.activeMaterial = reader.ReadInt32(); this.dirtyFlag = Utils.ReadBool(reader); if (header.GetUserVersion() == 12) { this.bsProperties[0] = reader.ReadInt32(); this.bsProperties[1] = reader.ReadInt32(); } } else { this.hasShader = Utils.ReadBool(reader); if (!this.hasShader) return; this.shaderName = Utils.ReadSizedString(reader); this.unknownInt = reader.ReadInt32(); } }
public override void Read(NiHeader header, BinaryReader reader) { base.Read(header, reader); this.flags = reader.ReadUInt16(); if ((header.GetUserVersion() >= 11U) && (header.GetUserVersion2() >= 26U)) this.flags2 = reader.ReadUInt16(); this.translation = Utils.ReadVector3(reader); this.rotation = Utils.ReadMatrix33(reader); this.scale = reader.ReadSingle(); if ((header.GetVersion() <= 335544325U) || (header.GetUserVersion() <= 11U)) { this.numProperties = reader.ReadUInt32(); for (int index = 0; (long)index < (long)this.numProperties; ++index) this.properties.Add(reader.ReadInt32()); } else { } this.collisionObject = reader.ReadInt32(); }
public override void Read(NiHeader header, BinaryReader reader) { this.shaderType = reader.ReadUInt32(); base.Read(header, reader); this.shaderFlags1 = reader.ReadUInt32(); this.shaderFlags2 = reader.ReadUInt32(); this.uvOffset = Utils.ReadUVCoord(reader); this.uvScale = Utils.ReadUVCoord(reader); this.textureSet = reader.ReadInt32(); this.emissiveColor = Utils.ReadColor3(reader); this.emissiveMultiple = reader.ReadSingle(); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { this.wetMaterialIdx = reader.ReadInt32(); if (this.wetMaterialIdx != -1) { this.wetMaterialName = header.GetString((uint)this.wetMaterialIdx); } } this.textureClampMode = reader.ReadUInt32(); this.alpha = reader.ReadSingle(); this.refractionStrength = reader.ReadSingle(); this.glossiness = reader.ReadSingle(); this.specularColor = Utils.ReadColor3(reader); this.specularStrength = reader.ReadSingle(); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { this.subsurfaceRolloff = reader.ReadSingle(); this.unkownFloat1 = reader.ReadSingle(); this.backlightPower = reader.ReadSingle(); this.grayscaleToPaletteScale = reader.ReadSingle(); this.fresnelPower = reader.ReadSingle(); this.wetnessSpecScale = reader.ReadSingle(); this.wetnessSpecPower = reader.ReadSingle(); this.wetnessMinVar = reader.ReadSingle(); this.wetnessEnvMapScale = reader.ReadSingle(); this.wetnessFresnelPower = reader.ReadSingle(); this.wetnessMetalness = reader.ReadSingle(); } else { this.lightingEffect1 = reader.ReadSingle(); this.lightingEffect2 = reader.ReadSingle(); } if ((int)this.shaderType == 1) { this.environmentMapScale = reader.ReadSingle(); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { this.unkownEnvMapInt = reader.ReadUInt16(); } } else if ((int)this.shaderType == 5) { this.skinTintColor = Utils.ReadColor3(reader); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { this.unkownSkinTintInt = reader.ReadUInt32(); } } else if ((int)this.shaderType == 6) { this.hairTintColor = Utils.ReadColor3(reader); } else if ((int)this.shaderType == 7) { this.maxPasses = reader.ReadSingle(); this.scale = reader.ReadSingle(); } else if ((int)this.shaderType == 11) { this.parallaxInnerLayerThickness = reader.ReadSingle(); this.parallaxRefractionScale = reader.ReadSingle(); this.parallaxInnerLayerTextureScale = Utils.ReadUVCoord(reader); this.parallaxEnvmapStrength = reader.ReadSingle(); } else if ((int)this.shaderType == 14) { this.sparkleParameters = Utils.ReadVector4(reader); } else { if ((int)this.shaderType != 16) { return; } this.eyeCubemapScale = reader.ReadSingle(); this.leftEyeReflectionCenter = Utils.ReadVector3(reader); this.rightEyeReflectionCenter = Utils.ReadVector3(reader); } }
public override void Write(NiHeader header, BinaryWriter writer) { List <int> blockReferences = header.GetBlockReferences(); if (blockReferences.Count > 0) { if (this.skinInstance != -1) { this.skinInstance = blockReferences[this.skinInstance]; } if (this.bsProperties[0] != -1) { this.bsProperties[0] = blockReferences[this.bsProperties[0]]; } if (this.bsProperties[1] != -1) { this.bsProperties[1] = blockReferences[this.bsProperties[1]]; } } base.Write(header, writer); /*if (header.GetUserVersion2() == 100 || header.GetUserVersion2() == 130) * { * Utils.WriteVector3(writer, this.center); * writer.Write(this.radius); * writer.Write(this.skinInstance); * writer.Write(this.bsProperties[0]); * writer.Write(this.bsProperties[1]); * } * else*/ { writer.Write(this.data); writer.Write(this.skinInstance); if (header.GetVersion() > 335544325U) { writer.Write(this.numMaterials); for (int index = 0; (long)index < (long)this.numMaterials; ++index) { writer.Write(this.materialNames[index]); } for (int index = 0; (long)index < (long)this.numMaterials; ++index) { writer.Write(this.materialExtraData[index]); } writer.Write(this.activeMaterial); Utils.WriteBool(writer, this.dirtyFlag); if (header.GetUserVersion() == 12) { writer.Write(this.bsProperties[0]); writer.Write(this.bsProperties[1]); } } else { Utils.WriteBool(writer, this.hasShader); if (!this.hasShader) { return; } Utils.WriteSizedString(writer, this.shaderName); writer.Write(this.unknownInt); } } }
public override void Write(NiHeader header, BinaryWriter writer) { List <int> blockReferences = header.GetBlockReferences(); if (blockReferences.Count > 0) { if (this.textureSet != -1) { this.textureSet = blockReferences[this.textureSet]; } } writer.Write(this.shaderType); base.Write(header, writer); writer.Write(this.shaderFlags1); writer.Write(this.shaderFlags2); Utils.WriteUVCoord(writer, this.uvOffset); Utils.WriteUVCoord(writer, this.uvScale); writer.Write(this.textureSet); Utils.WriteColor3(writer, this.emissiveColor); writer.Write(this.emissiveMultiple); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { writer.Write(this.wetMaterialIdx); } writer.Write(this.textureClampMode); writer.Write(this.alpha); writer.Write(this.refractionStrength); writer.Write(this.glossiness); Utils.WriteColor3(writer, this.specularColor); writer.Write(this.specularStrength); if (header.GetVersion() == 335675399U && header.GetUserVersion2() == 130) { writer.Write(this.subsurfaceRolloff); writer.Write(this.unkownFloat1); writer.Write(this.backlightPower); writer.Write(this.grayscaleToPaletteScale); writer.Write(this.fresnelPower); writer.Write(this.wetnessSpecScale); writer.Write(this.wetnessSpecPower); writer.Write(this.wetnessMinVar); writer.Write(this.wetnessEnvMapScale); writer.Write(this.wetnessFresnelPower); writer.Write(this.wetnessMetalness); } else { writer.Write(this.lightingEffect1); writer.Write(this.lightingEffect2); } if ((int)this.shaderType == 1) { writer.Write(this.environmentMapScale); } else if ((int)this.shaderType == 5) { Utils.WriteColor3(writer, this.skinTintColor); } else if ((int)this.shaderType == 6) { Utils.WriteColor3(writer, this.hairTintColor); } else if ((int)this.shaderType == 7) { writer.Write(this.maxPasses); writer.Write(this.scale); } else if ((int)this.shaderType == 11) { writer.Write(this.parallaxInnerLayerThickness); writer.Write(this.parallaxRefractionScale); Utils.WriteUVCoord(writer, this.parallaxInnerLayerTextureScale); writer.Write(this.parallaxEnvmapStrength); } else if ((int)this.shaderType == 14) { Utils.WriteVector4(writer, this.sparkleParameters); } else { if ((int)this.shaderType != 16) { return; } writer.Write(this.eyeCubemapScale); Utils.WriteVector3(writer, this.leftEyeReflectionCenter); Utils.WriteVector3(writer, this.rightEyeReflectionCenter); } }