Zombie-Zwischencommit

This commit is contained in:
2024-04-07 00:41:10 +02:00
parent 731c08bb97
commit 1b993db668
3 changed files with 44 additions and 11 deletions

View File

@ -11,9 +11,17 @@ public class Zeitschaltuhr : MonoBehaviour, ISerializationCallbackReceiver
{
private TimeSpan _turnOnTimeSpan;
private TimeSpan _turnOffTimeSpan;
private float _activeTimeSpanInSeconds;
/// <summary>
/// Die Dauer der Active-Time der Kinder in echten Sekunden
/// </summary>
public float ActiveTimeSpanInSeconds => _activeTimeSpanInSeconds;
/// <summary>
/// Ob die Kinder gerade aktiv sind oder nicht
/// </summary>
public bool IsOn;
[SerializeField] private SimpleTime _turnOnTime;
[SerializeField] private SimpleTime _turnOffTime;
@ -39,6 +47,7 @@ public class Zeitschaltuhr : MonoBehaviour, ISerializationCallbackReceiver
void Start()
{
CalculateOnTimeInSeconds();
UpdateOn();
}
@ -94,4 +103,23 @@ public class Zeitschaltuhr : MonoBehaviour, ISerializationCallbackReceiver
_turnOnTimeSpan = _turnOnTime.ToTimeSpan();
_turnOffTimeSpan = _turnOffTime.ToTimeSpan();
}
private void CalculateOnTimeInSeconds()
{
TimeSpan turnOnTimeSpan = _turnOnTime.ToTimeSpan();
TimeSpan turnOffTimeSpan = _turnOffTime.ToTimeSpan();
float onDurationInSeconds;
if (turnOnTimeSpan < turnOffTimeSpan)
{
onDurationInSeconds = (float)(turnOffTimeSpan - turnOnTimeSpan).TotalSeconds;
}
else
{
TimeSpan fullDay = TimeSpan.FromHours(24);
onDurationInSeconds = (float)((fullDay - turnOnTimeSpan) + turnOffTimeSpan).TotalSeconds;
}
_activeTimeSpanInSeconds = onDurationInSeconds * ((float)TimeManager.Instance.SecondsPerDay / 86400f); // 86400 Sekunden pro Tag
}
}