using System.Collections; namespace TanksServer.GameLogic; internal sealed class TankManager(ILogger logger) : IEnumerable { private readonly ConcurrentDictionary _tanks = new(); public void Add(Tank tank) { logger.LogInformation("Tank added for player {}", tank.Owner.Id); _tanks.TryAdd(tank, 0); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public IEnumerator GetEnumerator() => _tanks.Keys.GetEnumerator(); public void Remove(Tank tank) { logger.LogInformation("Tank removed for player {}", tank.Owner.Id); _tanks.Remove(tank, out _); } }