using Content.Server.GameTicking;
using Content.Server.GameTicking.Events;
using Content.Server.Atmos.Components;
using Robust.Shared.Console;
namespace Content.Server.Atmos.EntitySystems;
///
/// Executes the fixgridatmos console command for any entity with
/// when a round starts.
///
public sealed partial class FixGridAtmosOnRoundStartSystem : EntitySystem
{
[Dependency] private readonly IConsoleHost _consoleHost = default!;
[Dependency] private readonly IEntityManager _entities = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnRoundStarted);
}
private void OnRoundStarted(RoundStartedEvent ev)
{
var query = AllEntityQuery();
while (query.MoveNext(out var uid, out _, out var xform))
{
if (xform.GridUid is not { } grid)
continue;
if (!_entities.TryGetNetEntity(grid, out var netGrid))
continue;
_consoleHost.ExecuteCommand($"fixgridatmos {netGrid.Value.Id}");
}
}
}