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

@ -96,7 +96,7 @@ namespace Server.Items
return;
}
if (DateTime.UtcNow < LastUse + UseDelay)
if (Core.Now < LastUse + UseDelay)
{
return;
}
@ -172,7 +172,7 @@ namespace Server.Items
return;
}
LastUse = DateTime.UtcNow;
LastUse = Core.Now;
from.Direction = from.GetDirectionTo(GetWorldLocation());
bow.PlaySwingAnimation(from);

View file

@ -90,14 +90,14 @@ namespace Server.Items
if (m.Player && Utility.InRange(Location, m.Location, 3) && !Utility.InRange(Location, oldLocation, 3))
{
if (DateTime.UtcNow >= m_NextMessage)
if (Core.Now >= m_NextMessage)
{
if (Components.Count > 0)
{
Components[0].SendLocalizedMessageTo(m, 1010061); // An overwhelming sense of peace fills you.
}
m_NextMessage = DateTime.UtcNow + TimeSpan.FromSeconds(25.0);
m_NextMessage = Core.Now + TimeSpan.FromSeconds(25.0);
}
}
}

View file

@ -192,11 +192,11 @@ namespace Server.Items
{
World.Broadcast(0x35, true, "Solen hives teleporters are being generated, please wait.");
var startTime = DateTime.UtcNow;
var startTime = Core.Now;
var count = new SHTeleporterCreator().CreateSHTeleporters();
var endTime = DateTime.UtcNow;
var endTime = Core.Now;
World.Broadcast(
0x35,