Revert "Revert "PVS & client state handling changes"" (#3152)

This commit is contained in:
Leon Friedrich
2022-08-21 10:30:28 +12:00
committed by GitHub
parent f6b7606648
commit 6a8266af7e
43 changed files with 1512 additions and 1101 deletions

View File

@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Microsoft.Extensions.ObjectPool;
using Robust.Client.Timing;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.IoC;
@@ -15,7 +16,7 @@ namespace Robust.Client.GameStates;
/// </summary>
internal sealed class ClientDirtySystem : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IClientGameTiming _timing = default!;
private readonly Dictionary<GameTick, HashSet<EntityUid>> _dirtyEntities = new();
@@ -49,14 +50,14 @@ internal sealed class ClientDirtySystem : EntitySystem
_dirtyEntities.Clear();
}
public IEnumerable<EntityUid> GetDirtyEntities(GameTick currentTick)
public IEnumerable<EntityUid> GetDirtyEntities()
{
_dirty.Clear();
// This is just to avoid collection being modified during iteration unfortunately.
foreach (var (tick, dirty) in _dirtyEntities)
{
if (tick < currentTick) continue;
if (tick < _timing.LastRealTick) continue;
foreach (var ent in dirty)
{
_dirty.Add(ent);