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

@ -955,7 +955,7 @@ namespace Server
/* begin last moved time optimization */
var ticks = LastMoved.Ticks;
var now = DateTime.UtcNow.Ticks;
var now = Core.Now.Ticks;
var minutes = new TimeSpan(now - ticks).TotalMinutes;
@ -2280,7 +2280,7 @@ namespace Server
public void SetLastMoved()
{
LastMoved = DateTime.UtcNow;
LastMoved = Core.Now;
}
public virtual bool CanStackWith(Item dropped) =>
@ -2598,11 +2598,11 @@ namespace Server
try
{
LastMoved = DateTime.UtcNow - TimeSpan.FromMinutes(minutes);
LastMoved = Core.Now - TimeSpan.FromMinutes(minutes);
}
catch
{
LastMoved = DateTime.UtcNow;
LastMoved = Core.Now;
}
}