94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
[Serializable]
 | 
						|
public enum SeaModes
 | 
						|
{
 | 
						|
	unset = 99,
 | 
						|
	Tropic = 0,
 | 
						|
	Lava = 1
 | 
						|
}
 | 
						|
 | 
						|
[Serializable]
 | 
						|
public class SeaModeData : System.Object
 | 
						|
{
 | 
						|
	public string name;
 | 
						|
	public Color color;
 | 
						|
	public Color glowColor;
 | 
						|
	public float waves;
 | 
						|
	public float reflection;
 | 
						|
	public float refraction;
 | 
						|
}
 | 
						|
 | 
						|
[Serializable]
 | 
						|
[ExecuteInEditMode]
 | 
						|
public class SeaData : MonoBehaviour
 | 
						|
{
 | 
						|
	public WhirldObject whirldObject;
 | 
						|
	public GameObject seaObject;
 | 
						|
	public GameObject seaObjectSimple;
 | 
						|
	public GameObject seaObjectSimBot;
 | 
						|
 | 
						|
	public SeaModes SeaMode = SeaModes.Tropic;
 | 
						|
	private SeaModes setMode = SeaModes.unset;
 | 
						|
	public SeaModeData[] seaModeData;
 | 
						|
 | 
						|
	public void Start()
 | 
						|
	{
 | 
						|
        if (
 | 
						|
            whirldObject == null ||
 | 
						|
            whirldObject.parameters == null ||
 | 
						|
            seaObject == null ||
 | 
						|
            whirldObject.parameters["Mode"] == null)
 | 
						|
        {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        SeaMode = (SeaModes)Enum.Parse(
 | 
						|
            typeof(SeaModes),
 | 
						|
            whirldObject.parameters["Mode"].ToString(),
 | 
						|
            true);
 | 
						|
	}
 | 
						|
 | 
						|
	public void Update()
 | 
						|
	{
 | 
						|
		if (SeaMode != setMode)
 | 
						|
		{
 | 
						|
			SetSeaMode();
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void SetSeaMode()
 | 
						|
	{
 | 
						|
        setMode = SeaMode;
 | 
						|
        seaObject.renderer.sharedMaterial.SetColor(
 | 
						|
            "_RefrColor",
 | 
						|
            seaModeData[(int)SeaMode].color);
 | 
						|
        seaObject.renderer.sharedMaterial.SetFloat(
 | 
						|
            "_WaveScale",
 | 
						|
            seaModeData[(int)SeaMode].waves);
 | 
						|
        seaObject.renderer.sharedMaterial.SetFloat(
 | 
						|
            "_ReflDistort",
 | 
						|
            seaModeData[(int)SeaMode].reflection);
 | 
						|
        seaObject.renderer.sharedMaterial.SetFloat(
 | 
						|
            "_RefrDistort",
 | 
						|
            seaModeData[(int)SeaMode].refraction);
 | 
						|
        seaObjectSimple.renderer.sharedMaterial.SetColor(
 | 
						|
            "_Color",
 | 
						|
            seaModeData[(int)SeaMode].color);
 | 
						|
        seaObjectSimBot.renderer.sharedMaterial.SetColor(
 | 
						|
            "_Color",
 | 
						|
            seaModeData[(int)SeaMode].glowColor);
 | 
						|
 | 
						|
        Color soscol = seaObjectSimple.renderer.sharedMaterial.color;
 | 
						|
        soscol.a = 0.85f;
 | 
						|
        seaObjectSimple.renderer.sharedMaterial.color = soscol;
 | 
						|
 | 
						|
        Color sosbcol = seaObjectSimBot.renderer.sharedMaterial.color;
 | 
						|
        sosbcol.a = 0.85f;
 | 
						|
        seaObjectSimBot.renderer.sharedMaterial.color = sosbcol;
 | 
						|
 | 
						|
        World.seaFogColor = seaModeData[(int)SeaMode].color;
 | 
						|
        World.seaGlowColor = seaModeData[(int)SeaMode].glowColor;
 | 
						|
	}
 | 
						|
}
 |