protected override void ReadData(ESPReader reader) { using (MemoryStream stream = new MemoryStream(reader.ReadBytes(size))) using (ESPReader subReader = new ESPReader(stream, reader.Plugin)) { try { Unknown = subReader.ReadBytes(16); WaterPropertiesSunPower = subReader.ReadSingle(); WaterPropertiesReflectivityAmount = subReader.ReadSingle(); WaterPropertiesFresnelAmount = subReader.ReadSingle(); Unused1 = subReader.ReadBytes(4); FogPropertiesAboveWaterFogNearPlaneDistance = subReader.ReadSingle(); FogPropertiesAboveWaterFogFarPlaneDistance = subReader.ReadSingle(); ColorShallow.ReadBinary(subReader); ColorDeep.ReadBinary(subReader); ColorReflection.ReadBinary(subReader); Unused2 = subReader.ReadBytes(4); RainSimulatorForce = subReader.ReadSingle(); RainSimulatorVelocity = subReader.ReadSingle(); RainSimulatorFalloff = subReader.ReadSingle(); RainSimulatorDampener = subReader.ReadSingle(); DisplacementSimulatorStartingSize = subReader.ReadSingle(); DisplacementSimulatorForce = subReader.ReadSingle(); DisplacementSimulatorVelocity = subReader.ReadSingle(); DisplacementSimulatorFalloff = subReader.ReadSingle(); DisplacementSimulatorDampener = subReader.ReadSingle(); RainSimulatorStartingSize = subReader.ReadSingle(); NoisePropertiesNormalsNoiseScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerOneWindDirection = subReader.ReadSingle(); NoisePropertiesNoiseLayerTwoWindDirection = subReader.ReadSingle(); NoisePropertiesNoiseLayerThreeWindDirection = subReader.ReadSingle(); NoisePropertiesNoiseLayerOneWindSpeed = subReader.ReadSingle(); NoisePropertiesNoiseLayerTwoWindSpeed = subReader.ReadSingle(); NoisePropertiesNoiseLayerThreeWindSpeed = subReader.ReadSingle(); NoisePropertiesNormalsDepthFalloffStart = subReader.ReadSingle(); NoisePropertiesNormalsDepthFalloffEnd = subReader.ReadSingle(); FogPropertiesAboveWaterFogAmount = subReader.ReadSingle(); NoisePropertiesNormalsUVScale = subReader.ReadSingle(); FogPropertiesUnderWaterFogAmount = subReader.ReadSingle(); FogPropertiesUnderWaterFogNearPlaneDistance = subReader.ReadSingle(); FogPropertiesUnderWaterFogFarPlaneDistance = subReader.ReadSingle(); WaterPropertiesDistortionAmount = subReader.ReadSingle(); WaterPropertiesShininess = subReader.ReadSingle(); WaterPropertiesReflectionHDRMult = subReader.ReadSingle(); WaterPropertiesLightRadius = subReader.ReadSingle(); WaterPropertiesLightBrightness = subReader.ReadSingle(); NoisePropertiesNoiseLayerOneUVScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerTwoUVScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerThreeUVScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerOneAmplitudeScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerTwoAmplitudeScale = subReader.ReadSingle(); NoisePropertiesNoiseLayerThreeAmplitudeScale = subReader.ReadSingle(); } catch { return; } } }
protected override void ReadDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("Unknown", false, out subEle)) { Unknown = subEle.ToBytes(); } if (ele.TryPathTo("WaterProperties/SunPower", false, out subEle)) { WaterPropertiesSunPower = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/ReflectivityAmount", false, out subEle)) { WaterPropertiesReflectivityAmount = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/FresnelAmount", false, out subEle)) { WaterPropertiesFresnelAmount = subEle.ToSingle(); } ReadUnused1XML(ele, master); if (ele.TryPathTo("FogProperties/AboveWater/FogNearPlaneDistance", false, out subEle)) { FogPropertiesAboveWaterFogNearPlaneDistance = subEle.ToSingle(); } if (ele.TryPathTo("FogProperties/AboveWater/FogFarPlaneDistance", false, out subEle)) { FogPropertiesAboveWaterFogFarPlaneDistance = subEle.ToSingle(); } if (ele.TryPathTo("Color/Shallow", false, out subEle)) { ColorShallow.ReadXML(subEle, master); } if (ele.TryPathTo("Color/Deep", false, out subEle)) { ColorDeep.ReadXML(subEle, master); } if (ele.TryPathTo("Color/Reflection", false, out subEle)) { ColorReflection.ReadXML(subEle, master); } ReadUnused2XML(ele, master); if (ele.TryPathTo("RainSimulator/Force", false, out subEle)) { RainSimulatorForce = subEle.ToSingle(); } if (ele.TryPathTo("RainSimulator/Velocity", false, out subEle)) { RainSimulatorVelocity = subEle.ToSingle(); } if (ele.TryPathTo("RainSimulator/Falloff", false, out subEle)) { RainSimulatorFalloff = subEle.ToSingle(); } if (ele.TryPathTo("RainSimulator/Dampener", false, out subEle)) { RainSimulatorDampener = subEle.ToSingle(); } if (ele.TryPathTo("DisplacementSimulator/StartingSize", false, out subEle)) { DisplacementSimulatorStartingSize = subEle.ToSingle(); } if (ele.TryPathTo("DisplacementSimulator/Force", false, out subEle)) { DisplacementSimulatorForce = subEle.ToSingle(); } if (ele.TryPathTo("DisplacementSimulator/Velocity", false, out subEle)) { DisplacementSimulatorVelocity = subEle.ToSingle(); } if (ele.TryPathTo("DisplacementSimulator/Falloff", false, out subEle)) { DisplacementSimulatorFalloff = subEle.ToSingle(); } if (ele.TryPathTo("DisplacementSimulator/Dampener", false, out subEle)) { DisplacementSimulatorDampener = subEle.ToSingle(); } if (ele.TryPathTo("RainSimulator/StartingSize", false, out subEle)) { RainSimulatorStartingSize = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/Normals/NoiseScale", false, out subEle)) { NoisePropertiesNormalsNoiseScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerOne/WindDirection", false, out subEle)) { NoisePropertiesNoiseLayerOneWindDirection = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerTwo/WindDirection", false, out subEle)) { NoisePropertiesNoiseLayerTwoWindDirection = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerThree/WindDirection", false, out subEle)) { NoisePropertiesNoiseLayerThreeWindDirection = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerOne/WindSpeed", false, out subEle)) { NoisePropertiesNoiseLayerOneWindSpeed = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerTwo/WindSpeed", false, out subEle)) { NoisePropertiesNoiseLayerTwoWindSpeed = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerThree/WindSpeed", false, out subEle)) { NoisePropertiesNoiseLayerThreeWindSpeed = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/Normals/DepthFalloff/Start", false, out subEle)) { NoisePropertiesNormalsDepthFalloffStart = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/Normals/DepthFalloff/End", false, out subEle)) { NoisePropertiesNormalsDepthFalloffEnd = subEle.ToSingle(); } if (ele.TryPathTo("FogProperties/AboveWater/FogAmount", false, out subEle)) { FogPropertiesAboveWaterFogAmount = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/Normals/UVScale", false, out subEle)) { NoisePropertiesNormalsUVScale = subEle.ToSingle(); } if (ele.TryPathTo("FogProperties/UnderWater/FogAmount", false, out subEle)) { FogPropertiesUnderWaterFogAmount = subEle.ToSingle(); } if (ele.TryPathTo("FogProperties/UnderWater/FogNearPlaneDistance", false, out subEle)) { FogPropertiesUnderWaterFogNearPlaneDistance = subEle.ToSingle(); } if (ele.TryPathTo("FogProperties/UnderWater/FogFarPlaneDistance", false, out subEle)) { FogPropertiesUnderWaterFogFarPlaneDistance = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/DistortionAmount", false, out subEle)) { WaterPropertiesDistortionAmount = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/Shininess", false, out subEle)) { WaterPropertiesShininess = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/ReflectionHDRMult", false, out subEle)) { WaterPropertiesReflectionHDRMult = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/LightRadius", false, out subEle)) { WaterPropertiesLightRadius = subEle.ToSingle(); } if (ele.TryPathTo("WaterProperties/LightBrightness", false, out subEle)) { WaterPropertiesLightBrightness = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerOne/UVScale", false, out subEle)) { NoisePropertiesNoiseLayerOneUVScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerTwo/UVScale", false, out subEle)) { NoisePropertiesNoiseLayerTwoUVScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerThree/UVScale", false, out subEle)) { NoisePropertiesNoiseLayerThreeUVScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerOne/AmplitudeScale", false, out subEle)) { NoisePropertiesNoiseLayerOneAmplitudeScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerTwo/AmplitudeScale", false, out subEle)) { NoisePropertiesNoiseLayerTwoAmplitudeScale = subEle.ToSingle(); } if (ele.TryPathTo("NoiseProperties/NoiseLayerThree/AmplitudeScale", false, out subEle)) { NoisePropertiesNoiseLayerThreeAmplitudeScale = subEle.ToSingle(); } if (ele.TryPathTo("Damage", false, out subEle)) { Damage = subEle.ToUInt16(); } }
protected override void WriteDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; ele.TryPathTo("Unknown", true, out subEle); subEle.Value = Unknown.ToHex(); ele.TryPathTo("WaterProperties/SunPower", true, out subEle); subEle.Value = WaterPropertiesSunPower.ToString("G15"); ele.TryPathTo("WaterProperties/ReflectivityAmount", true, out subEle); subEle.Value = WaterPropertiesReflectivityAmount.ToString("G15"); ele.TryPathTo("WaterProperties/FresnelAmount", true, out subEle); subEle.Value = WaterPropertiesFresnelAmount.ToString("G15"); WriteUnused1XML(ele, master); ele.TryPathTo("FogProperties/AboveWater/FogNearPlaneDistance", true, out subEle); subEle.Value = FogPropertiesAboveWaterFogNearPlaneDistance.ToString("G15"); ele.TryPathTo("FogProperties/AboveWater/FogFarPlaneDistance", true, out subEle); subEle.Value = FogPropertiesAboveWaterFogFarPlaneDistance.ToString("G15"); ele.TryPathTo("Color/Shallow", true, out subEle); ColorShallow.WriteXML(subEle, master); ele.TryPathTo("Color/Deep", true, out subEle); ColorDeep.WriteXML(subEle, master); ele.TryPathTo("Color/Reflection", true, out subEle); ColorReflection.WriteXML(subEle, master); WriteUnused2XML(ele, master); ele.TryPathTo("RainSimulator/Force", true, out subEle); subEle.Value = RainSimulatorForce.ToString("G15"); ele.TryPathTo("RainSimulator/Velocity", true, out subEle); subEle.Value = RainSimulatorVelocity.ToString("G15"); ele.TryPathTo("RainSimulator/Falloff", true, out subEle); subEle.Value = RainSimulatorFalloff.ToString("G15"); ele.TryPathTo("RainSimulator/Dampener", true, out subEle); subEle.Value = RainSimulatorDampener.ToString("G15"); ele.TryPathTo("DisplacementSimulator/StartingSize", true, out subEle); subEle.Value = DisplacementSimulatorStartingSize.ToString("G15"); ele.TryPathTo("DisplacementSimulator/Force", true, out subEle); subEle.Value = DisplacementSimulatorForce.ToString("G15"); ele.TryPathTo("DisplacementSimulator/Velocity", true, out subEle); subEle.Value = DisplacementSimulatorVelocity.ToString("G15"); ele.TryPathTo("DisplacementSimulator/Falloff", true, out subEle); subEle.Value = DisplacementSimulatorFalloff.ToString("G15"); ele.TryPathTo("DisplacementSimulator/Dampener", true, out subEle); subEle.Value = DisplacementSimulatorDampener.ToString("G15"); ele.TryPathTo("RainSimulator/StartingSize", true, out subEle); subEle.Value = RainSimulatorStartingSize.ToString("G15"); ele.TryPathTo("NoiseProperties/Normals/NoiseScale", true, out subEle); subEle.Value = NoisePropertiesNormalsNoiseScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerOne/WindDirection", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerOneWindDirection.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerTwo/WindDirection", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerTwoWindDirection.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerThree/WindDirection", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerThreeWindDirection.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerOne/WindSpeed", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerOneWindSpeed.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerTwo/WindSpeed", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerTwoWindSpeed.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerThree/WindSpeed", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerThreeWindSpeed.ToString("G15"); ele.TryPathTo("NoiseProperties/Normals/DepthFalloff/Start", true, out subEle); subEle.Value = NoisePropertiesNormalsDepthFalloffStart.ToString("G15"); ele.TryPathTo("NoiseProperties/Normals/DepthFalloff/End", true, out subEle); subEle.Value = NoisePropertiesNormalsDepthFalloffEnd.ToString("G15"); ele.TryPathTo("FogProperties/AboveWater/FogAmount", true, out subEle); subEle.Value = FogPropertiesAboveWaterFogAmount.ToString("G15"); ele.TryPathTo("NoiseProperties/Normals/UVScale", true, out subEle); subEle.Value = NoisePropertiesNormalsUVScale.ToString("G15"); ele.TryPathTo("FogProperties/UnderWater/FogAmount", true, out subEle); subEle.Value = FogPropertiesUnderWaterFogAmount.ToString("G15"); ele.TryPathTo("FogProperties/UnderWater/FogNearPlaneDistance", true, out subEle); subEle.Value = FogPropertiesUnderWaterFogNearPlaneDistance.ToString("G15"); ele.TryPathTo("FogProperties/UnderWater/FogFarPlaneDistance", true, out subEle); subEle.Value = FogPropertiesUnderWaterFogFarPlaneDistance.ToString("G15"); ele.TryPathTo("WaterProperties/DistortionAmount", true, out subEle); subEle.Value = WaterPropertiesDistortionAmount.ToString("G15"); ele.TryPathTo("WaterProperties/Shininess", true, out subEle); subEle.Value = WaterPropertiesShininess.ToString("G15"); ele.TryPathTo("WaterProperties/ReflectionHDRMult", true, out subEle); subEle.Value = WaterPropertiesReflectionHDRMult.ToString("G15"); ele.TryPathTo("WaterProperties/LightRadius", true, out subEle); subEle.Value = WaterPropertiesLightRadius.ToString("G15"); ele.TryPathTo("WaterProperties/LightBrightness", true, out subEle); subEle.Value = WaterPropertiesLightBrightness.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerOne/UVScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerOneUVScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerTwo/UVScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerTwoUVScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerThree/UVScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerThreeUVScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerOne/AmplitudeScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerOneAmplitudeScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerTwo/AmplitudeScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerTwoAmplitudeScale.ToString("G15"); ele.TryPathTo("NoiseProperties/NoiseLayerThree/AmplitudeScale", true, out subEle); subEle.Value = NoisePropertiesNoiseLayerThreeAmplitudeScale.ToString("G15"); ele.TryPathTo("Damage", true, out subEle); subEle.Value = Damage.ToString(); }
protected override void WriteData(ESPWriter writer) { if (Unknown == null) { writer.Write(new byte[16]); } else { writer.Write(Unknown); } writer.Write(WaterPropertiesSunPower); writer.Write(WaterPropertiesReflectivityAmount); writer.Write(WaterPropertiesFresnelAmount); if (Unused1 == null) { writer.Write(new byte[4]); } else { writer.Write(Unused1); } writer.Write(FogPropertiesAboveWaterFogNearPlaneDistance); writer.Write(FogPropertiesAboveWaterFogFarPlaneDistance); ColorShallow.WriteBinary(writer); ColorDeep.WriteBinary(writer); ColorReflection.WriteBinary(writer); if (Unused2 == null) { writer.Write(new byte[4]); } else { writer.Write(Unused2); } writer.Write(RainSimulatorForce); writer.Write(RainSimulatorVelocity); writer.Write(RainSimulatorFalloff); writer.Write(RainSimulatorDampener); writer.Write(DisplacementSimulatorStartingSize); writer.Write(DisplacementSimulatorForce); writer.Write(DisplacementSimulatorVelocity); writer.Write(DisplacementSimulatorFalloff); writer.Write(DisplacementSimulatorDampener); writer.Write(RainSimulatorStartingSize); writer.Write(NoisePropertiesNormalsNoiseScale); writer.Write(NoisePropertiesNoiseLayerOneWindDirection); writer.Write(NoisePropertiesNoiseLayerTwoWindDirection); writer.Write(NoisePropertiesNoiseLayerThreeWindDirection); writer.Write(NoisePropertiesNoiseLayerOneWindSpeed); writer.Write(NoisePropertiesNoiseLayerTwoWindSpeed); writer.Write(NoisePropertiesNoiseLayerThreeWindSpeed); writer.Write(NoisePropertiesNormalsDepthFalloffStart); writer.Write(NoisePropertiesNormalsDepthFalloffEnd); writer.Write(FogPropertiesAboveWaterFogAmount); writer.Write(NoisePropertiesNormalsUVScale); writer.Write(FogPropertiesUnderWaterFogAmount); writer.Write(FogPropertiesUnderWaterFogNearPlaneDistance); writer.Write(FogPropertiesUnderWaterFogFarPlaneDistance); writer.Write(WaterPropertiesDistortionAmount); writer.Write(WaterPropertiesShininess); writer.Write(WaterPropertiesReflectionHDRMult); writer.Write(WaterPropertiesLightRadius); writer.Write(WaterPropertiesLightBrightness); writer.Write(NoisePropertiesNoiseLayerOneUVScale); writer.Write(NoisePropertiesNoiseLayerTwoUVScale); writer.Write(NoisePropertiesNoiseLayerThreeUVScale); writer.Write(NoisePropertiesNoiseLayerOneAmplitudeScale); writer.Write(NoisePropertiesNoiseLayerTwoAmplitudeScale); writer.Write(NoisePropertiesNoiseLayerThreeAmplitudeScale); writer.Write(Damage); }