using System.Collections; using System.Collections.Generic; using UnityEngine; using SiegeSong; using Gaia; namespace SiegeSong { public class RuntimeManager : MonoBehaviour { public int MinuteOfHour { get { var timeOfDayRawValue = GaiaGlobal.GetTimeOfDayMainValue(); var totalMinute = (int)(timeOfDayRawValue * minutesInDay); var hour = totalMinute / minutesInHour; var minute = totalMinute - (hour * minutesInHour); return minute; } } public int HourOfDay { get { var timeOfDayRawValue = GaiaGlobal.GetTimeOfDayMainValue(); var totalMinute = (int)(timeOfDayRawValue * minutesInDay); var hour = totalMinute / minutesInHour; return hour; } } public int DayOfYear; public int DayOfMonth; public int DayOfWeek; public int WeekOfMonth; public int MonthOfYear; public int Year; public GameObject PlayerInstance; public GaiaScenePlayer GaiaPlayer; public GameObject FogDataObject; public FogVolumePriority FogPriority; public FogVolume FogVolume; public GaiaGlobal GaiaGlobalSettings; public Suimono.Core.SuimonoModule WaterModule; private int minutesInHour = 60; private int minutesInDay = 1440; private int daysInYear = 336; private int monthsInYear = 12; private int daysInWeek = 7; private int inLoreBaseYear = 1131; private int rawMinutes; private string friendlyTime; void Start() { } void Update() { var newFriendlyTime = ""; var newRawMinutes = (int)(GaiaGlobal.GetTimeOfDayMainValue() * minutesInDay); if (HourOfDay < 12) newFriendlyTime = $"{(HourOfDay.ToString().Length == 2 ? HourOfDay : "0" + HourOfDay)}:{(MinuteOfHour.ToString().Length == 2 ? MinuteOfHour : "0" + MinuteOfHour)} AM"; else newFriendlyTime = $"{((HourOfDay - 12).ToString().Length == 2 ? (HourOfDay - 12) : "0" + (HourOfDay - 12))}:{(MinuteOfHour.ToString().Length == 2 ? MinuteOfHour : "0" + MinuteOfHour)} PM"; if (friendlyTime != newFriendlyTime) { Debug.Log(newFriendlyTime); Debug.Log($"Day - {DayOfYear} / Month - {MonthOfYear + 1} / Week of Month - {WeekOfMonth + 1} / Day of Month - {DayOfMonth}"); } friendlyTime = newFriendlyTime; if (rawMinutes > newRawMinutes) { if (DayOfYear == daysInYear) { Year++; DayOfYear = 0; var dayNumber = (DayOfMonth + 1).ToString(); var monthNumber = (MonthOfYear + 1).ToString(); PlayerInstance.GetComponentInChildren().Notify($"{(dayNumber.Length == 2 ? dayNumber : "0" + dayNumber)}/{(monthNumber.Length == 2 ? monthNumber : "0" + monthNumber)}/{Year + inLoreBaseYear} - The first day of Year {Year + 1} has begun."); } else { DayOfYear++; var dayNumber = (DayOfMonth + 1).ToString(); var monthNumber = (MonthOfYear + 1).ToString(); PlayerInstance.GetComponentInChildren().Notify($"{(dayNumber.Length == 2 ? dayNumber : "0" + dayNumber)}/{(monthNumber.Length == 2 ? monthNumber : "0" + monthNumber)}/{Year + inLoreBaseYear} - A new day has begun."); } MonthOfYear = DayOfYear / monthsInYear; DayOfMonth = DayOfYear % monthsInYear; WeekOfMonth = (DayOfYear % monthsInYear) / daysInWeek; DayOfWeek = (DayOfYear % monthsInYear) % daysInWeek; } rawMinutes = newRawMinutes; } public void PopulateReferences() { if (FogDataObject != null) { FogDataObject.GetComponent().GameCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.GetComponentInChildren(); } if (FogPriority != null) { FogPriority.GameCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.GetComponentInChildren(); } if (FogVolume != null) { //FogVolume.FogVolumeData = FogDataObject; FogVolume.AssignCamera(); } if (GaiaPlayer != null) { GaiaPlayer.transform.parent = PlayerInstance.transform; GaiaPlayer.transform.position = Vector3.zero; } if (WaterModule != null) { WaterModule.setTrack = PlayerInstance.transform; WaterModule.setCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.transform.GetChild(0); WaterModule.mainCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.transform.GetChild(0); WaterModule.manualCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.transform.GetChild(0); } GaiaGlobalSettings.m_mainCamera = PlayerInstance.GetComponentInChildren().ActiveCamera.GetComponentInChildren(); } } }