You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.8 KiB

using UnityEngine;
using UnityEngine.Rendering.Universal;
using UnityEngine.U2D;
namespace ET
{
public class PeachValleyComponentAwakeSystem: AwakeSystem<PeachValleyComponent>
{
public override void Awake(PeachValleyComponent self)
{
self.Awake();
}
}
[FriendClass(typeof(PeachValleyComponent))]
public static class PeachValleyComponentSystem
{
private const float MinutePerHouse = 60.0f;
public static void Awake(this PeachValleyComponent self)
{
self.GlobalLight = GameObject.Find("/GlobalLight").GetComponent<Light2D>();
}
public static void UpdateLightByTime(this PeachValleyComponent self, int hour, int minute)
{
if (hour > 0 && hour < 6)
{
self.GlobalLight.intensity = self.NightIntensity;
}
else if (hour >= 6 && hour < 16)
{
self.GlobalLight.color = self.DayColor;
self.GlobalLight.intensity = self.DayIntensity;
}
else if (hour >= 16 && hour < 17)
{
float percent = minute / MinutePerHouse;
self.GlobalLight.color = Color.Lerp(self.DayColor, self.SunsetColor, percent);
self.GlobalLight.intensity = Mathf.Lerp(self.DayIntensity, self.SunsetIntensity, percent);
}
else if (hour >= 17 && hour < 18)
{
float percent = minute / MinutePerHouse;
self.GlobalLight.intensity = Mathf.Lerp(self.SunsetIntensity, self.NightIntensity, percent);
}
else if (hour >= 18 && hour <= 24)
{
self.GlobalLight.color = self.DayColor;
self.GlobalLight.intensity = self.NightIntensity;
}
}
}
}