Switch to DateTime from DateTimeOffset (Addresses #1187) (#1195)

Co-authored-by: Alexandru Macocian <amacocian@microsoft.com>
This commit is contained in:
2026-01-02 13:37:04 +02:00
parent 8077d36e77
commit 3044861652
19 changed files with 84 additions and 168 deletions
+2 -2
View File
@@ -7,12 +7,12 @@ public sealed class ByteConsumerEntry(
{
private readonly Action<ReadOnlySpan<byte>> handler = handler.ThrowIfNull();
private DateTimeOffset lastConsume = DateTimeOffset.MinValue;
private DateTime lastConsume = DateTime.MinValue;
public Guid Id { get; } = id;
public TimeSpan Frequency { get; } = freq;
public void TryConsume(DateTimeOffset currentTime, ReadOnlySpan<byte> value)
public void TryConsume(DateTime currentTime, ReadOnlySpan<byte> value)
{
if (currentTime - this.lastConsume >= this.Frequency)
{
+9 -9
View File
@@ -36,8 +36,8 @@ public sealed class MainPlayerService : IDisposable
private TimeSpan minUpdateFrequency = TimeSpan.MaxValue;
private MainPlayerState? mainPlayerState;
private DateTimeOffset lastUpdateTime = DateTimeOffset.MinValue;
private DateTimeOffset lastFrequencyUpdate = DateTimeOffset.MinValue;
private DateTime lastUpdateTime = DateTime.MinValue;
private DateTime lastFrequencyUpdate = DateTime.MinValue;
public MainPlayerService(
ChatService chatService,
@@ -140,7 +140,7 @@ public sealed class MainPlayerService : IDisposable
var attributeIds = new Array12Uint();
var attributeValues = new Array12Uint();
var skills = new Array8Uint();
for(var i = 0; i < singleBuild.Attributes.Count && i < 12; i++)
for (var i = 0; i < singleBuild.Attributes.Count && i < 12; i++)
{
if (singleBuild.Attributes[i].Attribute is null)
{
@@ -151,7 +151,7 @@ public sealed class MainPlayerService : IDisposable
attributeValues[i] = (uint)singleBuild.Attributes[i].Points;
}
for(var i =0; i < singleBuild.Skills.Count && i < 8; i++)
for (var i = 0; i < singleBuild.Skills.Count && i < 8; i++)
{
skills[i] = (uint)singleBuild.Skills[i].Id;
}
@@ -408,7 +408,7 @@ public sealed class MainPlayerService : IDisposable
var currentTier = player.ActiveTitleTier;
TitleContext? currentTitle = default;
int? id = -1;
for(var i = 0; i < gameContext.Pointer->WorldContext->Titles.Size; i++)
for (var i = 0; i < gameContext.Pointer->WorldContext->Titles.Size; i++)
{
var title = gameContext.Pointer->WorldContext->Titles.Skip(i).FirstOrDefault();
if (title.CurrentTitleTierIndex == currentTier)
@@ -493,7 +493,7 @@ public sealed class MainPlayerService : IDisposable
ArgumentOutOfRangeException.ThrowIfLessThanOrEqual(frequency, TimeSpan.Zero);
var id = Guid.NewGuid();
var now = DateTimeOffset.UtcNow;
var now = DateTime.UtcNow;
var entry = new ByteConsumerEntry(id, frequency, onUpdate);
this.consumers[id] = entry;
@@ -509,7 +509,7 @@ public sealed class MainPlayerService : IDisposable
private unsafe void OnGameThreadProc()
{
var scopedLogger = this.logger.CreateScopedLogger();
var now = DateTimeOffset.UtcNow;
var now = DateTime.UtcNow;
/*
* Periodically adjust the frequency of updates based on connected clients.
@@ -627,13 +627,13 @@ public sealed class MainPlayerService : IDisposable
{
this.minUpdateFrequency = TimeSpan.MaxValue;
scopedLogger.LogDebug("No consumers registered, disabling updates");
this.lastFrequencyUpdate = DateTimeOffset.UtcNow;
this.lastFrequencyUpdate = DateTime.UtcNow;
return;
}
var minValue = this.consumers.Values.Min(c => c.Frequency);
scopedLogger.LogDebug("Adjusted update frequency to {frequency}", minValue);
this.lastFrequencyUpdate = DateTimeOffset.UtcNow;
this.lastFrequencyUpdate = DateTime.UtcNow;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]