fix(core): Caches DateTime.NowUtc (#548)

- [X] Caches DateTime.NowUtc on the game loop (not other threads)
- [X] Replaces all locations where it makes sense
- [X] Adds Min/Max for `IComparable` (TimeSpan, DateTimes, etc)

Closes #261
This commit is contained in:
Kamron Batman 2021-03-13 01:32:04 -08:00 • committed by GitHub
parent 5de6edbeb8
commit 6c4308bce6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
208 changed files with 660 additions and 793 deletions

View file

@ -186,7 +186,7 @@ namespace Server.Engines.Spawners
[CommandProperty(AccessLevel.Developer)]
public TimeSpan NextSpawn
{
get => m_Running && m_Timer?.Running == true ? End - DateTime.UtcNow : TimeSpan.FromSeconds(0);
get => m_Running && m_Timer?.Running == true ? End - Core.Now : TimeSpan.FromSeconds(0);
set
{
Start();
@ -748,7 +748,7 @@ namespace Server.Engines.Spawners
return;
}
End = DateTime.UtcNow + delay;
End = Core.Now + delay;
if (m_Timer == null)
{
@ -1005,7 +1005,7 @@ namespace Server.Engines.Spawners
if (m_Running)
{
ts = reader.ReadDeltaTime() - DateTime.UtcNow;
ts = reader.ReadDeltaTime() - Core.Now;
}
if (version < 7)