Files
2026-03-04 10:03:45 +08:00

1299 lines
69 KiB
C#

using UnityEngine;
namespace Artngame.SKYMASTER
{
[ExecuteInEditMode]
public class WaterHandlerSM : MonoBehaviour
{
public enum WaterPreset
{
Custom = 0,
Emerald = 1,
Muddy = 2,
Caribbean = 3,
River = 4,
Ocean = 5,
DarkOcean = 6,
FocusOcean = 7,
SmallWaves = 8,
Lake = 9,
Atoll = 10,
Mobile = 11,
LitOcean = 12
}
public enum UnderWaterPreset
{
Custom = 0,
Fancy = 1,
Turbulent = 2,
Calm = 3
}
public float foamExtendOffset;
public Color FogTint = new Color(1f, 1f, 1f, 1f);
public bool useCloudGradFogTint;
public float volumeFogDensityUnderwater = 50f;
private float volumeFogDensityOverwater;
private bool toggledUnderwater;
public float autoColorfogBrightness = 0.77f;
public float underwaterFogDensity = 0.05f;
public Color underwaterFogColorShader = new Color(26f / 51f, 0.827451f, 0.9411765f, 1f);
public Color fogColorShaderDay = new Color(0.87f, 0.87f, 0.9f, 1f);
public Color fogColorShaderDusk = new Color(0.7f, 0.5f, 0.55f, 1f);
public Color fogColorShaderDawn = new Color(0.7f, 0.5f, 0.72f, 1f);
public Color fogStormColorShader = new Color(0.1f, 0.1f, 0.1f, 1f);
public float fogDensity = 0.4f;
public float fogBias = 2f;
public float fogStartDistance = 1000f;
public float underwaterfogDensity = 1f;
public float underwaterfogBias = 15f;
public float underwaterfogStartDistance = 20f;
public bool UseSkyGradient;
public float GradReflIntensity = 0.7f;
public float GradTransp = 0.7f;
public WaterHeightSM heightController;
public bool UnderOnWave;
public float TransYOffset = 1f;
public bool followCamera;
public bool DisableUnderwater;
public float HeightSpecularCorrect;
public float RefractOffset;
public float BumpFocusOffset;
public float FresnelOffset;
public float FresnelBias;
public Color ReflectColor;
public bool OverrideReflectColor;
public float TerrainScale = 500f;
public float ShoreWavesFade;
public Transform TerrainDepthCamera;
public TerrainDepthSM DepthRenderController;
public float FoamCutoff;
public float FoamOffset;
public AudioSource SeaAudio;
public bool DisableSeaAudio;
public float maxAudioVolume = 0.65f;
public float SoundFadeSpeed = 0.02f;
public float ShoreBlendOffset;
public float minShiftSpeed = 5f;
public Vector4 WaveAmpOffset = new Vector4(0f, 0f, 0f, 0f);
public Vector4 WaveFreqOffset = new Vector4(0f, 0f, 0f, 0f);
public Vector4 WaveSpeedOffset = new Vector4(0f, 0f, 0f, 0f);
public Vector4 WaveDir1Offset = new Vector4(0f, 0f, 0f, 0f);
public Vector4 WaveDir2Offset = new Vector4(0f, 0f, 0f, 0f);
public float DepthColorOffset;
public Vector4 ExtraWavesFactor = new Vector4(0f, 0f, 0f, 0f);
public Vector4 ExtraWavesFreqFactor = new Vector4(2.33f, 2.11f, 1.24f, 1f);
public Vector4 ExtraWavesAmpFactor = new Vector4(0.09f, 1f, 1f, 1f);
public Vector4 ExtraWavesDirFactor = new Vector4(-4.61f, 1f, 1f, 1f);
public Vector4 ExtraWavesSteepFactor = new Vector4(2f, 1f, 2f, 1f);
public Projector CausticsProjector;
public Material CausticsMat;
public float CausticIntensity = 0.4f;
public float CausticSize = 40f;
public WaterBaseSM WaterBase;
public float SunShaftsInt = 100f;
public float bumpTilingXoffset;
public float bumpTilingYoffset;
public float DepthFogSwitch = 10f;
public bool BelowWater;
public WaterPreset waterType = WaterPreset.Caribbean;
public UnderWaterPreset underWaterType = UnderWaterPreset.Turbulent;
public Vector3 waterScaleFactor = Vector3.one;
public Vector3 waterScaleOffset = Vector3.zero;
private bool prev_fog_setting;
private int prev_fog_mode;
private float prev_fog_density;
public UnderWaterImageEffect UnderwaterBlur;
public UnderWaterImageEffect UnderwaterBlurL;
public UnderWaterImageEffect UnderwaterBlurR;
private Color prev_fog_color;
private Vector2 PrevStartEndDist;
public Color Fog_Color = new Color(14f / 51f, 22f / 51f, 0.5254902f, 1f);
public SkyMasterManager SkyManager;
public Material oceanMat;
public Color NightWaterColor = new Color(10f / 51f, 10f / 51f, 10f / 51f, 1f);
public Color StormWaterColor = new Color(7f / 51f, 7f / 51f, 7f / 51f, 1f);
public Color SnowStormWaterColor = new Color(47f / 51f, 47f / 51f, 47f / 51f, 1f);
public Color DayWaterColor = new Color(0.35686275f, 0.54509807f, 43f / 85f, 0.81960785f);
public Color DuskWaterColor = new Color(0.7490196f, 33f / 85f, 7f / 15f, 0.81960785f);
public Color NightReflectColor = new Color(0f, 0f, 0f, 1f);
public Color DayReflectColor = new Color(0.050980393f, 49f / 51f, 1f, 22f / 51f);
public Color DuskReflectColor = new Color(0.88235295f, 43f / 51f, 43f / 51f, 25f / 51f);
public Color DayRiverColor = new Color(7f / 51f, 0.29411766f, 0.2627451f, 0.95686275f);
public Color DayRiverReflectColor = new Color(78f / 85f, 78f / 85f, 78f / 85f, 0.80784315f);
public Color DayOceanColor = new Color(8f / 51f, 20f / 51f, 0.3529412f, 40f / 51f);
public Color DayOceanReflectColor = new Color(0.5882353f, 0.8235294f, 46f / 51f, 0.5882353f);
public Color DarkOceanColor = new Color(12f / 85f, 0.23529412f, 10f / 51f, 0.9411765f);
public Color DarkOceanReflectColor = new Color(0.5882353f, 0.8235294f, 46f / 51f, 0.5882353f);
public Color MuddyWaterColor = new Color(50f / 51f, 5f / 51f, 0.29411766f, 41f / 51f);
public Color MuddyReflectColor = new Color(32f / 51f, 22f / 51f, 0.5294118f, 0.8235294f);
public Color EmeraldWaterColor = new Color(1f / 3f, 0.88235295f, 37f / 51f, 41f / 51f);
public Color EmeraldReflectColor = new Color(23f / 51f, 0.9411765f, 1f, 36f / 85f);
public Color AtollWaterColor = new Color(0.4627451f, 0.88235295f, 0.72156864f, 0.4117647f);
public Color AtollReflectColor = new Color(0.8235294f, 0.9411765f, 50f / 51f, 1f);
public Color MobileWaterColor = new Color(2f / 3f, 44f / 51f, 50f / 51f, 0.4117647f);
public Color MobileReflectColor = new Color(46f / 51f, 44f / 51f, 44f / 51f, 10f / 51f);
public SpecularLightingSM SpecularSource;
public Vector3 Water_start;
public Vector2 Water_size = new Vector2(0f, 0f);
public SeasonalTerrainSKYMASTER TerrainManager;
private Transform this_transf;
private Transform cam_transf;
private int prev_preset;
private void Start()
{
if (TerrainDepthCamera != null && oceanMat != null)
{
oceanMat.SetVector("_DepthCameraPos", new Vector4(TerrainDepthCamera.position.x, TerrainDepthCamera.position.y, TerrainDepthCamera.position.z, 1f));
}
if (oceanMat != null)
{
oceanMat.SetFloat("_ShoreFadeFactor", ShoreWavesFade);
oceanMat.SetFloat("_TerrainScale", TerrainScale);
}
if (UnderwaterBlur == null)
{
UnderwaterBlur = Camera.main.gameObject.GetComponent<UnderWaterImageEffect>();
if (UnderwaterBlur == null)
{
Debug.Log("Please add 'UnderWaterImageEffect' script to the main camera");
}
if (UnderwaterBlur != null)
{
UnderwaterBlur.enabled = false;
}
}
if (Application.isPlaying)
{
Water_start = base.transform.position;
this_transf = base.transform;
cam_transf = Camera.main.transform;
if (TerrainManager != null)
{
prev_preset = TerrainManager.FogPreset;
}
if (oceanMat == null)
{
oceanMat = GetComponentsInChildren<MeshRenderer>(includeInactive: true)[0].material;
}
SpecularSource = base.gameObject.GetComponent<SpecularLightingSM>();
if (RenderSettings.fogMode == FogMode.Exponential)
{
prev_fog_mode = 0;
}
if (RenderSettings.fogMode == FogMode.ExponentialSquared)
{
prev_fog_mode = 1;
}
if (RenderSettings.fogMode == FogMode.Linear)
{
prev_fog_mode = 2;
}
prev_fog_density = RenderSettings.fogDensity;
prev_fog_color = RenderSettings.fogColor;
PrevStartEndDist = new Vector2(RenderSettings.fogStartDistance, RenderSettings.fogEndDistance);
if (SkyManager != null && oceanMat != null)
{
UpdateWaterParams(Init: true);
}
}
}
public void DisableColliders()
{
MeshCollider[] componentsInChildren = base.gameObject.GetComponentsInChildren<MeshCollider>();
if (componentsInChildren != null && componentsInChildren.Length != 0)
{
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].enabled = false;
}
}
}
public void EnableColliders()
{
MeshCollider[] componentsInChildren = base.gameObject.GetComponentsInChildren<MeshCollider>();
if (componentsInChildren != null && componentsInChildren.Length != 0)
{
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].enabled = true;
}
}
}
public void UpdateWaterParams(bool Init)
{
bool flag = (SkyManager.AutoSunPosition && SkyManager.Rot_Sun_X > 0f) | (!SkyManager.AutoSunPosition && ((SkyManager.Current_Time > 9f + SkyManager.Shift_dawn) & (SkyManager.Current_Time <= SkyManager.NightTimeMax + SkyManager.Shift_dawn)));
bool flag2 = (SkyManager.AutoSunPosition && SkyManager.Rot_Sun_X < 5f) | (!SkyManager.AutoSunPosition && SkyManager.Current_Time > 21f + SkyManager.Shift_dawn);
bool flag3 = (SkyManager.AutoSunPosition && SkyManager.Rot_Sun_X > 65f) | (!SkyManager.AutoSunPosition && SkyManager.Current_Time > 17f + SkyManager.Shift_dawn);
float t = 0.1f * Time.deltaTime * (SkyManager.SPEED + minShiftSpeed);
if (Init)
{
t = 100000f;
if (!OverrideReflectColor)
{
ReflectColor = oceanMat.GetColor("_ReflectionColor");
}
}
Vector4 vector = oceanMat.GetVector("_Foam");
if (Init)
{
oceanMat.SetVector("_Foam", Vector4.Lerp(vector, new Vector4(0f + FoamOffset, 0f + FoamCutoff, -0.16f, -0.21f), t));
}
else
{
oceanMat.SetVector("_Foam", Vector4.Lerp(vector, new Vector4(0f + FoamOffset, 0f + FoamCutoff, -0.16f, -0.21f), t));
}
if (!UseSkyGradient)
{
if (OverrideReflectColor)
{
if (!Init)
{
oceanMat.SetColor("_ReflectionColor", ReflectColor);
}
}
else if (SkyManager.currentWeatherName == SkyMasterManager.Volume_Weather_types.HeavyStorm)
{
SpecularSource.specularLight = null;
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), StormWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), NightReflectColor, t));
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), fogStormColorShader, t));
}
else if (SkyManager.currentWeatherName == SkyMasterManager.Volume_Weather_types.SnowStorm)
{
SpecularSource.specularLight = null;
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), SnowStormWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), SnowStormWaterColor, t));
}
else if (flag)
{
SpecularSource.specularLight = SkyManager.SunObj.transform;
if (flag2)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DuskWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DuskReflectColor * 0.9f, t));
if (!BelowWater)
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), fogStormColorShader, t));
}
else
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), underwaterFogColorShader, t));
}
}
else if (flag3)
{
if (!BelowWater)
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), fogColorShaderDusk, t));
}
else
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), underwaterFogColorShader, t));
}
if (waterType == WaterPreset.Muddy)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), MuddyWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), MuddyReflectColor, t));
}
else if (waterType == WaterPreset.Atoll)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), AtollWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), AtollReflectColor, t));
}
else
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DuskWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DuskReflectColor, t));
}
}
else
{
if (!BelowWater)
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), fogColorShaderDay, t));
}
else
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), underwaterFogColorShader, t));
}
if (waterType != WaterPreset.Custom)
{
if ((waterType == WaterPreset.Caribbean) | (waterType == WaterPreset.FocusOcean))
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DayWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DayReflectColor, t));
}
else if (waterType == WaterPreset.Emerald)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), EmeraldWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), EmeraldReflectColor, t));
}
else if (waterType == WaterPreset.SmallWaves)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), EmeraldWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), EmeraldReflectColor, t));
}
else if (waterType == WaterPreset.Lake)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), EmeraldWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), EmeraldReflectColor, t));
}
else if (waterType == WaterPreset.Muddy)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), MuddyWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), MuddyReflectColor, t));
}
else if (waterType == WaterPreset.River)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DayRiverColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DayRiverReflectColor, t));
}
else if (waterType == WaterPreset.Ocean)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DayOceanColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DayOceanReflectColor, t));
}
else if (waterType == WaterPreset.DarkOcean)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DarkOceanColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DarkOceanReflectColor, t));
}
else if (waterType == WaterPreset.Atoll)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), AtollWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), AtollReflectColor, t));
}
else if (waterType == WaterPreset.Mobile)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), MobileWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), MobileReflectColor, t));
}
else
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), DayWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), DayReflectColor, t));
}
}
}
}
else
{
if (!BelowWater)
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), fogStormColorShader, t));
}
else
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), underwaterFogColorShader, t));
}
SpecularSource.specularLight = SkyManager.MOON_LIGHT.transform;
if (waterType == WaterPreset.Atoll)
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), AtollWaterColor * 0.6f, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), AtollReflectColor * 0.6f, t));
}
else
{
oceanMat.SetColor("_BaseColor", Color.Lerp(oceanMat.GetColor("_BaseColor"), NightWaterColor, t));
oceanMat.SetColor("_ReflectionColor", Color.Lerp(oceanMat.GetColor("_ReflectionColor"), NightReflectColor, t));
}
}
}
if (UseSkyGradient && SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm && SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStormDark)
{
Color gradSkyColor = SkyManager.gradSkyColor;
gradSkyColor *= Mathf.Clamp01(1.2f + (SkyManager.m_Coloration + SkyManager.SkyColorationOffset));
Color color = new Color(Mathf.Pow(gradSkyColor.r, SkyManager.FogWaterPow), Mathf.Pow(gradSkyColor.g, SkyManager.FogWaterPow), Mathf.Pow(gradSkyColor.b, SkyManager.FogWaterPow), GradReflIntensity);
if (!Application.isPlaying && !BelowWater)
{
oceanMat.SetColor("_ReflectionColor", color);
}
OverrideReflectColor = true;
if (Application.isPlaying)
{
ReflectColor = Color.Lerp(ReflectColor, color, Time.deltaTime * 0.1f);
}
else
{
ReflectColor = color;
}
oceanMat.SetColor("_BaseColor", new Color(gradSkyColor.r * 0.5f, gradSkyColor.g * 0.5f, gradSkyColor.b * 0.5f, GradTransp));
if (useCloudGradFogTint)
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), new Color(gradSkyColor.r * autoColorfogBrightness, gradSkyColor.g * autoColorfogBrightness, gradSkyColor.b * autoColorfogBrightness, 1f) * SkyManager.gradCloudFogColor, t));
}
else
{
oceanMat.SetColor("fogColor", Color.Lerp(oceanMat.GetColor("fogColor"), new Color(gradSkyColor.r * autoColorfogBrightness, gradSkyColor.g * autoColorfogBrightness, gradSkyColor.b * autoColorfogBrightness, 1f) * FogTint, t));
}
}
float num = SkyManager.SPEED + minShiftSpeed;
float num2 = Time.deltaTime;
if (Init)
{
num = 10000f;
num2 = 10000f;
}
if (cam_transf != null && cam_transf.position.y < this_transf.position.y && !DisableUnderwater)
{
oceanMat.SetFloat("fogDepth", Mathf.Lerp(oceanMat.GetFloat("fogDepth"), underwaterfogDensity, num2 * num * 10f));
oceanMat.SetFloat("fogBias", Mathf.Lerp(oceanMat.GetFloat("fogBias"), underwaterfogBias, num2 * num * 10f));
oceanMat.SetFloat("fogThres", Mathf.Lerp(oceanMat.GetFloat("fogThres"), underwaterfogStartDistance, num2 * num * 10f));
if (underWaterType != UnderWaterPreset.Custom)
{
if (underWaterType == UnderWaterPreset.Fancy)
{
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.17f, 0.27f * num2 * num));
float num3 = 2E-05f;
float num4 = 1.6E-05f;
float num5 = -582f;
num3 = 1f;
num4 = 1f;
num5 = 0f - SunShaftsInt;
float num6 = this_transf.position.y - cam_transf.position.y;
if (cam_transf.position.y < this_transf.position.y - DepthFogSwitch)
{
if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector2 = oceanMat.GetVector("_InvFadeParemeter");
float num7 = num5 + (num6 - DepthFogSwitch) * 35f;
if (num7 > 5f)
{
num7 = 5f;
}
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector2, new Vector4(num3 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num7), 222.57f * num2 * num));
}
else
{
Vector4 vector3 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector3, new Vector4(num3 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 1f), 22.57f * num2 * num));
}
}
else if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector4 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector4, new Vector4(num4 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num5), 225.57f * num2 * num));
}
else
{
Vector4 vector5 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector5, new Vector4(num4 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 1f), 222.57f * num2 * num));
}
Vector4 vector6 = oceanMat.GetVector("_DistortParams");
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector6, new Vector4(7.82f, 0.1f, -0.74f, 569.9f), 0.27f * num2 * num));
Vector4 vector7 = oceanMat.GetVector("_BumpTiling");
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector7, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
}
else if (underWaterType == UnderWaterPreset.Turbulent)
{
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 329f, 0.27f * num2 * num));
float num8 = 2E-05f;
float num9 = 1.6E-05f;
float num10 = -582f;
num8 = 1.81f;
num9 = 1.81f;
num10 = 0f - SunShaftsInt - 200f;
float num11 = this_transf.position.y - cam_transf.position.y;
if (cam_transf.position.y < this_transf.position.y - DepthFogSwitch)
{
if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector8 = oceanMat.GetVector("_InvFadeParemeter");
float num12 = num10 + (num11 - DepthFogSwitch) * 35f;
if (num12 > 5f)
{
num12 = 5f;
}
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector8, new Vector4(num8 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num12), 222.57f * num2 * num));
}
else
{
Vector4 vector9 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector9, new Vector4(num8 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 1f), 22.57f * num2 * num));
}
}
else if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector10 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector10, new Vector4(num9 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num10), 225.57f * num2 * num));
}
else
{
Vector4 vector11 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector11, new Vector4(num9 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 1f), 222.57f * num2 * num));
}
Vector4 vector12 = oceanMat.GetVector("_DistortParams");
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector12, new Vector4(22.17f, 0.1f, -0.74f, 1.19f), 0.27f * num2 * num));
Vector4 vector13 = oceanMat.GetVector("_BumpTiling");
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector13, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
Vector4 vector14 = oceanMat.GetVector("_GAmplitude");
Vector4 vector15 = oceanMat.GetVector("_GFrequency");
Vector4 vector16 = oceanMat.GetVector("_GSteepness");
Vector4 vector17 = oceanMat.GetVector("_GSpeed");
Vector4 vector18 = oceanMat.GetVector("_GDirectionAB");
Vector4 vector19 = oceanMat.GetVector("_GDirectionCD");
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector14, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector15, new Vector4(2.54f, 8.52f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector16, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector17, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector18, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector19, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
}
else if (underWaterType == UnderWaterPreset.Calm)
{
Color color2 = oceanMat.GetColor("_BaseColor");
oceanMat.SetColor("_BaseColor", new Color(color2.r, color2.g, color2.b, 0.04f));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 329f, 0.27f * num2 * num));
float num13 = 2E-05f;
float num14 = 1.6E-05f;
float num15 = 0f;
num13 = 1.81f;
num14 = 1.81f;
float num16 = this_transf.position.y - cam_transf.position.y;
if (cam_transf.position.y < this_transf.position.y - DepthFogSwitch)
{
if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector20 = oceanMat.GetVector("_InvFadeParemeter");
_ = num15 + (num16 - DepthFogSwitch) * 35f;
_ = 5f;
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector20, new Vector4(num13 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num15), 222.57f * num2 * num));
}
else
{
Vector4 vector21 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector21, new Vector4(num13 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num15), 22.57f * num2 * num));
}
}
else if (flag & (SkyManager.currentWeatherName != SkyMasterManager.Volume_Weather_types.HeavyStorm))
{
Vector4 vector22 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector22, new Vector4(num14 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num15), 225.57f * num2 * num));
}
else
{
Vector4 vector23 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector23, new Vector4(num14 + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, num15), 222.57f * num2 * num));
}
Vector4 vector24 = oceanMat.GetVector("_DistortParams");
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector24, new Vector4(222.17f, 0.011f, 1f, -25f), 0.27f * num2 * num));
Vector4 vector25 = oceanMat.GetVector("_BumpTiling");
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector25, new Vector4(0.82f + bumpTilingXoffset, 0.77f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
Vector4 vector26 = oceanMat.GetVector("_GAmplitude");
Vector4 vector27 = oceanMat.GetVector("_GFrequency");
Vector4 vector28 = oceanMat.GetVector("_GSteepness");
Vector4 vector29 = oceanMat.GetVector("_GSpeed");
Vector4 vector30 = oceanMat.GetVector("_GDirectionAB");
Vector4 vector31 = oceanMat.GetVector("_GDirectionCD");
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector26, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector27, new Vector4(2.54f, 8.52f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector28, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector29, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector30, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector31, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
}
}
}
else
{
oceanMat.SetFloat("fogDepth", Mathf.Lerp(oceanMat.GetFloat("fogDepth"), fogDensity, num2 * 20f * num));
oceanMat.SetFloat("fogBias", Mathf.Lerp(oceanMat.GetFloat("fogBias"), fogBias, num2 * 20f * num));
oceanMat.SetFloat("fogThres", Mathf.Lerp(oceanMat.GetFloat("fogThres"), fogStartDistance, num2 * 20f * num));
Vector4 vector32 = oceanMat.GetVector("_InvFadeParemeter");
Vector4 vector33 = oceanMat.GetVector("_DistortParams");
Vector4 vector34 = oceanMat.GetVector("_BumpTiling");
Vector4 vector35 = oceanMat.GetVector("_GAmplitude");
Vector4 vector36 = oceanMat.GetVector("_GFrequency");
Vector4 vector37 = oceanMat.GetVector("_GSteepness");
Vector4 vector38 = oceanMat.GetVector("_GSpeed");
Vector4 vector39 = oceanMat.GetVector("_GDirectionAB");
Vector4 vector40 = oceanMat.GetVector("_GDirectionCD");
if (oceanMat.HasProperty("_GerstnerIntensities"))
{
Vector4 vector41 = oceanMat.GetVector("_GerstnerIntensities");
Vector4 vector42 = oceanMat.GetVector("_Gerstnerfactors");
Vector4 vector43 = oceanMat.GetVector("_Gerstnerfactors2");
Vector4 vector44 = oceanMat.GetVector("_GerstnerfactorsDir");
Vector4 vector45 = oceanMat.GetVector("_GerstnerfactorsSteep");
if (waterType == WaterPreset.Atoll)
{
oceanMat.SetVector("_GerstnerIntensities", Vector4.Lerp(vector41, new Vector4(0.13f, 0.01f, 0.01f, 0f), 110.27f * num2 * num));
oceanMat.SetVector("_Gerstnerfactors", Vector4.Lerp(vector42, new Vector4(2.33f, 2.11f, 40f, 1f), 110.27f * num2 * num));
oceanMat.SetVector("_Gerstnerfactors2", Vector4.Lerp(vector43, new Vector4(0.09f, 1f, 1.43f, 1f), 110.27f * num2 * num));
oceanMat.SetVector("_GerstnerfactorsDir", Vector4.Lerp(vector44, new Vector4(-4.61f, 1f, 1f, 1f), 110.27f * num2 * num));
oceanMat.SetVector("_GerstnerfactorsSteep", Vector4.Lerp(vector45, new Vector4(2f, 1f, 2f, 1f), 110.27f * num2 * num));
}
else
{
oceanMat.SetVector("_GerstnerIntensities", Vector4.Lerp(vector41, ExtraWavesFactor, 110.27f * num2 * num));
oceanMat.SetVector("_Gerstnerfactors", Vector4.Lerp(vector42, ExtraWavesFreqFactor, 110.27f * num2 * num));
oceanMat.SetVector("_Gerstnerfactors2", Vector4.Lerp(vector43, ExtraWavesAmpFactor, 110.27f * num2 * num));
oceanMat.SetVector("_GerstnerfactorsDir", Vector4.Lerp(vector44, ExtraWavesDirFactor, 110.27f * num2 * num));
oceanMat.SetVector("_GerstnerfactorsSteep", Vector4.Lerp(vector45, ExtraWavesSteepFactor, 110.27f * num2 * num));
}
}
if (waterType != WaterPreset.Custom)
{
if (waterType == WaterPreset.Caribbean)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(7.82f + BumpFocusOffset, 0.1f + RefractOffset, -0.74f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 368f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.16f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.5f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.Emerald)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(9.78f + BumpFocusOffset, 0.1f + RefractOffset, -0.74f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 65f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.077f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.4f + bumpTilingXoffset, 0.4f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 8.5f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(1.14f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.85f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, -1.3f, 0.06f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 3.73f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), 0f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), 0f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.SmallWaves)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(4.49f + BumpFocusOffset, 0.15f + RefractOffset, -0.04f + FresnelOffset, 66.9f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 7f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.11f + ShoreBlendOffset, 6.3f + foamExtendOffset, 0.76f, -7.4f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.59f + bumpTilingXoffset, 0.97f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), -0.58f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.2f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(1.71f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 15.56f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.188599f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), 0f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.Lake)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(1.8f + BumpFocusOffset, 0.27f + RefractOffset, 0.19f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 472f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.09f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.16f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.02f, 0f, 0f, 0f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(3f, 1.74f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), -1f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), 0f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.FocusOcean)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(4.49f + BumpFocusOffset, 0.36f + RefractOffset, -0.06f + FresnelOffset, 73.47f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 188f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.1f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 0.72f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.59f + bumpTilingXoffset, 0.97f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), -0.59f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.32f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(1.71f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 12.17f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.1886f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.Muddy)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(6.37f + BumpFocusOffset, 0.1f + RefractOffset, -0.74f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 113f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.07f + ShoreBlendOffset, 0.15f + foamExtendOffset, 1.29f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.5f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.River)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(6.59f + BumpFocusOffset, 0.1f + RefractOffset, -0.74f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 63f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.16f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.5f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if ((waterType == WaterPreset.Ocean) | (waterType == WaterPreset.DarkOcean))
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(3.04f + BumpFocusOffset, -1.23f + RefractOffset, 1.85f + FresnelOffset, -0.5f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 93f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.43f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.21f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.02f + bumpTilingXoffset, 0.02f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 9.47f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.18f, 0.83f, 0.06f, 0.222f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.5f, 0.38f, 0.59f, 0.35f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(0f, 22f, 0f, 0f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-3f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.46f, 0.35f, -0.11f, -0.07f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.7f, -0.04f, 0.7175f, 0.31f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 8.14f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.06f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), 0f, 0.15f * num2 * num));
waterScaleFactor = new Vector3(1f, 6f, 1f);
}
else if (waterType == WaterPreset.Atoll)
{
if (cam_transf != null)
{
HeightSpecularCorrect = (cam_transf.position.y - this_transf.position.y) * 0.001f;
}
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(3.91f + BumpFocusOffset, 0.36f + RefractOffset, -0.035f - HeightSpecularCorrect + FresnelOffset, 65.85f + FresnelBias), 0.27f * num2 * num * 5f));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 204f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.29f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.034f + ShoreBlendOffset, 0.15f + foamExtendOffset, 0.043f, 0.72f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.89f + bumpTilingXoffset, 1.27f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 1.16f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.32f, -0.22f, 0f, 0.36f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(1.71f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 12.17f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.188599f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), 0f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.Mobile)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(0.67f + BumpFocusOffset, 25f + RefractOffset, 2.25f - HeightSpecularCorrect + FresnelOffset, 0.84f + FresnelBias), 0.27f * num2 * num * 5f));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 20f, 0.27f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.01f + ShoreBlendOffset, 0.04f + foamExtendOffset, 0.043f, 0.7f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(1f + bumpTilingXoffset, 1f + bumpTilingYoffset, 0.08f, 0.16f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.16f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(1f, 1.8f, 0f, 0.36f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.27f, 0.74f, 0f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 12.17f + DepthColorOffset, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else if (waterType == WaterPreset.LitOcean)
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(1f + BumpFocusOffset, 0.36f + RefractOffset, -0.078f - HeightSpecularCorrect + FresnelOffset, 40.9f + FresnelBias), 0.27f * num2 * num * 5f));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 196f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 3.95f, 0.25f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.034f + ShoreBlendOffset, 0.17f + foamExtendOffset, 0.043f, -18.5f), 110.27f * num2 * num));
oceanMat.SetVector("_Foam", Vector4.Lerp(oceanMat.GetVector("_Foam"), new Vector4(2.56f, 0.6f, -0.16f, -0.21f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.89f + bumpTilingXoffset, 1.27f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 1.16f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.12f, 0.14f, 0.03f, 0.12f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.71f, 0.58f, 0.45f, 0.45f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 49.3f + DepthColorOffset, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
else
{
oceanMat.SetVector("_DistortParams", Vector4.Lerp(vector33, new Vector4(7.82f + BumpFocusOffset, 0.1f + RefractOffset, -0.74f + FresnelOffset, 6f + FresnelBias), 0.27f * num2 * num));
oceanMat.SetFloat("_Shininess", Mathf.Lerp(oceanMat.GetFloat("_Shininess"), 368f, 0.27f * num2 * num));
oceanMat.SetFloat("_FresnelScale", Mathf.Lerp(oceanMat.GetFloat("_FresnelScale"), 0.15f, 0.15f * num2 * num));
oceanMat.SetVector("_InvFadeParemeter", Vector4.Lerp(vector32, new Vector4(0.16f + ShoreBlendOffset, 0.1594f + foamExtendOffset, 0.043f, 4.2f), 110.27f * num2 * num));
oceanMat.SetVector("_BumpTiling", Vector4.Lerp(vector34, new Vector4(0.12f + bumpTilingXoffset, 0.07f + bumpTilingYoffset, 0.08f, 0.06f), 110.27f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity"), 18.21f, 0.15f * num2 * num));
oceanMat.SetVector("_GAmplitude", Vector4.Lerp(vector35, new Vector4(0.16f, -0.22f, 0f, -0.11f) + WaveAmpOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GFrequency", Vector4.Lerp(vector36, new Vector4(0.5f, 1.58f, 2.45f, 0.75f) + WaveFreqOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GSteepness", Vector4.Lerp(vector37, new Vector4(6.96f, 2f, 5.92f, 2f), 110.27f * num2 * num));
oceanMat.SetVector("_GSpeed", Vector4.Lerp(vector38, new Vector4(-2.53f, 2f, 1f, 3f) + WaveSpeedOffset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionAB", Vector4.Lerp(vector39, new Vector4(0.1f, -0.41f, -0.2f, 0.1f) + WaveDir1Offset, 110.27f * num2 * num));
oceanMat.SetVector("_GDirectionCD", Vector4.Lerp(vector40, new Vector4(0.52f, -0.6799f, 0.7175f, -0.2f) + WaveDir2Offset, 110.27f * num2 * num));
oceanMat.SetFloat("_MultiplyEffect", Mathf.Lerp(oceanMat.GetFloat("_MultiplyEffect"), 5.71f + DepthColorOffset, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity1", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity1"), -0.18f, 0.15f * num2 * num));
oceanMat.SetFloat("_GerstnerIntensity2", Mathf.Lerp(oceanMat.GetFloat("_GerstnerIntensity2"), -0.03f, 0.15f * num2 * num));
waterScaleFactor = Vector3.one;
}
}
}
if (Application.isPlaying)
{
this_transf.localScale = Vector3.Lerp(this_transf.localScale, waterScaleFactor + waterScaleOffset, 0.15f * num2 * num);
}
}
private void Update()
{
if (Application.isPlaying)
{
if (cam_transf == null)
{
cam_transf = Camera.main.transform;
}
if (followCamera && Camera.main != null)
{
Vector3 position = Camera.main.transform.position;
if (TerrainDepthCamera != null)
{
TerrainDepthCamera.position = new Vector3(position.x, TerrainDepthCamera.position.y, position.z);
}
}
}
if (TerrainDepthCamera != null && oceanMat != null)
{
oceanMat.SetVector("_DepthCameraPos", new Vector4(TerrainDepthCamera.position.x, TerrainDepthCamera.position.y, TerrainDepthCamera.position.z, 1f));
}
if (oceanMat != null)
{
oceanMat.SetFloat("_ShoreFadeFactor", ShoreWavesFade);
oceanMat.SetFloat("_TerrainScale", TerrainScale);
}
if (SeaAudio != null)
{
if (DisableSeaAudio)
{
SeaAudio.volume = Mathf.Lerp(SeaAudio.volume, 0f, Time.deltaTime * SoundFadeSpeed);
}
else if (SkyManager != null)
{
if ((SkyManager.currentWeatherName == SkyMasterManager.Volume_Weather_types.HeavyStorm) | (SkyManager.currentWeatherName == SkyMasterManager.Volume_Weather_types.HeavyStormDark))
{
SeaAudio.volume = Mathf.Lerp(SeaAudio.volume, 0f, Time.deltaTime * SoundFadeSpeed);
}
else
{
SeaAudio.volume = Mathf.Lerp(SeaAudio.volume, maxAudioVolume, Time.deltaTime * SoundFadeSpeed);
}
}
}
if (CausticsMat != null)
{
if (BelowWater)
{
CausticsMat.SetFloat("_Intensity", Mathf.Lerp(CausticsMat.GetFloat("_Intensity"), CausticIntensity / 10f, Time.deltaTime * 2f));
}
else
{
CausticsMat.SetFloat("_Intensity", Mathf.Lerp(CausticsMat.GetFloat("_Intensity"), CausticIntensity, Time.deltaTime * 2f));
}
}
if (CausticsProjector != null)
{
CausticsProjector.orthographicSize = CausticSize;
}
if (UnderwaterBlur == null)
{
UnderwaterBlur = Camera.main.gameObject.GetComponent<UnderWaterImageEffect>();
_ = UnderwaterBlur == null;
if (UnderwaterBlur != null)
{
UnderwaterBlur.enabled = false;
}
}
if ((((UnderwaterBlurL == null) | (UnderwaterBlurR == null)) & (TerrainManager != null)) && TerrainManager.LeftCam != null && TerrainManager.RightCam != null)
{
UnderwaterBlurL = TerrainManager.LeftCam.GetComponent<UnderWaterImageEffect>();
UnderwaterBlurR = TerrainManager.RightCam.GetComponent<UnderWaterImageEffect>();
UnderwaterBlurL.enabled = false;
UnderwaterBlurR.enabled = false;
}
if (SkyManager != null && oceanMat != null)
{
if (Application.isPlaying)
{
UpdateWaterParams(Init: false);
}
else
{
UpdateWaterParams(Init: true);
}
}
if (!Application.isPlaying)
{
return;
}
if (TerrainManager != null)
{
if (TerrainManager.UseFogCurves)
{
if (BelowWater)
{
if (!toggledUnderwater || TerrainManager.fogDensity != volumeFogDensityUnderwater)
{
if (!toggledUnderwater)
{
volumeFogDensityOverwater = TerrainManager.fogDensity;
}
TerrainManager.fogDensity = volumeFogDensityUnderwater;
toggledUnderwater = true;
}
}
else if (toggledUnderwater)
{
TerrainManager.fogDensity = volumeFogDensityOverwater;
toggledUnderwater = false;
}
}
if (!(Camera.main != null))
{
return;
}
Vector3 vector = this_transf.position;
float num = (waterScaleFactor.y / 1f + waterScaleOffset.y) / 1f;
if (UnderOnWave && heightController != null)
{
Vector4 vector2 = heightController.WaterMaterial.GetVector("_GAmplitude");
Vector4 vector3 = heightController.WaterMaterial.GetVector("_GFrequency");
Vector4 vector4 = heightController.WaterMaterial.GetVector("_GSteepness");
Vector4 vector5 = heightController.WaterMaterial.GetVector("_GSpeed");
Vector4 vector6 = heightController.WaterMaterial.GetVector("_GDirectionAB");
Vector4 vector7 = heightController.WaterMaterial.GetVector("_GDirectionCD");
vector = heightController.GerstnerOffset(new Vector2(cam_transf.position.x, cam_transf.position.z), cam_transf.position.y, new Vector2(cam_transf.position.x, cam_transf.position.z), vector2, vector3, vector4, vector5, vector6, vector7);
vector = vector * num + this_transf.position - new Vector3(0f, TransYOffset, 0f);
}
if ((((cam_transf.position.y < this_transf.position.y) & (!UnderOnWave | (UnderOnWave & (heightController == null)))) | (UnderOnWave & (heightController != null) & ((cam_transf.position.y < vector.y * 1f) | (cam_transf.position.y < this_transf.position.y)))) & !DisableUnderwater)
{
if (TerrainManager.FogPreset != 9 && TerrainManager.FogPreset != 10)
{
prev_preset = TerrainManager.FogPreset;
}
TerrainManager.FogPreset = 9;
if (((cam_transf.position.y < this_transf.position.y - DepthFogSwitch) & (!UnderOnWave | (UnderOnWave & (heightController == null)))) | (UnderOnWave & (heightController != null) & ((cam_transf.position.y < vector.y * 1f - DepthFogSwitch) | (cam_transf.position.y < this_transf.position.y - DepthFogSwitch))))
{
TerrainManager.FogPreset = 10;
}
if (UnderwaterBlur != null && !UnderwaterBlur.enabled)
{
UnderwaterBlur.enabled = true;
}
if (UnderwaterBlurL != null && !UnderwaterBlurL.enabled)
{
UnderwaterBlurL.enabled = true;
}
if (UnderwaterBlurR != null && !UnderwaterBlurR.enabled)
{
UnderwaterBlurR.enabled = true;
}
RenderSettings.fogMode = FogMode.ExponentialSquared;
if (UnderOnWave)
{
RenderSettings.fogDensity = Mathf.Lerp(RenderSettings.fogDensity, underwaterFogDensity, Time.deltaTime * 0.1f);
RenderSettings.fogColor = Color.Lerp(RenderSettings.fogColor, Fog_Color, Time.deltaTime);
}
else
{
RenderSettings.fogDensity = underwaterFogDensity;
RenderSettings.fogColor = Fog_Color;
}
RenderSettings.fogStartDistance = 0f;
RenderSettings.fogEndDistance = 1000f;
BelowWater = true;
return;
}
if (TerrainManager.FogPreset == 9)
{
TerrainManager.FogPreset = prev_preset;
Vector4 vector8 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", new Vector4(vector8.x, vector8.y, vector8.z, 4f));
if (prev_fog_mode == 0)
{
RenderSettings.fogMode = FogMode.Exponential;
}
if (prev_fog_mode == 1)
{
RenderSettings.fogMode = FogMode.ExponentialSquared;
}
if (prev_fog_mode == 2)
{
RenderSettings.fogMode = FogMode.Linear;
}
if (UnderOnWave)
{
RenderSettings.fogDensity = Mathf.Lerp(RenderSettings.fogDensity, prev_fog_density, Time.deltaTime * 26f);
RenderSettings.fogColor = Color.Lerp(RenderSettings.fogColor, prev_fog_color, Time.deltaTime * 1f);
}
else
{
RenderSettings.fogDensity = prev_fog_density;
RenderSettings.fogColor = prev_fog_color;
}
RenderSettings.fogStartDistance = PrevStartEndDist.x;
RenderSettings.fogEndDistance = PrevStartEndDist.y;
WaterBase.waterQuality = WaterQuality.High;
}
if (UnderwaterBlur != null && UnderwaterBlur.enabled)
{
UnderwaterBlur.enabled = false;
}
if (UnderwaterBlurL != null && UnderwaterBlurL.enabled)
{
UnderwaterBlurL.enabled = false;
}
if (UnderwaterBlurR != null && UnderwaterBlurR.enabled)
{
UnderwaterBlurR.enabled = false;
}
BelowWater = false;
return;
}
Vector3 vector9 = this_transf.position;
float num2 = (waterScaleFactor.y / 1f + waterScaleOffset.y) / 1f;
if (UnderOnWave && heightController != null)
{
Vector4 vector10 = heightController.WaterMaterial.GetVector("_GAmplitude");
Vector4 vector11 = heightController.WaterMaterial.GetVector("_GFrequency");
Vector4 vector12 = heightController.WaterMaterial.GetVector("_GSteepness");
Vector4 vector13 = heightController.WaterMaterial.GetVector("_GSpeed");
Vector4 vector14 = heightController.WaterMaterial.GetVector("_GDirectionAB");
Vector4 vector15 = heightController.WaterMaterial.GetVector("_GDirectionCD");
vector9 = heightController.GerstnerOffset(new Vector2(cam_transf.position.x, cam_transf.position.z), cam_transf.position.y, new Vector2(cam_transf.position.x, cam_transf.position.z), vector10, vector11, vector12, vector13, vector14, vector15);
vector9 = vector9 * num2 + this_transf.position - new Vector3(0f, TransYOffset, 0f);
}
if ((((cam_transf.position.y < this_transf.position.y) & (!UnderOnWave | (UnderOnWave & (heightController == null)))) | (UnderOnWave & (heightController != null) & ((cam_transf.position.y < vector9.y * 1f) | (cam_transf.position.y < this_transf.position.y)))) & !DisableUnderwater)
{
if (UnderwaterBlur != null && !UnderwaterBlur.enabled)
{
UnderwaterBlur.enabled = true;
}
if (UnderwaterBlurL != null && !UnderwaterBlurL.enabled)
{
UnderwaterBlurL.enabled = true;
}
if (UnderwaterBlurR != null && !UnderwaterBlurR.enabled)
{
UnderwaterBlurR.enabled = true;
}
RenderSettings.fogMode = FogMode.ExponentialSquared;
if (UnderOnWave)
{
RenderSettings.fogDensity = Mathf.Lerp(RenderSettings.fogDensity, underwaterFogDensity, Time.deltaTime * 0.1f);
RenderSettings.fogColor = Color.Lerp(RenderSettings.fogColor, Fog_Color, Time.deltaTime);
}
else
{
RenderSettings.fogDensity = underwaterFogDensity;
RenderSettings.fogColor = Fog_Color;
}
RenderSettings.fogStartDistance = 0f;
RenderSettings.fogEndDistance = 1000f;
BelowWater = true;
return;
}
Vector4 vector16 = oceanMat.GetVector("_InvFadeParemeter");
oceanMat.SetVector("_InvFadeParemeter", new Vector4(vector16.x, vector16.y, vector16.z, 4f));
if (prev_fog_mode == 0)
{
RenderSettings.fogMode = FogMode.Exponential;
}
if (prev_fog_mode == 1)
{
RenderSettings.fogMode = FogMode.ExponentialSquared;
}
if (prev_fog_mode == 2)
{
RenderSettings.fogMode = FogMode.Linear;
}
if (UnderOnWave)
{
RenderSettings.fogDensity = Mathf.Lerp(RenderSettings.fogDensity, prev_fog_density, Time.deltaTime * 26f);
RenderSettings.fogColor = Color.Lerp(RenderSettings.fogColor, prev_fog_color, Time.deltaTime * 1f);
}
else
{
RenderSettings.fogDensity = prev_fog_density;
RenderSettings.fogColor = prev_fog_color;
}
RenderSettings.fogStartDistance = PrevStartEndDist.x;
RenderSettings.fogEndDistance = PrevStartEndDist.y;
WaterBase.waterQuality = WaterQuality.High;
if (UnderwaterBlur != null && UnderwaterBlur.enabled)
{
UnderwaterBlur.enabled = false;
}
if (UnderwaterBlurL != null && UnderwaterBlurL.enabled)
{
UnderwaterBlurL.enabled = false;
}
if (UnderwaterBlurR != null && UnderwaterBlurR.enabled)
{
UnderwaterBlurR.enabled = false;
}
BelowWater = false;
}
}
}