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
|
|
@ -75,7 +75,7 @@ namespace Server.Multis
|
|||
|
||||
public BaseBoat() : base(0x0)
|
||||
{
|
||||
m_DecayTime = DateTime.UtcNow + BoatDecayDelay;
|
||||
m_DecayTime = Core.Now + BoatDecayDelay;
|
||||
|
||||
TillerMan = new TillerMan(this);
|
||||
Hold = new Hold(this);
|
||||
|
|
@ -168,29 +168,29 @@ namespace Server.Multis
|
|||
{
|
||||
get
|
||||
{
|
||||
var start = TimeOfDecay - BoatDecayDelay;
|
||||
var start = Core.Now - TimeOfDecay - BoatDecayDelay;
|
||||
|
||||
if (DateTime.UtcNow - start < TimeSpan.FromHours(1.0))
|
||||
if (start < TimeSpan.FromHours(1.0))
|
||||
{
|
||||
return 1043010; // This structure is like new.
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - start < TimeSpan.FromDays(2.0))
|
||||
if (start < TimeSpan.FromDays(2.0))
|
||||
{
|
||||
return 1043011; // This structure is slightly worn.
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - start < TimeSpan.FromDays(3.0))
|
||||
if (start < TimeSpan.FromDays(3.0))
|
||||
{
|
||||
return 1043012; // This structure is somewhat worn.
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - start < TimeSpan.FromDays(4.0))
|
||||
if (start < TimeSpan.FromDays(4.0))
|
||||
{
|
||||
return 1043013; // This structure is fairly worn.
|
||||
}
|
||||
|
||||
if (DateTime.UtcNow - start < TimeSpan.FromDays(5.0))
|
||||
if (start < TimeSpan.FromDays(5.0))
|
||||
{
|
||||
return 1043014; // This structure is greatly worn.
|
||||
}
|
||||
|
|
@ -527,7 +527,7 @@ namespace Server.Multis
|
|||
|
||||
public void Refresh()
|
||||
{
|
||||
m_DecayTime = DateTime.UtcNow + BoatDecayDelay;
|
||||
m_DecayTime = Core.Now + BoatDecayDelay;
|
||||
|
||||
TillerMan?.InvalidateProperties();
|
||||
}
|
||||
|
|
@ -539,7 +539,7 @@ namespace Server.Multis
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!IsMoving && DateTime.UtcNow >= m_DecayTime)
|
||||
if (!IsMoving && Core.Now >= m_DecayTime)
|
||||
{
|
||||
new DecayTimer(this).Start();
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ namespace Server.Multis
|
|||
|
||||
if (setDecayTime)
|
||||
{
|
||||
m_DecayTime = DateTime.UtcNow + DecayDelay;
|
||||
m_DecayTime = Core.Now + DecayDelay;
|
||||
}
|
||||
|
||||
m_DecayTimer = Timer.DelayCall(DecayDelay, Delete);
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ namespace Server.Multis
|
|||
{
|
||||
AllHouses.Add(this);
|
||||
|
||||
LastRefreshed = DateTime.UtcNow;
|
||||
LastRefreshed = Core.Now;
|
||||
|
||||
BuiltOn = DateTime.UtcNow;
|
||||
BuiltOn = Core.Now;
|
||||
LastTraded = DateTime.MinValue;
|
||||
|
||||
Doors = new List<BaseDoor>();
|
||||
|
|
@ -203,14 +203,14 @@ namespace Server.Multis
|
|||
ResetDynamicDecay();
|
||||
}
|
||||
|
||||
LastRefreshed = DateTime.UtcNow;
|
||||
LastRefreshed = Core.Now;
|
||||
result = DecayLevel.Ageless;
|
||||
}
|
||||
else if (DynamicDecay.Enabled)
|
||||
{
|
||||
var stage = m_CurrentStage;
|
||||
|
||||
if (stage == DecayLevel.Ageless || DynamicDecay.Decays(stage) && NextDecayStage <= DateTime.UtcNow)
|
||||
if (stage == DecayLevel.Ageless || DynamicDecay.Decays(stage) && NextDecayStage <= Core.Now)
|
||||
{
|
||||
SetDynamicDecay(++stage);
|
||||
}
|
||||
|
|
@ -531,7 +531,7 @@ namespace Server.Multis
|
|||
|
||||
public DecayLevel GetOldDecayLevel()
|
||||
{
|
||||
var timeAfterRefresh = DateTime.UtcNow - LastRefreshed;
|
||||
var timeAfterRefresh = Core.Now - LastRefreshed;
|
||||
var percent = (int)(timeAfterRefresh.Ticks * 1000 / DecayPeriod.Ticks);
|
||||
|
||||
if (percent >= 1000) // 100.0%
|
||||
|
|
@ -576,7 +576,7 @@ namespace Server.Multis
|
|||
|
||||
var oldLevel = DecayLevel;
|
||||
|
||||
LastRefreshed = DateTime.UtcNow;
|
||||
LastRefreshed = Core.Now;
|
||||
|
||||
if (DynamicDecay.Enabled)
|
||||
{
|
||||
|
|
@ -2416,7 +2416,7 @@ namespace Server.Multis
|
|||
var info = m.Aggressed[i];
|
||||
|
||||
if (info.Defender.Player && info.Defender.Alive &&
|
||||
DateTime.UtcNow - info.LastCombatTime < HouseRegion.CombatHeatDelay &&
|
||||
Core.Now - info.LastCombatTime < HouseRegion.CombatHeatDelay &&
|
||||
(!(m.Guild is Guild attackerGuild) || !(info.Defender.Guild is Guild defenderGuild) ||
|
||||
defenderGuild != attackerGuild && !defenderGuild.IsEnemy(attackerGuild)))
|
||||
{
|
||||
|
|
@ -2935,7 +2935,7 @@ namespace Server.Multis
|
|||
var child = children[j];
|
||||
|
||||
if (child.Decays && !child.IsLockedDown && !child.IsSecure &&
|
||||
child.LastMoved + child.DecayTime <= DateTime.UtcNow)
|
||||
child.LastMoved + child.DecayTime <= Core.Now)
|
||||
{
|
||||
Timer.DelayCall(child.Delete);
|
||||
}
|
||||
|
|
@ -3176,7 +3176,7 @@ namespace Server.Multis
|
|||
|
||||
if (version < 11)
|
||||
{
|
||||
LastRefreshed = DateTime.UtcNow + TimeSpan.FromHours(24 * Utility.RandomDouble());
|
||||
LastRefreshed = Core.Now + TimeSpan.FromHours(24 * Utility.RandomDouble());
|
||||
}
|
||||
|
||||
if (DynamicDecay.Enabled && !loadedDynamicDecay)
|
||||
|
|
@ -3633,7 +3633,7 @@ namespace Server.Multis
|
|||
|
||||
if (DynamicDecay.Decays(level))
|
||||
{
|
||||
NextDecayStage = DateTime.UtcNow + DynamicDecay.GetRandomDuration(level);
|
||||
NextDecayStage = Core.Now + DynamicDecay.GetRandomDuration(level);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3764,7 +3764,7 @@ namespace Server.Multis
|
|||
m_House.Friends.Clear();
|
||||
m_House.CoOwners.Clear();
|
||||
m_House.ChangeLocks(to);
|
||||
m_House.LastTraded = DateTime.UtcNow;
|
||||
m_House.LastTraded = Core.Now;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ namespace Server.Multis
|
|||
if (canClaim && !BaseHouse.HasAccountHouse(from))
|
||||
{
|
||||
Owner.Owner = from;
|
||||
Owner.LastTraded = DateTime.UtcNow;
|
||||
Owner.LastTraded = Core.Now;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue