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

@ -324,7 +324,7 @@ namespace Server.Engines.Help
{
var info = m.Aggressed[i];
if (DateTime.UtcNow - info.LastCombatTime < TimeSpan.FromSeconds(30.0))
if (Core.Now - info.LastCombatTime < TimeSpan.FromSeconds(30.0))
{
return true;
}

View file

@ -33,7 +33,7 @@ namespace Server.Engines.Help
public PageEntry(Mobile sender, string message, PageType type)
{
Sender = sender;
Sent = DateTime.UtcNow;
Sent = Core.Now;
Message = Utility.FixHtml(message);
Type = type;
PageLocation = sender.Location;

View file

@ -66,7 +66,7 @@ namespace Server.Engines.Help
{
var entry = m_Queue.Peek();
if (DateTime.UtcNow - entry.Created > EntryDuration)
if (Core.Now - entry.Created > EntryDuration)
{
m_Queue.Dequeue();
}
@ -128,7 +128,7 @@ namespace Server.Engines.Help
{
From = from;
Speech = speech;
Created = DateTime.UtcNow;
Created = Core.Now;
}
public Mobile From { get; }

View file

@ -241,12 +241,12 @@ namespace Server.Menus.Questions
public CloseTimer(Mobile m) : base(TimeSpan.Zero, TimeSpan.FromSeconds(1.0))
{
m_Mobile = m;
m_End = DateTime.UtcNow + TimeSpan.FromMinutes(3.0);
m_End = Core.Now + TimeSpan.FromMinutes(3.0);
}
protected override void OnTick()
{
if (m_Mobile.NetState == null || DateTime.UtcNow > m_End)
if (m_Mobile.NetState == null || Core.Now > m_End)
{
m_Mobile.Frozen = false;
m_Mobile.CloseGump<StuckMenu>();
@ -275,12 +275,12 @@ namespace Server.Menus.Questions
m_Mobile = mobile;
m_Destination = destination;
m_End = DateTime.UtcNow + delay;
m_End = Core.Now + delay;
}
protected override void OnTick()
{
if (DateTime.UtcNow < m_End)
if (Core.Now < m_End)
{
m_Mobile.Frozen = true;
}