diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/DaytimeSensitiveLight.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/DaytimeSensitiveLight.cs | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/DaytimeSensitiveLight.cs b/Thronefall_v1.0/Decompile/DaytimeSensitiveLight.cs new file mode 100644 index 0000000..da571d3 --- /dev/null +++ b/Thronefall_v1.0/Decompile/DaytimeSensitiveLight.cs @@ -0,0 +1,83 @@ +using System.Collections; +using UnityEngine; + +[RequireComponent(typeof(Light))] +public class DaytimeSensitiveLight : MonoBehaviour, DayNightCycle.IDaytimeSensitive +{ + [SerializeField] + private Color dayColor = Color.white; + + [SerializeField] + private Color sunsetColor; + + [SerializeField] + private Color nightColor; + + [SerializeField] + private float dayToSunsetDuration = 2f; + + [SerializeField] + private float sunsetToNightDuration = 2f; + + private Light targetLight; + + private void Start() + { + targetLight = GetComponent<Light>(); + DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this); + } + + public void OnDawn_AfterSunrise() + { + } + + public void OnDusk() + { + StopAllCoroutines(); + StartCoroutine(ToNight()); + } + + public void OnDawn_BeforeSunrise() + { + StopAllCoroutines(); + StartCoroutine(ToDay()); + } + + private IEnumerator ToDay() + { + float timer2 = 0f; + while (timer2 <= sunsetToNightDuration) + { + timer2 += Time.deltaTime; + targetLight.color = Color.Lerp(nightColor, sunsetColor, timer2 / sunsetToNightDuration); + yield return null; + } + timer2 = 0f; + while (timer2 <= dayToSunsetDuration) + { + timer2 += Time.deltaTime; + targetLight.color = Color.Lerp(sunsetColor, dayColor, timer2 / dayToSunsetDuration); + yield return null; + } + targetLight.color = dayColor; + } + + private IEnumerator ToNight() + { + float timer2 = 0f; + while (timer2 <= dayToSunsetDuration) + { + timer2 += Time.deltaTime; + targetLight.color = Color.Lerp(dayColor, sunsetColor, timer2 / dayToSunsetDuration); + yield return null; + } + timer2 = 0f; + while (timer2 <= sunsetToNightDuration) + { + timer2 += Time.deltaTime; + targetLight.color = Color.Lerp(dayColor, nightColor, timer2 / sunsetToNightDuration); + yield return null; + } + targetLight.color = nightColor; + } +} |