using UnityEngine; namespace Artngame.SKYMASTER { public class volumeCloudsTornadoControl : MonoBehaviour { public bool copyCloudParamsToRefl; public CloudScript volumeclouds; public CloudScriptTRANSP volumecloudsTRANSP; public CloudScript CloudReflection; public Material grassMat; public bool applyGrassVortex; public Material waterMat; public bool applyWaterVortex; public float vortexRadius = 115f; public Vector4 vortexInteractAmpFreqRadial = new Vector4(-107f, 11f, 39f, 318f); public Transform tornadoTop; public Transform tornadoBottom; public float posMultiplierX = 1f; public float posMultiplierZ = 1f; public float posMultiplierXW = 1f; public float posMultiplierZW = 1f; public float posOffsetX; public float posOffsetZ; private void Start() { } private void Update() { if (copyCloudParamsToRefl && CloudReflection != null) { CloudReflection.density = volumeclouds.density; CloudReflection.coverage = volumeclouds.coverage; CloudReflection.scale = volumeclouds.scale; CloudReflection.detailScale = volumeclouds.detailScale; CloudReflection.lowFreqMin = volumeclouds.lowFreqMin; CloudReflection.lowFreqMax = volumeclouds.lowFreqMax; CloudReflection.highFreqModifier = volumeclouds.highFreqModifier; CloudReflection.weatherScale = volumeclouds.weatherScale; CloudReflection.startHeight = volumeclouds.startHeight; CloudReflection.thickness = volumeclouds.thickness; CloudReflection.planetSize = volumeclouds.planetSize; CloudReflection.cloudSampleMultiplier = volumeclouds.cloudSampleMultiplier; CloudReflection.globalMultiplier = volumeclouds.globalMultiplier; CloudReflection.windSpeed = volumeclouds.windSpeed; CloudReflection.windDirection = volumeclouds.windDirection; CloudReflection.coverageWindSpeed = volumeclouds.coverageWindSpeed; CloudReflection.coverageWindDirection = volumeclouds.coverageWindDirection; } if (volumeclouds != null && tornadoTop != null) { volumeclouds.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ); } if (volumecloudsTRANSP != null && tornadoTop != null) { volumecloudsTRANSP.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ); } if (CloudReflection != null && tornadoTop != null) { CloudReflection.vortexPosition = new Vector3(tornadoTop.position.x * posMultiplierX + posOffsetX, 0f, tornadoTop.position.z * posMultiplierZ + posOffsetZ); } if (applyWaterVortex && waterMat != null) { waterMat.SetVector("vortexPosScale", new Vector4(tornadoBottom.position.x * posMultiplierXW + posOffsetX, 0f, tornadoBottom.position.z * posMultiplierZW + posOffsetZ, vortexRadius)); waterMat.SetVector("_InteractAmpFreqRad", vortexInteractAmpFreqRadial); } } } }