using System.Collections.Generic; using System.Linq; using Content.Client.Atmos.EntitySystems; using Content.Shared.Atmos.Prototypes; using JetBrains.Annotations; using Robust.Client.AutoGenerated; using Robust.Client.Console; using Robust.Client.Player; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Shared.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Map; using Robust.Shared.Map.Components; namespace Content.Client.Administration.UI.Tabs.AtmosTab { [GenerateTypedNameReferences] [UsedImplicitly] public sealed partial class AddGasWindow : DefaultWindow { private IEnumerable? _gridData; private IEnumerable? _gasData; protected override void EnteredTree() { // Fill out grids _gridData = IoCManager.Resolve().GetAllGrids().Where(g => (int) g.Owner != 0); foreach (var grid in _gridData) { var player = IoCManager.Resolve().LocalPlayer?.ControlledEntity; var playerGrid = IoCManager.Resolve().GetComponentOrNull(player)?.GridUid; GridOptions.AddItem($"{grid.Owner} {(playerGrid == grid.Owner ? " (Current)" : "")}"); } GridOptions.OnItemSelected += eventArgs => GridOptions.SelectId(eventArgs.Id); // Fill out gases _gasData = EntitySystem.Get().Gases; foreach (var gas in _gasData) { GasOptions.AddItem($"{gas.Name} ({gas.ID})"); } GasOptions.OnItemSelected += eventArgs => GasOptions.SelectId(eventArgs.Id); SubmitButton.OnPressed += SubmitButtonOnOnPressed; } private void SubmitButtonOnOnPressed(BaseButton.ButtonEventArgs obj) { if (_gridData == null || _gasData == null) return; var gridList = _gridData.ToList(); var gridIndex = gridList[GridOptions.SelectedId].Owner; var gasList = _gasData.ToList(); var gasId = gasList[GasOptions.SelectedId].ID; IoCManager.Resolve().ExecuteCommand( $"addgas {TileXSpin.Value} {TileYSpin.Value} {gridIndex} {gasId} {AmountSpin.Value}"); } } }