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:
parent
5de6edbeb8
commit
6c4308bce6
208 changed files with 660 additions and 793 deletions
|
|
@ -47,32 +47,10 @@ namespace Server.Misc
|
|||
public DateTime StartTime { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster, AccessLevel.Administrator)]
|
||||
public TimeSpan TimeRemaining
|
||||
{
|
||||
get
|
||||
{
|
||||
if (StartTime == DateTime.MinValue || !m_Active)
|
||||
{
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var ts = StartTime + Duration - DateTime.UtcNow;
|
||||
|
||||
if (ts < TimeSpan.Zero)
|
||||
{
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
return ts;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
}
|
||||
}
|
||||
public TimeSpan TimeRemaining =>
|
||||
StartTime == DateTime.MinValue || !m_Active
|
||||
? TimeSpan.Zero
|
||||
: Utility.Max(StartTime + Duration - Core.Now, TimeSpan.Zero);
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster, AccessLevel.Administrator)]
|
||||
public bool Active
|
||||
|
|
@ -89,7 +67,7 @@ namespace Server.Misc
|
|||
|
||||
if (m_Active)
|
||||
{
|
||||
StartTime = DateTime.UtcNow;
|
||||
StartTime = Core.Now;
|
||||
m_ActivePollers.Add(this);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue