diff --git a/Content.Client/EntryPoint.cs b/Content.Client/EntryPoint.cs index a4edb0736c..006199f5e7 100644 --- a/Content.Client/EntryPoint.cs +++ b/Content.Client/EntryPoint.cs @@ -18,6 +18,7 @@ using Content.Shared.GameObjects.Components.Chemistry.ChemMaster; using Content.Shared.GameObjects.Components.Chemistry.ReagentDispenser; using Content.Shared.GameObjects.Components.Gravity; using Content.Shared.GameObjects.Components.Markers; +using Content.Shared.GameObjects.Components.Power.AME; using Content.Shared.GameObjects.Components.Research; using Content.Shared.GameObjects.Components.VendingMachines; using Content.Shared.Kitchen; @@ -72,6 +73,7 @@ namespace Content.Client factory.Register(); factory.Register(); factory.Register(); + factory.Register(); prototypes.RegisterIgnore("material"); prototypes.RegisterIgnore("reaction"); //Chemical reactions only needed by server. Reactions checks are server-side. diff --git a/Content.Client/GameObjects/Components/AcceptCloningBoundUserInterface.cs b/Content.Client/GameObjects/Components/AcceptCloningBoundUserInterface.cs new file mode 100644 index 0000000000..9b38059110 --- /dev/null +++ b/Content.Client/GameObjects/Components/AcceptCloningBoundUserInterface.cs @@ -0,0 +1,45 @@ +using Content.Shared.GameObjects.Components; +using JetBrains.Annotations; +using Robust.Client.GameObjects.Components.UserInterface; + +namespace Content.Client.GameObjects.Components +{ + [UsedImplicitly] + public class AcceptCloningBoundUserInterface : BoundUserInterface + { + + public AcceptCloningBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) + { + } + + private AcceptCloningWindow _window; + + protected override void Open() + { + base.Open(); + + _window = new AcceptCloningWindow(); + _window.OnClose += Close; + _window.DenyButton.OnPressed += _ => _window.Close(); + _window.ConfirmButton.OnPressed += _ => + { + SendMessage( + new SharedAcceptCloningComponent.UiButtonPressedMessage( + SharedAcceptCloningComponent.UiButton.Accept)); + _window.Close(); + }; + _window.OpenCentered(); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + _window?.Dispose(); + } + } + + } +} diff --git a/Content.Client/GameObjects/Components/AcceptCloningWindow.cs b/Content.Client/GameObjects/Components/AcceptCloningWindow.cs new file mode 100644 index 0000000000..1731cc9676 --- /dev/null +++ b/Content.Client/GameObjects/Components/AcceptCloningWindow.cs @@ -0,0 +1,50 @@ +#nullable enable +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.Localization; + +namespace Content.Client.GameObjects.Components +{ + public sealed class AcceptCloningWindow : SS14Window + { + public readonly Button DenyButton; + public readonly Button ConfirmButton; + + public AcceptCloningWindow() + { + + Title = Loc.GetString("Cloning Machine"); + + Contents.AddChild(new VBoxContainer + { + Children = + { + new VBoxContainer + { + Children = + { + (new Label + { + Text = Loc.GetString("You are being cloned! Transfer your soul to the clone body?") + }), + new HBoxContainer + { + Children = + { + (ConfirmButton = new Button + { + Text = Loc.GetString("Yes"), + }), + (DenyButton = new Button + { + Text = Loc.GetString("No"), + }) + } + }, + } + }, + } + }); + } + } +} diff --git a/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs b/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs index f776411554..0e6e534971 100644 --- a/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs +++ b/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs @@ -2,6 +2,7 @@ using System.Linq; using Content.Client.GameObjects.Components.Mobs; using Content.Client.UserInterface; +using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.Input; using Robust.Client.GameObjects; using Robust.Client.Interfaces.Input; diff --git a/Content.Client/GameObjects/Components/Atmos/PipeVisualizer.cs b/Content.Client/GameObjects/Components/Atmos/PipeVisualizer.cs new file mode 100644 index 0000000000..add360dcce --- /dev/null +++ b/Content.Client/GameObjects/Components/Atmos/PipeVisualizer.cs @@ -0,0 +1,68 @@ +using Content.Shared.GameObjects.Components.Atmos; +using JetBrains.Annotations; +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Client.Graphics; +using Robust.Client.Interfaces.ResourceManagement; +using Robust.Client.ResourceManagement; +using Robust.Shared.GameObjects.Components.Renderable; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Utility; +using System; +using YamlDotNet.RepresentationModel; + +namespace Content.Client.GameObjects.Components.Atmos +{ + [UsedImplicitly] + public class PipeVisualizer : AppearanceVisualizer + { + private RSI _pipeRSI; + + public override void LoadData(YamlMappingNode node) + { + base.LoadData(node); + + var rsiString = node.GetNode("pipeRSI").ToString(); + var rsiPath = SharedSpriteComponent.TextureRoot / rsiString; + try + { + var resourceCache = IoCManager.Resolve(); + var resource = resourceCache.GetResource(rsiPath); + _pipeRSI = resource.RSI; + } + catch (Exception e) + { + Logger.ErrorS("go.pipevisualizer", "Unable to load RSI '{0}'. Trace:\n{1}", rsiPath, e); + } + } + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) + { + return; + } + if (!component.TryGetData(PipeVisuals.VisualState, out PipeVisualStateSet pipeVisualStateSet)) + { + return; + } + for (var i = 0; i < pipeVisualStateSet.PipeVisualStates.Length; i++) + { + var pipeVisualState = pipeVisualStateSet.PipeVisualStates[i]; + var rsiState = "pipe"; + rsiState += pipeVisualState.PipeDirection.ToString(); + rsiState += ((int) pipeVisualState.ConduitLayer).ToString(); + + var pipeLayerKey = "pipeLayer" + i.ToString(); + sprite.LayerMapReserveBlank(pipeLayerKey); + var currentPipeLayer = sprite.LayerMapGet(pipeLayerKey); + sprite.LayerSetRSI(currentPipeLayer, _pipeRSI); + sprite.LayerSetState(currentPipeLayer, rsiState); + sprite.LayerSetVisible(currentPipeLayer, true); + } + } + } +} diff --git a/Content.Client/GameObjects/Components/Atmos/PumpVisualizer.cs b/Content.Client/GameObjects/Components/Atmos/PumpVisualizer.cs new file mode 100644 index 0000000000..a4b8c9d3dd --- /dev/null +++ b/Content.Client/GameObjects/Components/Atmos/PumpVisualizer.cs @@ -0,0 +1,85 @@ +using Content.Shared.GameObjects.Atmos; +using JetBrains.Annotations; +using Robust.Client.GameObjects; +using Robust.Client.Graphics; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Client.Interfaces.ResourceManagement; +using Robust.Client.ResourceManagement; +using Robust.Shared.GameObjects.Components.Renderable; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Utility; +using System; +using YamlDotNet.RepresentationModel; + +namespace Content.Client.GameObjects.Components.Atmos +{ + [UsedImplicitly] + public class PumpVisualizer : AppearanceVisualizer + { + private RSI _pumpRSI; + + public override void LoadData(YamlMappingNode node) + { + base.LoadData(node); + + var rsiString = node.GetNode("pumpRSI").ToString(); + var rsiPath = SharedSpriteComponent.TextureRoot / rsiString; + try + { + var resourceCache = IoCManager.Resolve(); + var resource = resourceCache.GetResource(rsiPath); + _pumpRSI = resource.RSI; + } + catch (Exception e) + { + Logger.ErrorS("go.pumpvisualizer", "Unable to load RSI '{0}'. Trace:\n{1}", rsiPath, e); + } + } + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + if (!component.Owner.TryGetComponent(out ISpriteComponent sprite)) + { + return; + } + if (!component.TryGetData(PumpVisuals.VisualState, out PumpVisualState pumpVisualState)) + { + return; + } + var pumpBaseState = "pump"; + pumpBaseState += pumpVisualState.InletDirection.ToString(); + pumpBaseState += ((int) pumpVisualState.InletConduitLayer).ToString(); + pumpBaseState += pumpVisualState.OutletDirection.ToString(); + pumpBaseState += ((int) pumpVisualState.OutletConduitLayer).ToString(); + + sprite.LayerMapReserveBlank(Layer.PumpBase); + var basePumpLayer = sprite.LayerMapGet(Layer.PumpBase); + sprite.LayerSetRSI(basePumpLayer, _pumpRSI); + sprite.LayerSetState(basePumpLayer, pumpBaseState); + sprite.LayerSetVisible(basePumpLayer, true); + + + + var pumpEnabledAnimationState = "pumpEnabled"; + pumpEnabledAnimationState += pumpVisualState.InletDirection.ToString(); + pumpEnabledAnimationState += ((int) pumpVisualState.InletConduitLayer).ToString(); + pumpEnabledAnimationState += pumpVisualState.OutletDirection.ToString(); + pumpEnabledAnimationState += ((int) pumpVisualState.OutletConduitLayer).ToString(); + + sprite.LayerMapReserveBlank(Layer.PumpEnabled); + var pumpEnabledAnimationLayer = sprite.LayerMapGet(Layer.PumpEnabled); + sprite.LayerSetRSI(pumpEnabledAnimationLayer, _pumpRSI); + sprite.LayerSetState(pumpEnabledAnimationLayer, pumpEnabledAnimationState); + sprite.LayerSetVisible(pumpEnabledAnimationLayer, pumpVisualState.PumpEnabled); + } + + private enum Layer + { + PumpBase, + PumpEnabled, + } + } +} diff --git a/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs b/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs index 767f354f4b..83df6704b7 100644 --- a/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs +++ b/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs @@ -1,8 +1,10 @@ #nullable enable using Content.Client.GameObjects.Components.Disposal; +using Content.Client.GameObjects.Components.MedicalScanner; using Content.Client.Interfaces.GameObjects.Components.Interaction; using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Medical; using Robust.Client.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -14,14 +16,20 @@ namespace Content.Client.GameObjects.Components.Body { [RegisterComponent] [ComponentReference(typeof(IDamageableComponent))] - [ComponentReference(typeof(IBodyManagerComponent))] + [ComponentReference(typeof(ISharedBodyManagerComponent))] public class BodyManagerComponent : SharedBodyManagerComponent, IClientDraggable { [Dependency] private readonly IEntityManager _entityManager = default!; public bool ClientCanDropOn(CanDropEventArgs eventArgs) { - return eventArgs.Target.HasComponent(); + if ( + eventArgs.Target.HasComponent()|| + eventArgs.Target.HasComponent()) + { + return true; + } + return false; } public bool ClientCanDrag(CanDragEventArgs eventArgs) diff --git a/Content.Client/GameObjects/Components/CloningPod/CloningPodBoundUserInterface.cs b/Content.Client/GameObjects/Components/CloningPod/CloningPodBoundUserInterface.cs new file mode 100644 index 0000000000..63760a880e --- /dev/null +++ b/Content.Client/GameObjects/Components/CloningPod/CloningPodBoundUserInterface.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Medical; +using JetBrains.Annotations; +using Robust.Client.GameObjects.Components.UserInterface; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using static Content.Shared.GameObjects.Components.Medical.SharedCloningPodComponent; + +namespace Content.Client.GameObjects.Components.CloningPod +{ + [UsedImplicitly] + public class CloningPodBoundUserInterface : BoundUserInterface + { + public CloningPodBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) + { + } + + private CloningPodWindow _window; + + protected override void Open() + { + base.Open(); + + + _window = new CloningPodWindow(new Dictionary()); + _window.OnClose += Close; + _window.CloneButton.OnPressed += _ => + { + if (_window.SelectedScan != null) + { + SendMessage(new CloningPodUiButtonPressedMessage(UiButton.Clone, (int) _window.SelectedScan)); + } + }; + _window.EjectButton.OnPressed += _ => + { + SendMessage(new CloningPodUiButtonPressedMessage(UiButton.Eject, null)); + }; + _window.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + _window.Populate((CloningPodBoundUserInterfaceState) state); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + _window?.Dispose(); + } + } + } +} diff --git a/Content.Client/GameObjects/Components/CloningPod/CloningPodVisualizer.cs b/Content.Client/GameObjects/Components/CloningPod/CloningPodVisualizer.cs new file mode 100644 index 0000000000..6838794e8c --- /dev/null +++ b/Content.Client/GameObjects/Components/CloningPod/CloningPodVisualizer.cs @@ -0,0 +1,41 @@ +using System; +using Content.Shared.GameObjects.Components.Medical; +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using static Content.Shared.GameObjects.Components.Medical.SharedCloningPodComponent; +using static Content.Shared.GameObjects.Components.Medical.SharedCloningPodComponent.CloningPodStatus; + +namespace Content.Client.GameObjects.Components.CloningPod +{ + public class CloningPodVisualizer : AppearanceVisualizer + { + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + var sprite = component.Owner.GetComponent(); + if (!component.TryGetData(CloningPodVisuals.Status, out CloningPodStatus status)) return; + sprite.LayerSetState(CloningPodVisualLayers.Machine, StatusToMachineStateId(status)); + } + + private string StatusToMachineStateId(CloningPodStatus status) + { + //TODO: implement NoMind for if the mind is not yet in the body + //TODO: Find a use for GORE POD + switch (status) + { + case Cloning: return "pod_1"; + case NoMind: return "pod_e"; + case Gore: return "pod_g"; + case Idle: return "pod_0"; + default: + throw new ArgumentOutOfRangeException(nameof(status), status, "unknown CloningPodStatus"); + } + } + + public enum CloningPodVisualLayers + { + Machine, + } + } +} diff --git a/Content.Client/GameObjects/Components/CloningPod/CloningPodWindow.cs b/Content.Client/GameObjects/Components/CloningPod/CloningPodWindow.cs new file mode 100644 index 0000000000..8cc1c3b909 --- /dev/null +++ b/Content.Client/GameObjects/Components/CloningPod/CloningPodWindow.cs @@ -0,0 +1,442 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.Localization; +using Robust.Shared.Maths; +using Robust.Shared.Timing; +using Robust.Shared.Utility; +using Robust.Shared.Localization; +using static Content.Shared.GameObjects.Components.Medical.SharedCloningPodComponent; + +namespace Content.Client.GameObjects.Components.CloningPod +{ + public sealed class CloningPodWindow : SS14Window + { + private Dictionary _scanManager; + + private readonly VBoxContainer _mainVBox; + private readonly ScanListContainer _scanList; + private readonly LineEdit _searchBar; + private readonly Button _clearButton; + public readonly Button CloneButton; + public readonly Button EjectButton; + private readonly CloningScanButton _measureButton; + private CloningScanButton? _selectedButton; + private Label _progressLabel; + private readonly ProgressBar _cloningProgressBar; + private Label _mindState; + + protected override Vector2 ContentsMinimumSize => _mainVBox?.CombinedMinimumSize ?? Vector2.Zero; + private CloningPodBoundUserInterfaceState _lastUpdate = null!; + + // List of scans that are visible based on current filter criteria. + private readonly Dictionary _filteredScans = new Dictionary(); + + // The indices of the visible scans last time UpdateVisibleScans was ran. + // This is inclusive, so end is the index of the last scan, not right after it. + private (int start, int end) _lastScanIndices; + + public int? SelectedScan; + + protected override Vector2? CustomSize => (250, 300); + + public CloningPodWindow( + Dictionary scanManager) + { + _scanManager = scanManager; + + + Title = Loc.GetString("Cloning Machine"); + + Contents.AddChild(_mainVBox = new VBoxContainer + { + Children = + { + new HBoxContainer + { + Children = + { + (_searchBar = new LineEdit + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + PlaceHolder = Loc.GetString("Search") + }), + + (_clearButton = new Button + { + Disabled = true, + Text = Loc.GetString("Clear"), + }) + } + }, + new ScrollContainer + { + CustomMinimumSize = new Vector2(200.0f, 0.0f), + SizeFlagsVertical = SizeFlags.FillExpand, + Children = + { + (_scanList = new ScanListContainer()) + } + }, + new VBoxContainer + { + Children = + { + (CloneButton = new Button + { + Text = Loc.GetString("Clone") + }) + } + }, + (_measureButton = new CloningScanButton {Visible = false}), + (_cloningProgressBar = new ProgressBar + { + CustomMinimumSize = (200, 20), + SizeFlagsHorizontal = SizeFlags.Fill, + MinValue = 0, + MaxValue = 10, + Page = 0, + Value = 0.5f, + Children = + { + (_progressLabel = new Label()) + } + }), + (EjectButton = new Button + { + Text = Loc.GetString("Eject Body") + }), + new HBoxContainer + { + Children = + { + new Label() + { + Text = Loc.GetString("Neural Interface: ") + }, + (_mindState = new Label() + { + Text = Loc.GetString("No Activity"), + FontColorOverride = Color.Red + }), + } + } + } + }); + + + _searchBar.OnTextChanged += OnSearchBarTextChanged; + _clearButton.OnPressed += OnClearButtonPressed; + + BuildEntityList(); + + _searchBar.GrabKeyboardFocus(); + } + + public void Populate(CloningPodBoundUserInterfaceState state) + { + //Ignore useless updates or we can't interact with the UI + //TODO: come up with a better comparision, probably write a comparator because '.Equals' doesn't work + if (_lastUpdate == null || _lastUpdate.MindIdName.Count != state.MindIdName.Count) + { + _scanManager = state.MindIdName; + BuildEntityList(); + _lastUpdate = state; + } + + var percentage = state.Progress / _cloningProgressBar.MaxValue * 100; + _progressLabel.Text = $"{percentage:0}%"; + + _cloningProgressBar.Value = state.Progress; + _mindState.Text = Loc.GetString(state.MindPresent ? "Consciousness Detected" : "No Activity"); + _mindState.FontColorOverride = state.MindPresent ? Color.Green : Color.Red; + } + + private void OnSearchBarTextChanged(LineEdit.LineEditEventArgs args) + { + BuildEntityList(args.Text); + _clearButton.Disabled = string.IsNullOrEmpty(args.Text); + } + + private void OnClearButtonPressed(BaseButton.ButtonEventArgs args) + { + _searchBar.Clear(); + BuildEntityList(""); + } + + + private void BuildEntityList(string? searchStr = null) + { + _filteredScans.Clear(); + _scanList.RemoveAllChildren(); + // Reset last scan indices so it automatically updates the entire list. + _lastScanIndices = (0, -1); + _scanList.RemoveAllChildren(); + _selectedButton = null; + searchStr = searchStr?.ToLowerInvariant(); + + foreach (var scan in _scanManager) + { + if (searchStr != null && !_doesScanMatchSearch(scan.Value, searchStr)) + { + continue; + } + + _filteredScans.Add(scan.Key, scan.Value); + } + + //TODO: set up sort + //_filteredScans.Sort((a, b) => string.Compare(a.ToString(), b.ToString(), StringComparison.Ordinal)); + + _scanList.TotalItemCount = _filteredScans.Count; + } + + private void UpdateVisibleScans() + { + // Update visible buttons in the scan list. + + // Calculate index of first scan to render based on current scroll. + var height = _measureButton.CombinedMinimumSize.Y + ScanListContainer.Separation; + var offset = -_scanList.Position.Y; + var startIndex = (int) Math.Floor(offset / height); + _scanList.ItemOffset = startIndex; + + var (prevStart, prevEnd) = _lastScanIndices; + + // Calculate index of final one. + var endIndex = startIndex - 1; + var spaceUsed = -height; // -height instead of 0 because else it cuts off the last button. + + while (spaceUsed < _scanList.Parent!.Height) + { + spaceUsed += height; + endIndex += 1; + } + + endIndex = Math.Min(endIndex, _filteredScans.Count - 1); + + if (endIndex == prevEnd && startIndex == prevStart) + { + // Nothing changed so bye. + return; + } + + _lastScanIndices = (startIndex, endIndex); + + // Delete buttons at the start of the list that are no longer visible (scrolling down). + for (var i = prevStart; i < startIndex && i <= prevEnd; i++) + { + var control = (CloningScanButton) _scanList.GetChild(0); + DebugTools.Assert(control.Index == i); + _scanList.RemoveChild(control); + } + + // Delete buttons at the end of the list that are no longer visible (scrolling up). + for (var i = prevEnd; i > endIndex && i >= prevStart; i--) + { + var control = (CloningScanButton) _scanList.GetChild(_scanList.ChildCount - 1); + DebugTools.Assert(control.Index == i); + _scanList.RemoveChild(control); + } + + var array = _filteredScans.ToArray(); + + // Create buttons at the start of the list that are now visible (scrolling up). + for (var i = Math.Min(prevStart - 1, endIndex); i >= startIndex; i--) + { + InsertEntityButton(array[i], true, i); + } + + // Create buttons at the end of the list that are now visible (scrolling down). + for (var i = Math.Max(prevEnd + 1, startIndex); i <= endIndex; i++) + { + InsertEntityButton(array[i], false, i); + } + } + + // Create a spawn button and insert it into the start or end of the list. + private void InsertEntityButton(KeyValuePair scan, bool insertFirst, int index) + { + var button = new CloningScanButton + { + Scan = scan.Value, + Id = scan.Key, + Index = index // We track this index purely for debugging. + }; + button.ActualButton.OnToggled += OnItemButtonToggled; + var entityLabelText = scan.Value; + + button.EntityLabel.Text = entityLabelText; + + if (scan.Key == SelectedScan) + { + _selectedButton = button; + _selectedButton.ActualButton.Pressed = true; + } + + //TODO: replace with body's face + /*var tex = IconComponent.GetScanIcon(scan, resourceCache); + var rect = button.EntityTextureRect; + if (tex != null) + { + rect.Texture = tex.Default; + } + else + { + rect.Dispose(); + } + + rect.Dispose(); + */ + + _scanList.AddChild(button); + if (insertFirst) + { + button.SetPositionInParent(0); + } + } + + private static bool _doesScanMatchSearch(string scan, string searchStr) + { + return scan.ToLowerInvariant().Contains(searchStr); + } + + private void OnItemButtonToggled(BaseButton.ButtonToggledEventArgs args) + { + var item = (CloningScanButton) args.Button.Parent!; + if (_selectedButton == item) + { + _selectedButton = null; + SelectedScan = null; + return; + } + else if (_selectedButton != null) + { + _selectedButton.ActualButton.Pressed = false; + } + + _selectedButton = null; + SelectedScan = null; + + _selectedButton = item; + SelectedScan = item.Id; + } + + protected override void FrameUpdate(FrameEventArgs args) + { + base.FrameUpdate(args); + UpdateVisibleScans(); + } + + private class ScanListContainer : Container + { + // Quick and dirty container to do virtualization of the list. + // Basically, get total item count and offset to put the current buttons at. + // Get a constant minimum height and move the buttons in the list up to match the scrollbar. + private int _totalItemCount; + private int _itemOffset; + + public int TotalItemCount + { + get => _totalItemCount; + set + { + _totalItemCount = value; + MinimumSizeChanged(); + } + } + + public int ItemOffset + { + get => _itemOffset; + set + { + _itemOffset = value; + UpdateLayout(); + } + } + + public const float Separation = 2; + + protected override Vector2 CalculateMinimumSize() + { + if (ChildCount == 0) + { + return Vector2.Zero; + } + + var first = GetChild(0); + + var (minX, minY) = first.CombinedMinimumSize; + + return (minX, minY * TotalItemCount + (TotalItemCount - 1) * Separation); + } + + protected override void LayoutUpdateOverride() + { + if (ChildCount == 0) + { + return; + } + + var first = GetChild(0); + + var height = first.CombinedMinimumSize.Y; + var offset = ItemOffset * height + (ItemOffset - 1) * Separation; + + foreach (var child in Children) + { + FitChildInBox(child, UIBox2.FromDimensions(0, offset, Width, height)); + offset += Separation + height; + } + } + } + + [DebuggerDisplay("cloningbutton {" + nameof(Index) + "}")] + private class CloningScanButton : Control + { + public string Scan { get; set; } = default!; + public int Id { get; set; } + public Button ActualButton { get; private set; } + public Label EntityLabel { get; private set; } + public TextureRect EntityTextureRect { get; private set; } + public int Index { get; set; } + + public CloningScanButton() + { + AddChild(ActualButton = new Button + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + SizeFlagsVertical = SizeFlags.FillExpand, + ToggleMode = true, + }); + + AddChild(new HBoxContainer + { + Children = + { + (EntityTextureRect = new TextureRect + { + CustomMinimumSize = (32, 32), + SizeFlagsHorizontal = SizeFlags.ShrinkCenter, + SizeFlagsVertical = SizeFlags.ShrinkCenter, + Stretch = TextureRect.StretchMode.KeepAspectCentered, + CanShrink = true + }), + (EntityLabel = new Label + { + SizeFlagsVertical = SizeFlags.ShrinkCenter, + SizeFlagsHorizontal = SizeFlags.FillExpand, + Text = "", + ClipText = true + }) + } + }); + } + } + } +} diff --git a/Content.Client/GameObjects/Components/Doors/AirlockVisualizer.cs b/Content.Client/GameObjects/Components/Doors/AirlockVisualizer.cs index 8501122b59..4cc6278333 100644 --- a/Content.Client/GameObjects/Components/Doors/AirlockVisualizer.cs +++ b/Content.Client/GameObjects/Components/Doors/AirlockVisualizer.cs @@ -115,6 +115,7 @@ namespace Content.Client.GameObjects.Components.Doors var unlitVisible = true; var boltedVisible = false; + var weldedVisible = false; switch (state) { case DoorVisualState.Closed: @@ -145,6 +146,9 @@ namespace Content.Client.GameObjects.Components.Doors animPlayer.Play(DenyAnimation, AnimationKey); } break; + case DoorVisualState.Welded: + weldedVisible = true; + break; default: throw new ArgumentOutOfRangeException(); } @@ -159,6 +163,7 @@ namespace Content.Client.GameObjects.Components.Doors } sprite.LayerSetVisible(DoorVisualLayers.BaseUnlit, unlitVisible); + sprite.LayerSetVisible(DoorVisualLayers.BaseWelded, weldedVisible); sprite.LayerSetVisible(DoorVisualLayers.BaseBolted, unlitVisible && boltedVisible); } } @@ -167,6 +172,7 @@ namespace Content.Client.GameObjects.Components.Doors { Base, BaseUnlit, - BaseBolted + BaseWelded, + BaseBolted, } } diff --git a/Content.Client/GameObjects/Components/ExpendableLightVisualizer.cs b/Content.Client/GameObjects/Components/ExpendableLightVisualizer.cs new file mode 100644 index 0000000000..e24a50ea84 --- /dev/null +++ b/Content.Client/GameObjects/Components/ExpendableLightVisualizer.cs @@ -0,0 +1,39 @@ + +using Content.Shared.GameObjects.Components; +using JetBrains.Annotations; +using Robust.Client.GameObjects; +using System; + +namespace Content.Client.GameObjects.Components +{ + [UsedImplicitly] + public class ExpendableLightVisualizer : AppearanceVisualizer + { + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + if (component.Deleted) + { + return; + } + + if (component.TryGetData(ExpendableLightVisuals.State, out string lightBehaviourID)) + { + if (component.Owner.TryGetComponent(out var lightBehaviour)) + { + lightBehaviour.StopLightBehaviour(); + + if (lightBehaviourID != string.Empty) + { + lightBehaviour.StartLightBehaviour(lightBehaviourID); + } + else if (component.Owner.TryGetComponent(out var light)) + { + light.Enabled = false; + } + } + } + } + } +} diff --git a/Content.Client/GameObjects/Components/ExtinguisherCabinetVisualizer.cs b/Content.Client/GameObjects/Components/ExtinguisherCabinetVisualizer.cs new file mode 100644 index 0000000000..931a26229e --- /dev/null +++ b/Content.Client/GameObjects/Components/ExtinguisherCabinetVisualizer.cs @@ -0,0 +1,41 @@ +using Content.Shared.GameObjects.Components; +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; + +namespace Content.Client.GameObjects.Components +{ + public class ExtinguisherCabinetVisualizer : AppearanceVisualizer + { + private string _prefix; + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + + var sprite = component.Owner.GetComponent(); + + if (component.TryGetData(ExtinguisherCabinetVisuals.IsOpen, out bool isOpen)) + { + if (isOpen) + { + if (component.TryGetData(ExtinguisherCabinetVisuals.ContainsExtinguisher, out bool contains)) + { + if (contains) + { + sprite.LayerSetState(0, "extinguisher_full"); + } + else + { + sprite.LayerSetState(0, "extinguisher_empty"); + } + + } + } + else + { + sprite.LayerSetState(0, "extinguisher_closed"); + } + } + } + } +} diff --git a/Content.Client/GameObjects/Components/Interactable/ExpendableLightComponent.cs b/Content.Client/GameObjects/Components/Interactable/ExpendableLightComponent.cs new file mode 100644 index 0000000000..7559d71356 --- /dev/null +++ b/Content.Client/GameObjects/Components/Interactable/ExpendableLightComponent.cs @@ -0,0 +1,16 @@ + +using Content.Shared.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Client.GameObjects; + +namespace Content.Client.GameObjects.Components.Interactable +{ + /// + /// Component that represents a handheld expendable light which can be activated and eventually dies over time. + /// + [RegisterComponent] + public class ExpendableLightComponent : SharedExpendableLightComponent + { + + } +} diff --git a/Content.Client/GameObjects/Components/LightBehaviourComponent.cs b/Content.Client/GameObjects/Components/LightBehaviourComponent.cs new file mode 100644 index 0000000000..83ff452c0e --- /dev/null +++ b/Content.Client/GameObjects/Components/LightBehaviourComponent.cs @@ -0,0 +1,539 @@ + +using System; +using System.Collections.Generic; +using Robust.Client.GameObjects; +using Robust.Shared.Animations; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using Content.Shared.GameObjects.Components; +using Robust.Shared.Log; +using Robust.Shared.Maths; +using Robust.Shared.Interfaces.Serialization; +using Robust.Client.Animations; +using Robust.Shared.Interfaces.GameObjects; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Robust.Client.GameObjects.Components.Animations; +using System.Linq; + +namespace Content.Client.GameObjects.Components +{ + #region LIGHT_BEHAVIOURS + /// + /// Base class for all light behaviours to derive from. + /// This AnimationTrack derivative does not rely on keyframes since it often needs to have a randomized duration. + /// + [Serializable] + public abstract class LightBehaviourAnimationTrack : AnimationTrackProperty, IExposeData + { + [ViewVariables] public string ID { get; set; } + [ViewVariables] public string Property { get; protected set; } + [ViewVariables] public bool IsLooped { get; set; } + [ViewVariables] public bool Enabled { get; set; } + [ViewVariables] public float StartValue { get; set; } + [ViewVariables] public float EndValue { get; set; } + [ViewVariables] public float MinDuration { get; set; } + [ViewVariables] public float MaxDuration { get; set; } + [ViewVariables] public AnimationInterpolationMode InterpolateMode { get; set; } + + [ViewVariables] protected float MaxTime { get; set; } + protected PointLightComponent Light = default; + protected IRobustRandom RobustRandom = default; + + private float _maxTime = default; + + public virtual void ExposeData(ObjectSerializer serializer) + { + serializer.DataField(this, x => x.ID, "id", string.Empty); + serializer.DataField(this, x => x.IsLooped, "isLooped", false); + serializer.DataField(this, x => x.Enabled, "enabled", false); + serializer.DataField(this, x => x.StartValue, "startValue", 0f); + serializer.DataField(this, x => x.EndValue, "endValue", 2f); + serializer.DataField(this, x => x.MinDuration, "minDuration", -1f); + serializer.DataField(this, x => x.MaxDuration, "maxDuration", 2f); + serializer.DataField(this, x => x.Property, "property", "Radius"); + serializer.DataField(this, x => x.InterpolateMode, "interpolate", AnimationInterpolationMode.Linear); + } + + public void Initialize(PointLightComponent light) + { + Light = light; + RobustRandom = IoCManager.Resolve(); + + if (Enabled) + { + Light.Enabled = true; + } + + OnInitialize(); + } + + public void UpdatePlaybackValues(Animation owner) + { + Light.Enabled = true; + + if (MinDuration > 0) + { + MaxTime = (float) RobustRandom.NextDouble() * (MaxDuration - MinDuration) + MinDuration; + } + else + { + MaxTime = MaxDuration; + } + + owner.Length = TimeSpan.FromSeconds(MaxTime); + } + + public override (int KeyFrameIndex, float FramePlayingTime) InitPlayback() + { + OnStart(); + + return (-1, _maxTime); + } + + protected void ApplyProperty(object value) + { + if (Property == null) + { + throw new InvalidOperationException("Property parameter is null! Check the prototype!"); + } + + if (Light is IAnimationProperties properties) + { + properties.SetAnimatableProperty(Property, value); + } + else + { + AnimationHelper.SetAnimatableProperty(Light, Property, value); + } + } + + protected override void ApplyProperty(object context, object value) + { + ApplyProperty(value); + } + + public virtual void OnInitialize() { } + public virtual void OnStart() { } + } + + /// + /// A light behaviour that alternates between StartValue and EndValue + /// + public class PulseBehaviour: LightBehaviourAnimationTrack + { + public override (int KeyFrameIndex, float FramePlayingTime) AdvancePlayback( + object context, int prevKeyFrameIndex, float prevPlayingTime, float frameTime) + { + var playingTime = prevPlayingTime + frameTime; + var interpolateValue = playingTime / MaxTime; + + if (Property == "Enabled") // special case for boolean + { + ApplyProperty(interpolateValue < 0.5f? true : false); + return (-1, playingTime); + } + + if (interpolateValue < 0.5f) + { + switch (InterpolateMode) + { + case AnimationInterpolationMode.Linear: + ApplyProperty(InterpolateLinear(StartValue, EndValue, interpolateValue * 2f)); + break; + case AnimationInterpolationMode.Cubic: + ApplyProperty(InterpolateCubic(EndValue, StartValue, EndValue, StartValue, interpolateValue * 2f)); + break; + default: + case AnimationInterpolationMode.Nearest: + ApplyProperty(StartValue); + break; + } + } + else + { + switch (InterpolateMode) + { + case AnimationInterpolationMode.Linear: + ApplyProperty(InterpolateLinear(EndValue, StartValue, (interpolateValue - 0.5f) * 2f)); + break; + case AnimationInterpolationMode.Cubic: + ApplyProperty(InterpolateCubic(StartValue, EndValue, StartValue, EndValue, (interpolateValue - 0.5f) * 2f)); + break; + default: + case AnimationInterpolationMode.Nearest: + ApplyProperty(EndValue); + break; + } + } + + return (-1, playingTime); + } + } + + /// + /// A light behaviour that interpolates from StartValue to EndValue + /// + public class FadeBehaviour : LightBehaviourAnimationTrack + { + public override (int KeyFrameIndex, float FramePlayingTime) AdvancePlayback( + object context, int prevKeyFrameIndex, float prevPlayingTime, float frameTime) + { + var playingTime = prevPlayingTime + frameTime; + var interpolateValue = playingTime / MaxTime; + + if (Property == "Enabled") // special case for boolean + { + ApplyProperty(interpolateValue < EndValue? true : false); + return (-1, playingTime); + } + + switch (InterpolateMode) + { + case AnimationInterpolationMode.Linear: + ApplyProperty(InterpolateLinear(StartValue, EndValue, interpolateValue)); + break; + case AnimationInterpolationMode.Cubic: + ApplyProperty(InterpolateCubic(EndValue, StartValue, EndValue, StartValue, interpolateValue)); + break; + default: + case AnimationInterpolationMode.Nearest: + ApplyProperty(interpolateValue < 0.5f ? StartValue : EndValue); + break; + } + + return (-1, playingTime); + } + } + + /// + /// A light behaviour that interpolates using random values chosen between StartValue and EndValue. + /// + public class RandomizeBehaviour : LightBehaviourAnimationTrack + { + private object _randomValue1 = default; + private object _randomValue2 = default; + private object _randomValue3 = default; + private object _randomValue4 = default; + + public override void OnInitialize() + { + _randomValue2 = InterpolateLinear(StartValue, EndValue, (float) RobustRandom.NextDouble()); + _randomValue3 = InterpolateLinear(StartValue, EndValue, (float) RobustRandom.NextDouble()); + _randomValue4 = InterpolateLinear(StartValue, EndValue, (float) RobustRandom.NextDouble()); + } + + public override void OnStart() + { + if (Property == "Enabled") // special case for boolean, we randomize it + { + ApplyProperty(RobustRandom.NextDouble() < 0.5 ? true : false); + return; + } + + if (InterpolateMode == AnimationInterpolationMode.Cubic) + { + _randomValue1 = _randomValue2; + _randomValue2 = _randomValue3; + } + + _randomValue3 = _randomValue4; + _randomValue4 = InterpolateLinear(StartValue, EndValue, (float) RobustRandom.NextDouble()); + } + + public override (int KeyFrameIndex, float FramePlayingTime) AdvancePlayback( + object context, int prevKeyFrameIndex, float prevPlayingTime, float frameTime) + { + var playingTime = prevPlayingTime + frameTime; + var interpolateValue = playingTime / MaxTime; + + if (Property == "Enabled") + { + return (-1, playingTime); + } + + switch (InterpolateMode) + { + case AnimationInterpolationMode.Linear: + ApplyProperty(InterpolateLinear(_randomValue3, _randomValue4, interpolateValue)); + break; + case AnimationInterpolationMode.Cubic: + ApplyProperty(InterpolateCubic(_randomValue1, _randomValue2, _randomValue3, _randomValue4, interpolateValue)); + break; + default: + case AnimationInterpolationMode.Nearest: + ApplyProperty(interpolateValue < 0.5f ? _randomValue3 : _randomValue4); + break; + } + + return (-1, playingTime); + } + } + + /// + /// A light behaviour that cycles through a list of colors. + /// + public class ColorCycleBehaviour : LightBehaviourAnimationTrack + { + public List ColorsToCycle { get; set; } + + private int _colorIndex = 0; + + public override void OnStart() + { + _colorIndex++; + + if (_colorIndex > ColorsToCycle.Count - 1) + { + _colorIndex = 0; + } + } + + public override (int KeyFrameIndex, float FramePlayingTime) AdvancePlayback( + object context, int prevKeyFrameIndex, float prevPlayingTime, float frameTime) + { + var playingTime = prevPlayingTime + frameTime; + var interpolateValue = playingTime / MaxTime; + + switch (InterpolateMode) + { + case AnimationInterpolationMode.Linear: + ApplyProperty(InterpolateLinear(ColorsToCycle[(_colorIndex - 1) % ColorsToCycle.Count], + ColorsToCycle[_colorIndex], + interpolateValue)); + break; + case AnimationInterpolationMode.Cubic: + ApplyProperty(InterpolateCubic(ColorsToCycle[_colorIndex], + ColorsToCycle[(_colorIndex + 1) % ColorsToCycle.Count], + ColorsToCycle[(_colorIndex + 2) % ColorsToCycle.Count], + ColorsToCycle[(_colorIndex + 3) % ColorsToCycle.Count], + interpolateValue)); + break; + default: + case AnimationInterpolationMode.Nearest: + ApplyProperty(ColorsToCycle[_colorIndex]); + break; + } + + return (-1, playingTime); + } + + public override void ExposeData(ObjectSerializer serializer) + { + serializer.DataField(this, x => x.ID, "id", string.Empty); + serializer.DataField(this, x => x.IsLooped, "isLooped", false); + serializer.DataField(this, x => x.Enabled, "enabled", false); + serializer.DataField(this, x => x.MinDuration, "minDuration", -1f); + serializer.DataField(this, x => x.MaxDuration, "maxDuration", 2f); + serializer.DataField(this, x => x.InterpolateMode, "interpolate", AnimationInterpolationMode.Linear); + ColorsToCycle = serializer.ReadDataField("colors", new List()); + Property = "Color"; + + if (ColorsToCycle.Count < 2) + { + throw new InvalidOperationException($"{nameof(ColorCycleBehaviour)} has less than 2 colors to cycle"); + } + } + + } + #endregion + + /// + /// A component which applies a specific behaviour to a PointLightComponent on its owner. + /// + [RegisterComponent] + public class LightBehaviourComponent : SharedLightBehaviourComponent + { + private const string KeyPrefix = nameof(LightBehaviourComponent); + + private class AnimationContainer + { + public AnimationContainer(int key, Animation animation, LightBehaviourAnimationTrack track) + { + Key = key; + Animation = animation; + LightBehaviour = track; + } + + public string FullKey => KeyPrefix + Key; + public int Key { get; set; } + public Animation Animation { get; set; } + public LightBehaviourAnimationTrack LightBehaviour { get; set; } + } + + [ViewVariables(VVAccess.ReadOnly)] + private List _animations = new List(); + + private float _originalRadius = default; + private float _originalEnergy = default; + private Angle _originalRotation = default; + private Color _originalColor = default; + private bool _originalEnabled = default; + private PointLightComponent _lightComponent = default; + private AnimationPlayerComponent _animationPlayer = default; + + protected override void Startup() + { + base.Startup(); + + CopyLightSettings(); + _animationPlayer = Owner.EnsureComponent(); + _animationPlayer.AnimationCompleted += s => OnAnimationCompleted(s); + + foreach (var container in _animations) + { + container.LightBehaviour.Initialize(_lightComponent); + } + + // we need to initialize all behaviours before starting any + foreach (var container in _animations) + { + if (container.LightBehaviour.Enabled) + { + StartLightBehaviour(container.LightBehaviour.ID); + } + } + } + + private void OnAnimationCompleted(string key) + { + var container = _animations.FirstOrDefault(x => x.FullKey == key); + + if (container.LightBehaviour.IsLooped) + { + container.LightBehaviour.UpdatePlaybackValues(container.Animation); + _animationPlayer.Play(container.Animation, container.FullKey); + } + } + + /// + /// If we disable all the light behaviours we want to be able to revert the light to its original state. + /// + private void CopyLightSettings() + { + if (Owner.TryGetComponent(out _lightComponent)) + { + _originalColor = _lightComponent.Color; + _originalEnabled = _lightComponent.Enabled; + _originalEnergy = _lightComponent.Energy; + _originalRadius = _lightComponent.Radius; + _originalRotation = _lightComponent.Rotation; + } + else + { + Logger.Warning($"{Owner.Name} has a {nameof(LightBehaviourComponent)} but it has no {nameof(PointLightComponent)}! Check the prototype!"); + } + } + + /// + /// Start animating a light behaviour with the specified ID. If the specified ID is empty, it will start animating all light behaviour entries. + /// If specified light behaviours are already animating, calling this does nothing. + /// Multiple light behaviours can have the same ID. + /// + public void StartLightBehaviour(string id = "") + { + foreach (var container in _animations) + { + if (container.LightBehaviour.ID == id || id == string.Empty) + { + if (!_animationPlayer.HasRunningAnimation(KeyPrefix + container.Key)) + { + container.LightBehaviour.UpdatePlaybackValues(container.Animation); + _animationPlayer.Play(container.Animation, KeyPrefix + container.Key); + } + } + } + } + + /// + /// If any light behaviour with the specified ID is animating, then stop it. + /// If no ID is specified then all light behaviours will be stopped. + /// Multiple light behaviours can have the same ID. + /// + /// + /// Should the behaviour(s) also be removed permanently? + /// Should the light have its original settings applied? + public void StopLightBehaviour(string id = "", bool removeBehaviour = false, bool resetToOriginalSettings = false) + { + var toRemove = new List(); + + foreach (var container in _animations) + { + if (container.LightBehaviour.ID == id || id == string.Empty) + { + if (_animationPlayer.HasRunningAnimation(KeyPrefix + container.Key)) + { + _animationPlayer.Stop(KeyPrefix + container.Key); + } + + if (removeBehaviour) + { + toRemove.Add(container); + } + } + } + + foreach (var container in toRemove) + { + _animations.Remove(container); + } + + if (resetToOriginalSettings) + { + _lightComponent.Color = _originalColor; + _lightComponent.Enabled = _originalEnabled; + _lightComponent.Energy = _originalEnergy; + _lightComponent.Radius = _originalRadius; + _lightComponent.Rotation = _originalRotation; + } + } + + /// + /// Add a new light behaviour to the component and start it immediately unless otherwise specified. + /// + public void AddNewLightBehaviour(LightBehaviourAnimationTrack behaviour, bool playImmediately = true) + { + int key = 0; + + while (_animations.Any(x => x.Key == key)) + { + key++; + } + + var animation = new Animation() + { + AnimationTracks = { behaviour } + }; + + behaviour.Initialize(_lightComponent); + var container = new AnimationContainer(key, animation, behaviour); + _animations.Add(container); + + if (playImmediately) + { + StartLightBehaviour(behaviour.ID); + } + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + var behaviours = serializer.ReadDataField("behaviours", new List()); + var key = 0; + + foreach (LightBehaviourAnimationTrack behaviour in behaviours) + { + var animation = new Animation() + { + AnimationTracks = { behaviour } + }; + + _animations.Add(new AnimationContainer(key, animation, behaviour)); + key++; + } + } + } +} diff --git a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerComponent.cs b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerComponent.cs new file mode 100644 index 0000000000..62bae7d387 --- /dev/null +++ b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerComponent.cs @@ -0,0 +1,13 @@ +using Content.Shared.GameObjects.Components.Medical; +using Robust.Shared.GameObjects; + +namespace Content.Client.GameObjects.Components.MedicalScanner +{ + + [RegisterComponent] + [ComponentReference(typeof(SharedMedicalScannerComponent))] + public class MedicalScannerComponent : SharedMedicalScannerComponent + { + + } +} diff --git a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerVisualizer.cs b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerVisualizer.cs index e795f3f395..a7fe2abced 100644 --- a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerVisualizer.cs +++ b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerVisualizer.cs @@ -12,6 +12,11 @@ namespace Content.Client.GameObjects.Components.MedicalScanner { base.OnChangeData(component); + if (component.Owner.Deleted) + { + return; + } + var sprite = component.Owner.GetComponent(); if (!component.TryGetData(MedicalScannerVisuals.Status, out MedicalScannerStatus status)) return; sprite.LayerSetState(MedicalScannerVisualLayers.Machine, StatusToMachineStateId(status)); diff --git a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs index 4668854fbf..59edf052f3 100644 --- a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs +++ b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs @@ -24,7 +24,7 @@ namespace Content.Client.GameObjects.Components.MedicalScanner { (ScanButton = new Button { - Text = "Scan and Save DNA" + Text = Loc.GetString("Scan and Save DNA") }), (_diagnostics = new Label { diff --git a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs index fc2984f3ae..248767c326 100644 --- a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Content.Client.UserInterface; @@ -100,7 +100,10 @@ namespace Content.Client.GameObjects.Components.Mobs foreach (var (key, effect) in _status.OrderBy(x => (int) x.Key)) { var texture = _resourceCache.GetTexture(effect.Icon); - var status = new StatusControl(key, texture); + var status = new StatusControl(key, texture) + { + ToolTip = key.ToString() + }; if (effect.Cooldown.HasValue) { diff --git a/Content.Client/GameObjects/Components/Mobs/State/CriticalState.cs b/Content.Client/GameObjects/Components/Mobs/State/CriticalState.cs new file mode 100644 index 0000000000..39b750d525 --- /dev/null +++ b/Content.Client/GameObjects/Components/Mobs/State/CriticalState.cs @@ -0,0 +1,30 @@ +using Content.Client.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Client.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Client.GameObjects.Components.Mobs.State +{ + public class CriticalState : SharedCriticalState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Critical); + } + + EntitySystem.Get().Down(entity); + } + + public override void ExitState(IEntity entity) + { + EntitySystem.Get().Standing(entity); + } + + public override void UpdateState(IEntity entity) { } + } +} diff --git a/Content.Client/GameObjects/Components/Mobs/State/DeadState.cs b/Content.Client/GameObjects/Components/Mobs/State/DeadState.cs new file mode 100644 index 0000000000..9ab07be1ac --- /dev/null +++ b/Content.Client/GameObjects/Components/Mobs/State/DeadState.cs @@ -0,0 +1,41 @@ +using Content.Client.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Client.GameObjects; +using Robust.Shared.GameObjects.Components; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Client.GameObjects.Components.Mobs.State +{ + public class DeadState : SharedDeadState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Dead); + } + + EntitySystem.Get().Down(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = false; + } + } + + public override void ExitState(IEntity entity) + { + EntitySystem.Get().Standing(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = true; + } + } + + public override void UpdateState(IEntity entity) { } + } +} diff --git a/Content.Client/GameObjects/Components/Mobs/State/MobStateManagerComponent.cs b/Content.Client/GameObjects/Components/Mobs/State/MobStateManagerComponent.cs new file mode 100644 index 0000000000..207c8f17c2 --- /dev/null +++ b/Content.Client/GameObjects/Components/Mobs/State/MobStateManagerComponent.cs @@ -0,0 +1,62 @@ +#nullable enable +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Shared.GameObjects; + +namespace Content.Client.GameObjects.Components.Mobs.State +{ + [RegisterComponent] + [ComponentReference(typeof(SharedMobStateManagerComponent))] + public class MobStateManagerComponent : SharedMobStateManagerComponent + { + private readonly Dictionary _behavior = new Dictionary + { + {DamageState.Alive, new NormalState()}, + {DamageState.Critical, new CriticalState()}, + {DamageState.Dead, new DeadState()} + }; + + private DamageState _currentDamageState; + + protected override IReadOnlyDictionary Behavior => _behavior; + + public override DamageState CurrentDamageState + { + get => _currentDamageState; + protected set + { + if (_currentDamageState == value) + { + return; + } + + if (_currentDamageState != DamageState.Invalid) + { + CurrentMobState.ExitState(Owner); + } + + _currentDamageState = value; + CurrentMobState = Behavior[CurrentDamageState]; + CurrentMobState.EnterState(Owner); + + Dirty(); + } + } + + public override void HandleComponentState(ComponentState? curState, ComponentState? nextState) + { + base.HandleComponentState(curState, nextState); + + if (!(curState is MobStateManagerComponentState state)) + { + return; + } + + _currentDamageState = state.DamageState; + CurrentMobState?.ExitState(Owner); + CurrentMobState = Behavior[CurrentDamageState]; + CurrentMobState.EnterState(Owner); + } + } +} diff --git a/Content.Client/GameObjects/Components/Mobs/State/NormalState.cs b/Content.Client/GameObjects/Components/Mobs/State/NormalState.cs new file mode 100644 index 0000000000..af65dcc082 --- /dev/null +++ b/Content.Client/GameObjects/Components/Mobs/State/NormalState.cs @@ -0,0 +1,25 @@ +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Client.GameObjects; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Client.GameObjects.Components.Mobs.State +{ + public class NormalState : SharedNormalState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Alive); + } + + UpdateState(entity); + } + + public override void ExitState(IEntity entity) { } + + public override void UpdateState(IEntity entity) { } + } +} diff --git a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs index 077eae387c..f25c709136 100644 --- a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs @@ -18,8 +18,7 @@ namespace Content.Client.GameObjects.Components.Observer private GhostGui _gui; - [ViewVariables(VVAccess.ReadOnly)] - public bool CanReturnToBody { get; private set; } = true; + [ViewVariables(VVAccess.ReadOnly)] public bool CanReturnToBody { get; private set; } = true; private bool _isAttached; @@ -51,7 +50,8 @@ namespace Content.Client.GameObjects.Components.Observer base.Initialize(); if (Owner.TryGetComponent(out SpriteComponent component)) - component.Visible = _playerManager.LocalPlayer.ControlledEntity?.HasComponent() ?? false; + component.Visible = + _playerManager.LocalPlayer.ControlledEntity?.HasComponent() ?? false; } public override void HandleMessage(ComponentMessage message, IComponent component) @@ -98,7 +98,6 @@ namespace Content.Client.GameObjects.Components.Observer { _gui?.Update(); } - } } } diff --git a/Content.Client/GameObjects/Components/Power/AME/AMEControllerBoundUserInterface.cs b/Content.Client/GameObjects/Components/Power/AME/AMEControllerBoundUserInterface.cs new file mode 100644 index 0000000000..ff0bcff85e --- /dev/null +++ b/Content.Client/GameObjects/Components/Power/AME/AMEControllerBoundUserInterface.cs @@ -0,0 +1,62 @@ +using Robust.Client.GameObjects.Components.UserInterface; +using Robust.Shared.GameObjects.Components.UserInterface; +using static Content.Shared.GameObjects.Components.Power.AME.SharedAMEControllerComponent; + +namespace Content.Client.GameObjects.Components.Power.AME +{ + public class AMEControllerBoundUserInterface : BoundUserInterface + { + private AMEWindow _window; + + public AMEControllerBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) + { + + } + + protected override void Open() + { + base.Open(); + + _window = new AMEWindow(); + _window.OnClose += Close; + _window.OpenCentered(); + + _window.EjectButton.OnPressed += _ => ButtonPressed(UiButton.Eject); + _window.ToggleInjection.OnPressed += _ => ButtonPressed(UiButton.ToggleInjection); + _window.IncreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.IncreaseFuel); + _window.DecreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.DecreaseFuel); + _window.RefreshPartsButton.OnPressed += _ => ButtonPressed(UiButton.RefreshParts); + } + + + /// + /// Update the ui each time new state data is sent from the server. + /// + /// + /// Data of the that this ui represents. + /// Sent from the server. + /// + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + var castState = (AMEControllerBoundUserInterfaceState) state; + _window?.UpdateState(castState); //Update window state + } + + private void ButtonPressed(UiButton button, int dispenseIndex = -1) + { + SendMessage(new UiButtonPressedMessage(button)); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + _window.Dispose(); + } + } + } +} diff --git a/Content.Client/GameObjects/Components/Power/AME/AMEControllerVisualizer.cs b/Content.Client/GameObjects/Components/Power/AME/AMEControllerVisualizer.cs new file mode 100644 index 0000000000..4345b68f5b --- /dev/null +++ b/Content.Client/GameObjects/Components/Power/AME/AMEControllerVisualizer.cs @@ -0,0 +1,57 @@ +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.GameObjects; +using System; +using System.Collections.Generic; +using System.Text; +using static Content.Shared.GameObjects.Components.Power.AME.SharedAMEControllerComponent; + +namespace Content.Client.GameObjects.Components.Power.AME +{ + public class AMEControllerVisualizer : AppearanceVisualizer + { + public override void InitializeEntity(IEntity entity) + { + base.InitializeEntity(entity); + var sprite = entity.GetComponent(); + + sprite.LayerMapSet(Layers.Display, sprite.AddLayerState("control_on")); + sprite.LayerSetVisible(Layers.Display, false); + } + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + var sprite = component.Owner.GetComponent(); + if (component.TryGetData(AMEControllerVisuals.DisplayState, out var state)) + { + switch (state) + { + case "on": + sprite.LayerSetState(Layers.Display, "control_on"); + sprite.LayerSetVisible(Layers.Display, true); + break; + case "critical": + sprite.LayerSetState(Layers.Display, "control_critical"); + sprite.LayerSetVisible(Layers.Display, true); + break; + case "fuck": + sprite.LayerSetState(Layers.Display, "control_fuck"); + sprite.LayerSetVisible(Layers.Display, true); + break; + case "off": + sprite.LayerSetVisible(Layers.Display, false); + break; + default: + sprite.LayerSetVisible(Layers.Display, false); + break; + } + } + } + + enum Layers + { + Display, + } + } +} diff --git a/Content.Client/GameObjects/Components/Power/AME/AMEVisualizer.cs b/Content.Client/GameObjects/Components/Power/AME/AMEVisualizer.cs new file mode 100644 index 0000000000..45104ed27a --- /dev/null +++ b/Content.Client/GameObjects/Components/Power/AME/AMEVisualizer.cs @@ -0,0 +1,63 @@ +using Robust.Client.GameObjects; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.GameObjects; +using System; +using System.Collections.Generic; +using System.Text; +using static Content.Shared.GameObjects.Components.Power.AME.SharedAMEShieldComponent; + +namespace Content.Client.GameObjects.Components.Power.AME +{ + public class AMEVisualizer : AppearanceVisualizer + { + public override void InitializeEntity(IEntity entity) + { + base.InitializeEntity(entity); + var sprite = entity.GetComponent(); + sprite.LayerMapSet(Layers.Core, sprite.AddLayerState("core")); + sprite.LayerSetVisible(Layers.Core, false); + sprite.LayerMapSet(Layers.CoreState, sprite.AddLayerState("core_weak")); + sprite.LayerSetVisible(Layers.CoreState, false); + } + + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + var sprite = component.Owner.GetComponent(); + if (component.TryGetData(AMEShieldVisuals.Core, out var core)) + { + if (core == "isCore") + { + sprite.LayerSetState(Layers.Core, "core"); + sprite.LayerSetVisible(Layers.Core, true); + } + else + { + sprite.LayerSetVisible(Layers.Core, false); + } + } + + if (component.TryGetData(AMEShieldVisuals.CoreState, out var coreState)) + switch (coreState) + { + case "weak": + sprite.LayerSetState(Layers.CoreState, "core_weak"); + sprite.LayerSetVisible(Layers.CoreState, true); + break; + case "strong": + sprite.LayerSetState(Layers.CoreState, "core_strong"); + sprite.LayerSetVisible(Layers.CoreState, true); + break; + case "off": + sprite.LayerSetVisible(Layers.CoreState, false); + break; + } + } + } + + enum Layers + { + Core, + CoreState, + } +} diff --git a/Content.Client/GameObjects/Components/Power/AME/AMEWindow.cs b/Content.Client/GameObjects/Components/Power/AME/AMEWindow.cs new file mode 100644 index 0000000000..8a588035ab --- /dev/null +++ b/Content.Client/GameObjects/Components/Power/AME/AMEWindow.cs @@ -0,0 +1,162 @@ +using Content.Client.UserInterface.Stylesheets; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using System; +using System.Collections.Generic; +using System.Text; +using static Content.Shared.GameObjects.Components.Power.AME.SharedAMEControllerComponent; + +namespace Content.Client.GameObjects.Components.Power.AME +{ + public class AMEWindow : SS14Window + { + public Label InjectionStatus { get; set; } + public Button EjectButton { get; set; } + public Button ToggleInjection { get; set; } + public Button IncreaseFuelButton { get; set; } + public Button DecreaseFuelButton { get; set; } + public Button RefreshPartsButton { get; set; } + public ProgressBar FuelMeter { get; set; } + public Label FuelAmount { get; set; } + public Label InjectionAmount { get; set; } + public Label CoreCount { get; set; } + + + public AMEWindow() + { + IoCManager.InjectDependencies(this); + + Title = "Antimatter Control Unit"; + Contents.AddChild(new VBoxContainer + { + Children = + { + new HBoxContainer + { + Children = + { + new Label {Text = Loc.GetString("Engine Status") + ": "}, + (InjectionStatus = new Label {Text = "Not Injecting"}) + } + }, + new HBoxContainer + { + Children = + { + (ToggleInjection = new Button {Text = "Toggle Injection", StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), + } + }, + new HBoxContainer + { + Children = + { + new Label {Text = Loc.GetString("Fuel Status") + ": "}, + (FuelAmount = new Label {Text = "No fuel inserted"}) + } + }, + new HBoxContainer + { + Children = + { + (EjectButton = new Button {Text = "Eject", StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), + } + }, + new HBoxContainer + { + Children = + { + new Label {Text = Loc.GetString("Injection amount") + ": "}, + (InjectionAmount = new Label {Text = "0"}) + } + }, + new HBoxContainer + { + Children = + { + (IncreaseFuelButton = new Button {Text = "Increase", StyleClasses = {StyleBase.ButtonOpenRight}}), + (DecreaseFuelButton = new Button {Text = "Decrease", StyleClasses = {StyleBase.ButtonOpenLeft}}), + } + }, + new HBoxContainer + { + Children = + { + (RefreshPartsButton = new Button {Text = "Refresh Parts", StyleClasses = {StyleBase.ButtonOpenBoth }, Disabled = true }), + new Label { Text = Loc.GetString("Core count") + ": "}, + (CoreCount = new Label { Text = "0"}), + } + } + } + }); + + } + + + /// + /// This searches recursively through all the children of "parent" + /// and sets the Disabled value of any buttons found to "val" + /// + /// The control which childrens get searched + /// The value to which disabled gets set + private void SetButtonDisabledRecursive(Control parent, bool val) + { + foreach (var child in parent.Children) + { + if (child is Button but) + { + but.Disabled = val; + continue; + } + + if (child.Children != null) + { + SetButtonDisabledRecursive(child, val); + } + } + } + + /// + /// Update the UI state when new state data is received from the server. + /// + /// State data sent by the server. + public void UpdateState(BoundUserInterfaceState state) + { + var castState = (AMEControllerBoundUserInterfaceState) state; + + // Disable all buttons if not powered + if (Contents.Children != null) + { + SetButtonDisabledRecursive(Contents, !castState.HasPower); + EjectButton.Disabled = false; + } + + if(!castState.HasFuelJar) + { + EjectButton.Disabled = true; + ToggleInjection.Disabled = true; + FuelAmount.Text = Loc.GetString("No fuel inserted"); + } + else + { + EjectButton.Disabled = false; + ToggleInjection.Disabled = false; + FuelAmount.Text = $"{castState.FuelAmount}"; + } + + if(!castState.IsMaster) + { + ToggleInjection.Disabled = true; + } + + RefreshPartsButton.Disabled = castState.Injecting; + + CoreCount.Text = $"{castState.CoreCount}"; + InjectionAmount.Text = $"{castState.InjectionAmount}"; + + } + } +} diff --git a/Content.Client/GameObjects/EntitySystems/DragDropSystem.cs b/Content.Client/GameObjects/EntitySystems/DragDropSystem.cs index 6458c6edbc..e42e8585d8 100644 --- a/Content.Client/GameObjects/EntitySystems/DragDropSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/DragDropSystem.cs @@ -142,8 +142,7 @@ namespace Content.Client.GameObjects.EntitySystems if (_entityManager.TryGetEntity(args.EntityUid, out var entity)) { // check if the entity is reachable - if (_interactionSystem.InRangeUnobstructed(dragger.Transform.MapPosition, - entity.Transform.MapPosition, ignoredEnt: dragger) == false) + if (!_interactionSystem.InRangeUnobstructed(dragger, entity)) { return false; } @@ -193,8 +192,8 @@ namespace Content.Client.GameObjects.EntitySystems // tell the server we are dropping if we are over a valid drop target in range. // We don't use args.EntityUid here because drag interactions generally should // work even if there's something "on top" of the drop target - if (_interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition, - args.Coordinates.ToMap(_mapManager), ignoredEnt: _dragger, ignoreInsideBlocker: true) == false) + if (!_interactionSystem.InRangeUnobstructed(_dragger, + args.Coordinates, ignoreInsideBlocker: true)) { CancelDrag(false, null); return false; @@ -288,8 +287,7 @@ namespace Content.Client.GameObjects.EntitySystems if (anyValidDraggable) { // highlight depending on whether its in or out of range - var inRange = _interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition, - pvsEntity.Transform.MapPosition, ignoredEnt: _dragger); + var inRange = _interactionSystem.InRangeUnobstructed(_dragger, pvsEntity); inRangeSprite.PostShader = inRange ? _dropTargetInRangeShader : _dropTargetOutOfRangeShader; inRangeSprite.RenderOrder = EntityManager.CurrentTick.Value; highlightedSprites.Add(inRangeSprite); @@ -377,8 +375,7 @@ namespace Content.Client.GameObjects.EntitySystems return; } // still in range of the thing we are dragging? - if (_interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition, - _draggedEntity.Transform.MapPosition, ignoredEnt: _dragger) == false) + if (!_interactionSystem.InRangeUnobstructed(_dragger, _draggedEntity)) { CancelDrag(false, null); return; diff --git a/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs b/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs index 1a4b1212ee..83a8950ba1 100644 --- a/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/MeleeWeaponSystem.cs @@ -1,10 +1,14 @@ -using Content.Client.GameObjects.Components.Mobs; +using System; +using Content.Client.GameObjects.Components.Mobs; using Content.Client.GameObjects.Components.Weapons.Melee; using Content.Shared.GameObjects.Components.Weapons.Melee; using JetBrains.Annotations; +using Robust.Client.GameObjects; using Robust.Client.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.EntitySystemMessages; using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Maths; @@ -18,6 +22,7 @@ namespace Content.Client.GameObjects.EntitySystems public sealed class MeleeWeaponSystem : EntitySystem { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; public override void Initialize() { @@ -53,6 +58,26 @@ namespace Content.Client.GameObjects.EntitySystems var weaponArcAnimation = entity.GetComponent(); weaponArcAnimation.SetData(weaponArc, msg.Angle, attacker); + // Due to ISpriteComponent limitations, weapons that don't use an RSI won't have this effect. + if (EntityManager.TryGetEntity(msg.Source, out var source) && msg.TextureEffect && source.TryGetComponent(out ISpriteComponent sourceSprite) + && sourceSprite.BaseRSI?.Path != null) + { + var sys = Get(); + var curTime = _gameTiming.CurTime; + var effect = new EffectSystemMessage + { + EffectSprite = sourceSprite.BaseRSI.Path.ToString(), + RsiState = sourceSprite.LayerGetState(0).Name, + Coordinates = attacker.Transform.GridPosition, + Color = Vector4.Multiply(new Vector4(255, 255, 255, 125), 1.0f), + ColorDelta = Vector4.Multiply(new Vector4(0, 0, 0, -10), 1.0f), + Velocity = msg.Angle.ToVec(), + Acceleration = msg.Angle.ToVec() * 5f, + Born = curTime, + DeathTime = curTime.Add(TimeSpan.FromMilliseconds(300f)), + }; + sys.CreateEffect(effect); + } foreach (var uid in msg.Hits) { diff --git a/Content.Client/GameObjects/EntitySystems/StandingStateSystem.cs b/Content.Client/GameObjects/EntitySystems/StandingStateSystem.cs new file mode 100644 index 0000000000..212d386c01 --- /dev/null +++ b/Content.Client/GameObjects/EntitySystems/StandingStateSystem.cs @@ -0,0 +1,50 @@ +using Content.Shared.Audio; +using Content.Shared.GameObjects.Components.Rotation; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Client.GameObjects; +using Robust.Client.GameObjects.EntitySystems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Client.GameObjects.EntitySystems +{ + public class StandingStateSystem : SharedStandingStateSystem + { + protected override bool OnDown(IEntity entity, bool playSound = true, bool dropItems = true, bool force = false) + { + if (!entity.TryGetComponent(out AppearanceComponent appearance)) + { + return false; + } + + var newState = RotationState.Horizontal; + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); + + if (newState != oldState) + { + appearance.SetData(RotationVisuals.RotationState, newState); + } + + if (playSound) + { + var file = AudioHelpers.GetRandomFileFromSoundCollection("bodyfall"); + Get().Play(file, entity, AudioHelpers.WithVariation(0.25f)); + } + + return true; + } + + protected override bool OnStand(IEntity entity) + { + if (!entity.TryGetComponent(out AppearanceComponent appearance)) return false; + + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); + var newState = RotationState.Vertical; + + if (newState == oldState) return false; + + appearance.SetData(RotationVisuals.RotationState, newState); + + return true; + } + } +} diff --git a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs index fb9c2c441d..7f26504431 100644 --- a/Content.Client/GameObjects/EntitySystems/VerbSystem.cs +++ b/Content.Client/GameObjects/EntitySystems/VerbSystem.cs @@ -7,13 +7,16 @@ using Content.Client.State; using Content.Client.UserInterface; using Content.Client.Utility; using Content.Shared.GameObjects.EntitySystemMessages; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; using Content.Shared.Input; +using Content.Shared.Physics; using JetBrains.Annotations; using Robust.Client.GameObjects.EntitySystems; using Robust.Client.Graphics; using Robust.Client.Graphics.Drawing; using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Client.Interfaces.Graphics.ClientEye; using Robust.Client.Interfaces.Input; using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.Interfaces.State; @@ -29,6 +32,7 @@ using Robust.Shared.Input; using Robust.Shared.Input.Binding; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; +using Robust.Shared.Interfaces.Physics; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; using Robust.Shared.Log; @@ -40,7 +44,7 @@ using Timer = Robust.Shared.Timers.Timer; namespace Content.Client.GameObjects.EntitySystems { [UsedImplicitly] - public sealed class VerbSystem : EntitySystem + public sealed class VerbSystem : SharedVerbSystem { [Dependency] private readonly IStateManager _stateManager = default!; [Dependency] private readonly IEntityManager _entityManager = default!; @@ -63,7 +67,7 @@ namespace Content.Client.GameObjects.EntitySystems public override void Initialize() { base.Initialize(); - + SubscribeNetworkEvent(FillEntityPopup); IoCManager.InjectDependencies(this); @@ -114,12 +118,11 @@ namespace Content.Client.GameObjects.EntitySystems { return false; } - + var mapCoordinates = args.Coordinates.ToMap(_mapManager); - var entities = _entityManager.GetEntitiesIntersecting(mapCoordinates.MapId, - Box2.CenteredAround(mapCoordinates.Position, (0.5f, 0.5f))).ToList(); - - if (entities.Count == 0) + var playerEntity = _playerManager.LocalPlayer?.ControlledEntity; + + if (playerEntity == null || !TryGetContextEntities(playerEntity, mapCoordinates, out var entities)) { return false; } diff --git a/Content.Client/IgnoredComponents.cs b/Content.Client/IgnoredComponents.cs index 5d3cca4938..af320568fa 100644 --- a/Content.Client/IgnoredComponents.cs +++ b/Content.Client/IgnoredComponents.cs @@ -9,6 +9,7 @@ "Breakable", "Pickaxe", "Interactable", + "CloningPod", "Destructible", "Temperature", "Explosive", @@ -58,7 +59,6 @@ "AccessReader", "IdCardConsole", "Airlock", - "MedicalScanner", "WirePlacer", "Drink", "Food", @@ -156,13 +156,25 @@ "Barotrauma", "GasSprayer", "GasVapor", - "MobStateManager", "Metabolism", "AiFactionTag", "PressureProtection", + "AMEPart", + "AMEFuelContainer", + "AMEShield", "DebugPump", + "PressurePump", + "VolumePump", "DebugVent", "DebugSiphon", + "SignalReceiver", + "SignalSwitch", + "SignalTransmitter", + "SignalButton", + "SignalLinker", + "ExtinguisherCabinet", + "ExtinguisherCabinetFilled", + "FireExtinguisher", }; } } diff --git a/Content.Client/Instruments/InstrumentMenu.cs b/Content.Client/Instruments/InstrumentMenu.cs index 166ecfaf04..731f80eb87 100644 --- a/Content.Client/Instruments/InstrumentMenu.cs +++ b/Content.Client/Instruments/InstrumentMenu.cs @@ -1,6 +1,7 @@ using Content.Client.GameObjects.Components.Instruments; using Content.Client.UserInterface.Stylesheets; -using Content.Shared.GameObjects.EntitySystems; +using Content.Client.Utility; +using Content.Shared.Utility; using Robust.Client.Audio.Midi; using Robust.Client.Graphics.Drawing; using Robust.Client.Interfaces.UserInterface; @@ -9,7 +10,6 @@ using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Shared.Containers; -using Robust.Shared.GameObjects.Systems; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Log; @@ -197,9 +197,7 @@ namespace Content.Client.Instruments || conMan.Owner != localPlayer.ControlledEntity))) return; // We check that we're in range unobstructed just in case. - if(!EntitySystem.Get() - .InRangeUnobstructed(localPlayer.ControlledEntity.Transform.MapPosition, - instrumentEnt.Transform.MapPosition, ignoredEnt:instrumentEnt)) return; + if (!localPlayer.InRangeUnobstructed(instrumentEnt)) return; if (!_midiManager.IsMidiFile(filename)) { diff --git a/Content.Client/ScreenshotHook.cs b/Content.Client/ScreenshotHook.cs index d1cf81bd96..fb24833722 100644 --- a/Content.Client/ScreenshotHook.cs +++ b/Content.Client/ScreenshotHook.cs @@ -57,7 +57,7 @@ namespace Content.Client } await using var file = - _resourceManager.UserData.Open(BaseScreenshotPath / $"{filename}.png", FileMode.CreateNew, FileAccess.Read, FileShare.None); + _resourceManager.UserData.Open(BaseScreenshotPath / $"{filename}.png", FileMode.CreateNew, FileAccess.Write, FileShare.None); await Task.Run(() => { diff --git a/Content.Client/State/GameScreenBase.cs b/Content.Client/State/GameScreenBase.cs index 8b88d26ebc..4caf83d86d 100644 --- a/Content.Client/State/GameScreenBase.cs +++ b/Content.Client/State/GameScreenBase.cs @@ -2,7 +2,8 @@ using System.Collections.Immutable; using System.Linq; using Content.Client.GameObjects.Components; -using Content.Shared.GameObjects.EntitySystems; +using Content.Client.Utility; +using Content.Shared.Utility; using Robust.Client.GameObjects.EntitySystems; using Robust.Client.Interfaces.GameObjects; using Robust.Client.Interfaces.Graphics.ClientEye; @@ -67,13 +68,7 @@ namespace Content.Client.State var inRange = false; if (localPlayer.ControlledEntity != null && entityToClick != null) { - var playerPos = localPlayer.ControlledEntity.Transform.MapPosition; - var entityPos = entityToClick.Transform.MapPosition; - inRange = EntitySystemManager.GetEntitySystem() - .InRangeUnobstructed(playerPos, entityPos, - predicate: entity => - entity == localPlayer.ControlledEntity || entity == entityToClick, - ignoreInsideBlocker: true); + inRange = localPlayer.InRangeUnobstructed(entityToClick, ignoreInsideBlocker: true); } InteractionOutlineComponent outline; diff --git a/Content.Client/UserInterface/AdminMenu/AdminMenuWindow.cs b/Content.Client/UserInterface/AdminMenu/AdminMenuWindow.cs index 3708adfb82..dde3fddac4 100644 --- a/Content.Client/UserInterface/AdminMenu/AdminMenuWindow.cs +++ b/Content.Client/UserInterface/AdminMenu/AdminMenuWindow.cs @@ -1,11 +1,9 @@ #nullable enable -using System; -using System.Collections.Generic; -using System.Linq; using Content.Client.GameObjects.EntitySystems; using Content.Client.StationEvents; using Content.Shared.Atmos; using Robust.Client.Console; +using Robust.Client.Graphics.Drawing; using Robust.Client.Interfaces.Placement; using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.Player; @@ -17,8 +15,12 @@ using Robust.Shared.Interfaces.Map; using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Map; +using Robust.Shared.Maths; using Robust.Shared.Prototypes; using Robust.Shared.Utility; +using System; +using System.Collections.Generic; +using System.Linq; using static Robust.Client.UserInterface.Controls.BaseButton; namespace Content.Client.UserInterface.AdminMenu @@ -27,6 +29,9 @@ namespace Content.Client.UserInterface.AdminMenu { public TabContainer MasterTabContainer; public VBoxContainer PlayerList; + public Label PlayerCount; + + protected override Vector2? CustomSize => (500, 250); private List _adminButtons = new List { @@ -57,51 +62,107 @@ namespace Content.Client.UserInterface.AdminMenu new DirectCommandButton("Shutdown", "shutdown"), }; + private static readonly Color SeparatorColor = Color.FromHex("#3D4059"); + private class HSeperator : Control + { + public HSeperator() + { + AddChild(new PanelContainer { + PanelOverride = new StyleBoxFlat + { + BackgroundColor = SeparatorColor, + ContentMarginBottomOverride = 2, ContentMarginLeftOverride = 2 + } + }); + } + } + + private class VSeperator : PanelContainer + { + public VSeperator() + { + CustomMinimumSize = (2, 5); + AddChild(new PanelContainer { + PanelOverride = new StyleBoxFlat { + BackgroundColor = SeparatorColor + } + }); + } + } + private void RefreshPlayerList(ButtonEventArgs args) { PlayerList.RemoveAllChildren(); - var sessions = IoCManager.Resolve().Sessions; + var playerManager = IoCManager.Resolve(); + var sessions = playerManager.Sessions; + PlayerCount.Text = $"Players: {playerManager.PlayerCount}"; + + Color altColor = Color.FromHex("#292B38"); + Color defaultColor = Color.FromHex("#2F2F3B"); + var header = new HBoxContainer { SizeFlagsHorizontal = SizeFlags.FillExpand, + SeparationOverride = 4, Children = { new Label { Text = "Name", SizeFlagsStretchRatio = 2f, SizeFlagsHorizontal = SizeFlags.FillExpand }, + new VSeperator(), new Label { Text = "Player", SizeFlagsStretchRatio = 2f, SizeFlagsHorizontal = SizeFlags.FillExpand }, + new VSeperator(), new Label { Text = "Status", SizeFlagsStretchRatio = 1f, SizeFlagsHorizontal = SizeFlags.FillExpand }, + new VSeperator(), new Label { Text = "Ping", SizeFlagsStretchRatio = 1f, SizeFlagsHorizontal = SizeFlags.FillExpand, Align = Label.AlignMode.Right }, } }; - PlayerList.AddChild(header); - PlayerList.AddChild(new Controls.HighDivider()); + PlayerList.AddChild(new PanelContainer + { + PanelOverride = new StyleBoxFlat + { + BackgroundColor = altColor, + }, + Children = + { + header + } + }); + PlayerList.AddChild(new HSeperator()); + + var useAltColor = false; foreach (var player in sessions) { var hbox = new HBoxContainer { SizeFlagsHorizontal = SizeFlags.FillExpand, + SeparationOverride = 4, Children = { new Label { Text = player.Name, SizeFlagsStretchRatio = 2f, - SizeFlagsHorizontal = SizeFlags.FillExpand }, + SizeFlagsHorizontal = SizeFlags.FillExpand, + ClipText = true }, + new VSeperator(), new Label { Text = player.AttachedEntity?.Name, SizeFlagsStretchRatio = 2f, - SizeFlagsHorizontal = SizeFlags.FillExpand }, + SizeFlagsHorizontal = SizeFlags.FillExpand, + ClipText = true }, + new VSeperator(), new Label { Text = player.Status.ToString(), SizeFlagsStretchRatio = 1f, SizeFlagsHorizontal = SizeFlags.FillExpand }, + new VSeperator(), new Label { Text = player.Ping.ToString(), SizeFlagsStretchRatio = 1f, @@ -109,7 +170,18 @@ namespace Content.Client.UserInterface.AdminMenu Align = Label.AlignMode.Right }, } }; - PlayerList.AddChild(hbox); + PlayerList.AddChild(new PanelContainer + { + PanelOverride = new StyleBoxFlat + { + BackgroundColor = useAltColor ? altColor : defaultColor, + }, + Children = + { + hbox + } + }); + useAltColor ^= true; } } @@ -133,7 +205,6 @@ namespace Content.Client.UserInterface.AdminMenu public AdminMenuWindow() //TODO: search for buttons? { - CustomMinimumSize = (415,0); Title = Loc.GetString("Admin Menu"); #region PlayerList @@ -146,22 +217,50 @@ namespace Content.Client.UserInterface.AdminMenu MarginBottomOverride = 4, CustomMinimumSize = (50, 50), }; - PlayerList = new VBoxContainer(); + + PlayerCount = new Label + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + SizeFlagsStretchRatio = 0.7f, + }; var refreshButton = new Button { - Text = "Refresh" + SizeFlagsHorizontal = SizeFlags.FillExpand, + SizeFlagsStretchRatio = 0.3f, + Text = "Refresh", }; refreshButton.OnPressed += RefreshPlayerList; - RefreshPlayerList(null!); + + PlayerList = new VBoxContainer(); + var playerVBox = new VBoxContainer { + SizeFlagsVertical = SizeFlags.FillExpand, Children = { - refreshButton, - PlayerList + new HBoxContainer + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + Children = + { + PlayerCount, + refreshButton, + } + }, + new Control { CustomMinimumSize = (0, 5) }, + new ScrollContainer + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + SizeFlagsVertical = SizeFlags.FillExpand, + Children = + { + PlayerList + }, + }, } }; playerTabContainer.AddChild(playerVBox); + RefreshPlayerList(null!); #endregion PlayerList #region Admin Tab diff --git a/Content.Client/UserInterface/GhostGui.cs b/Content.Client/UserInterface/GhostGui.cs index 5ac6e1a7cc..b998597790 100644 --- a/Content.Client/UserInterface/GhostGui.cs +++ b/Content.Client/UserInterface/GhostGui.cs @@ -2,12 +2,14 @@ using Content.Client.GameObjects.Components.Observer; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Shared.IoC; +using Robust.Shared.Localization; namespace Content.Client.UserInterface { public class GhostGui : Control { - public Button ReturnToBody = new Button(){Text = "Return to body"}; + + public readonly Button ReturnToBody = new Button() {Text = Loc.GetString("Return to body")}; private GhostComponent _owner; public GhostGui(GhostComponent owner) diff --git a/Content.Client/UserInterface/StatusEffectsUI.cs b/Content.Client/UserInterface/StatusEffectsUI.cs index e6f0fc044f..baaade0028 100644 --- a/Content.Client/UserInterface/StatusEffectsUI.cs +++ b/Content.Client/UserInterface/StatusEffectsUI.cs @@ -8,13 +8,12 @@ namespace Content.Client.UserInterface /// public sealed class StatusEffectsUI : Control { - public VBoxContainer VBox => _vBox; - private readonly VBoxContainer _vBox; + public VBoxContainer VBox { get; } public StatusEffectsUI() { - _vBox = new VBoxContainer(); - AddChild(_vBox); + VBox = new VBoxContainer(); + AddChild(VBox); LayoutContainer.SetGrowHorizontal(this, LayoutContainer.GrowDirection.Begin); LayoutContainer.SetAnchorAndMarginPreset(this, LayoutContainer.LayoutPreset.TopRight, margin: 10); diff --git a/Content.Client/UserInterface/Suspicion/SuspicionGui.cs b/Content.Client/UserInterface/Suspicion/SuspicionGui.cs index e466eb8074..5d8c5361b8 100644 --- a/Content.Client/UserInterface/Suspicion/SuspicionGui.cs +++ b/Content.Client/UserInterface/Suspicion/SuspicionGui.cs @@ -66,7 +66,7 @@ namespace Content.Client.UserInterface.Suspicion _ => throw new ArgumentException($"Invalid number of allies: {role.Allies.Count}") }; - role.Owner.PopupMessage(role.Owner, message); + role.Owner.PopupMessage(message); } private bool TryGetComponent(out SuspicionRoleComponent suspicion) diff --git a/Content.Client/Utility/RangeExtensions.cs b/Content.Client/Utility/RangeExtensions.cs new file mode 100644 index 0000000000..c69eb91f6c --- /dev/null +++ b/Content.Client/Utility/RangeExtensions.cs @@ -0,0 +1,93 @@ +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Physics; +using Robust.Client.Player; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Map; +using static Content.Shared.GameObjects.EntitySystems.SharedInteractionSystem; + +namespace Content.Client.Utility +{ + public static class RangeExtensions + { + private static SharedInteractionSystem SharedInteractionSystem => EntitySystem.Get(); + + public static bool InRangeUnobstructed( + this LocalPlayer origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var otherPosition = other.Transform.MapPosition; + + return origin.InRangeUnobstructed(otherPosition, range, collisionMask, predicate, ignoreInsideBlocker, + popup); + } + + public static bool InRangeUnobstructed( + this LocalPlayer origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return origin.InRangeUnobstructed(other.Owner, range, collisionMask, predicate, ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this LocalPlayer origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return origin.InRangeUnobstructed(other.Owner, range, collisionMask, predicate, ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this LocalPlayer origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var mapManager = IoCManager.Resolve(); + var otherPosition = other.ToMap(mapManager); + + return origin.InRangeUnobstructed(otherPosition, range, collisionMask, predicate, ignoreInsideBlocker, + popup); + } + + public static bool InRangeUnobstructed( + this LocalPlayer origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.ControlledEntity; + if (originEntity == null) + { + // TODO: Take into account the player's camera position? + return false; + } + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + } +} diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index ae458d078b..1409b8029f 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Threading.Tasks; using NUnit.Framework; -using Robust.Server.Interfaces.Maps; using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -26,11 +24,13 @@ namespace Content.IntegrationTests.Tests { var server = StartServerDummyTicker(); await server.WaitIdleAsync(); - var mapMan = server.ResolveDependency(); + + var mapManager = server.ResolveDependency(); var entityMan = server.ResolveDependency(); var prototypeMan = server.ResolveDependency(); - var mapLoader = server.ResolveDependency(); - var pauseMan = server.ResolveDependency(); + var pauseManager = server.ResolveDependency(); + var tileDefinitionManager = server.ResolveDependency(); + var prototypes = new List(); IMapGrid grid = default; IEntity testEntity; @@ -38,9 +38,25 @@ namespace Content.IntegrationTests.Tests //Build up test environment server.Post(() => { - var mapId = mapMan.CreateMap(); - pauseMan.AddUninitializedMap(mapId); - grid = mapLoader.LoadBlueprint(mapId, "Maps/stationstation.yml"); + // Create a one tile grid to stave off the grid 0 monsters + var mapId = mapManager.CreateMap(); + + pauseManager.AddUninitializedMap(mapId); + + var gridId = new GridId(1); + + if (!mapManager.TryGetGrid(gridId, out grid)) + { + grid = mapManager.CreateGrid(mapId, gridId); + } + + var tileDefinition = tileDefinitionManager["underplating"]; + var tile = new Tile(tileDefinition.TileId); + var coordinates = new GridCoordinates(0, 0, gridId); + + grid.SetTile(coordinates, tile); + + pauseManager.DoMapInitialize(mapId); }); server.Assert(() => @@ -54,6 +70,7 @@ namespace Content.IntegrationTests.Tests { continue; } + prototypes.Add(prototype); } @@ -91,7 +108,8 @@ namespace Content.IntegrationTests.Tests continue; } - Assert.That(prototype.Components.ContainsKey("Icon"), $"Entity {prototype.ID} does not have an Icon component, but is not abstract"); + Assert.That(prototype.Components.ContainsKey("Icon"), + $"Entity {prototype.ID} does not have an Icon component, but is not abstract"); } }); @@ -115,28 +133,37 @@ namespace Content.IntegrationTests.Tests - type: entity id: AllComponentsOneToOneDeleteTestEntity"; - var server = StartServerDummyTicker(); + var server = StartServerDummyTicker(new ServerContentIntegrationOption {ExtraPrototypes = testEntity}); await server.WaitIdleAsync(); var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); - var mapLoader = server.ResolveDependency(); var pauseManager = server.ResolveDependency(); var componentFactory = server.ResolveDependency(); - var prototypeManager = server.ResolveDependency(); + var tileDefinitionManager = server.ResolveDependency(); IMapGrid grid = default; server.Post(() => { - // Load test entity - using var reader = new StringReader(testEntity); - prototypeManager.LoadFromStream(reader); - - // Load test map + // Create a one tile grid to stave off the grid 0 monsters var mapId = mapManager.CreateMap(); + pauseManager.AddUninitializedMap(mapId); - grid = mapLoader.LoadBlueprint(mapId, "Maps/stationstation.yml"); + + var gridId = new GridId(1); + + if (!mapManager.TryGetGrid(gridId, out grid)) + { + grid = mapManager.CreateGrid(mapId, gridId); + } + + var tileDefinition = tileDefinitionManager["underplating"]; + var tile = new Tile(tileDefinition.TileId); + var coordinates = new GridCoordinates(0, 0, gridId); + + grid.SetTile(coordinates, tile); + pauseManager.DoMapInitialize(mapId); }); @@ -201,28 +228,37 @@ namespace Content.IntegrationTests.Tests - type: entity id: AllComponentsOneEntityDeleteTestEntity"; - var server = StartServerDummyTicker(); + var server = StartServerDummyTicker(new ServerContentIntegrationOption {ExtraPrototypes = testEntity}); await server.WaitIdleAsync(); var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); - var mapLoader = server.ResolveDependency(); var pauseManager = server.ResolveDependency(); var componentFactory = server.ResolveDependency(); - var prototypeManager = server.ResolveDependency(); + var tileDefinitionManager = server.ResolveDependency(); IMapGrid grid = default; server.Post(() => { - // Load test entity - using var reader = new StringReader(testEntity); - prototypeManager.LoadFromStream(reader); - - // Load test map + // Create a one tile grid to stave off the grid 0 monsters var mapId = mapManager.CreateMap(); + pauseManager.AddUninitializedMap(mapId); - grid = mapLoader.LoadBlueprint(mapId, "Maps/stationstation.yml"); + + var gridId = new GridId(1); + + if (!mapManager.TryGetGrid(gridId, out grid)) + { + grid = mapManager.CreateGrid(mapId, gridId); + } + + var tileDefinition = tileDefinitionManager["underplating"]; + var tile = new Tile(tileDefinition.TileId); + var coordinates = new GridCoordinates(0, 0, gridId); + + grid.SetTile(coordinates, tile); + pauseManager.DoMapInitialize(mapId); }); diff --git a/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs new file mode 100644 index 0000000000..4333444c65 --- /dev/null +++ b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs @@ -0,0 +1,102 @@ +using System.Threading.Tasks; +using Content.Server.GameObjects.Components.Fluids; +using Content.Shared.Chemistry; +using NUnit.Framework; +using Robust.Server.Interfaces.Timing; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.Map; + +namespace Content.IntegrationTests.Tests.Fluids +{ + [TestFixture] + [TestOf(typeof(PuddleComponent))] + public class PuddleTest : ContentIntegrationTest + { + [Test] + public async Task TilePuddleTest() + { + var server = StartServerDummyTicker(); + + await server.WaitIdleAsync(); + + var mapManager = server.ResolveDependency(); + var pauseManager = server.ResolveDependency(); + var tileDefinitionManager = server.ResolveDependency(); + + GridCoordinates coordinates = default; + + // Build up test environment + server.Post(() => + { + // Create a one tile grid to spill onto + var mapId = mapManager.CreateMap(); + + pauseManager.AddUninitializedMap(mapId); + + var gridId = new GridId(1); + + if (!mapManager.TryGetGrid(gridId, out var grid)) + { + grid = mapManager.CreateGrid(mapId, gridId); + } + + var tileDefinition = tileDefinitionManager["underplating"]; + var tile = new Tile(tileDefinition.TileId); + coordinates = new GridCoordinates(0, 0, gridId); + + grid.SetTile(coordinates, tile); + + pauseManager.DoMapInitialize(mapId); + }); + + await server.WaitIdleAsync(); + + server.Assert(() => + { + var solution = new Solution("water", ReagentUnit.New(20)); + var puddle = solution.SpillAt(coordinates, "PuddleSmear"); + Assert.NotNull(puddle); + }); + + await server.WaitIdleAsync(); + } + + [Test] + public async Task SpaceNoPuddleTest() + { + var server = StartServerDummyTicker(); + + await server.WaitIdleAsync(); + var mapManager = server.ResolveDependency(); + var pauseManager = server.ResolveDependency(); + + // Build up test environment + server.Post(() => + { + var mapId = mapManager.CreateMap(); + + pauseManager.AddUninitializedMap(mapId); + + var gridId = new GridId(1); + + if (!mapManager.GridExists(gridId)) + { + mapManager.CreateGrid(mapId, gridId); + } + }); + + await server.WaitIdleAsync(); + + server.Assert(() => + { + var gridId = new GridId(1); + var coordinates = new GridCoordinates(0, 0, gridId); + var solution = new Solution("water", ReagentUnit.New(20)); + var puddle = solution.SpillAt(coordinates, "PuddleSmear"); + Assert.Null(puddle); + }); + + await server.WaitIdleAsync(); + } + } +} diff --git a/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/CuffUnitTest.cs b/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/CuffUnitTest.cs index ea8d5ea324..682f01752a 100644 --- a/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/CuffUnitTest.cs +++ b/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/CuffUnitTest.cs @@ -87,7 +87,7 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking var slot = part.GetHashCode().ToString(); body.Template.Slots.Add(slot, BodyPartType.Hand); - body.InstallBodyPart(part, slot); + body.TryAddPart(slot, part, true); } } } diff --git a/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs b/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs new file mode 100644 index 0000000000..6ff7cfba99 --- /dev/null +++ b/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs @@ -0,0 +1,159 @@ +using System.Threading.Tasks; +using Content.Client.Utility; +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Utility; +using NUnit.Framework; +using Robust.Server.GameObjects.Components.Container; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.Map; + +namespace Content.IntegrationTests.Tests.Interaction +{ + [TestFixture] + [TestOf(typeof(SharedInteractionSystem))] + [TestOf(typeof(SharedRangeExtensions))] + [TestOf(typeof(RangeExtensions))] + public class InRangeUnobstructed : ContentIntegrationTest + { + private const string HumanId = "BaseHumanMob_Content"; + + private const float InteractionRange = SharedInteractionSystem.InteractionRange; + + private const float InteractionRangeDivided15 = InteractionRange / 1.5f; + + private readonly (float, float) _interactionRangeDivided15X = (InteractionRangeDivided15, 0f); + + private const float InteractionRangeDivided15Times3 = InteractionRangeDivided15 * 3; + + [Test] + public async Task EntityEntityTest() + { + var server = StartServerDummyTicker(); + + await server.WaitIdleAsync(); + + var entityManager = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + + IEntity origin = null; + IEntity other = null; + IContainer container = null; + IComponent component = null; + GridCoordinates gridCoordinates = default; + MapCoordinates mapCoordinates = default; + + server.Assert(() => + { + mapManager.CreateNewMapEntity(MapId.Nullspace); + var coordinates = MapCoordinates.Nullspace; + + origin = entityManager.SpawnEntity(HumanId, coordinates); + other = entityManager.SpawnEntity(HumanId, coordinates); + container = ContainerManagerComponent.Ensure("InRangeUnobstructedTestOtherContainer", other); + component = other.Transform; + gridCoordinates = other.Transform.GridPosition; + mapCoordinates = other.Transform.MapPosition; + }); + + await server.WaitIdleAsync(); + + server.Assert(() => + { + // Entity <-> Entity + Assert.True(origin.InRangeUnobstructed(other)); + Assert.True(other.InRangeUnobstructed(origin)); + + // Entity <-> Component + Assert.True(origin.InRangeUnobstructed(component)); + Assert.True(component.InRangeUnobstructed(origin)); + + // Entity <-> Container + Assert.True(origin.InRangeUnobstructed(container)); + Assert.True(container.InRangeUnobstructed(origin)); + + // Entity <-> GridCoordinates + Assert.True(origin.InRangeUnobstructed(gridCoordinates)); + Assert.True(gridCoordinates.InRangeUnobstructed(origin)); + + // Entity <-> MapCoordinates + Assert.True(origin.InRangeUnobstructed(mapCoordinates)); + Assert.True(mapCoordinates.InRangeUnobstructed(origin)); + + + // Move them slightly apart + origin.Transform.LocalPosition += _interactionRangeDivided15X; + + // Entity <-> Entity + Assert.True(origin.InRangeUnobstructed(other)); + Assert.True(other.InRangeUnobstructed(origin)); + + // Entity <-> Component + Assert.True(origin.InRangeUnobstructed(component)); + Assert.True(component.InRangeUnobstructed(origin)); + + // Entity <-> Container + Assert.True(origin.InRangeUnobstructed(container)); + Assert.True(container.InRangeUnobstructed(origin)); + + // Entity <-> GridCoordinates + Assert.True(origin.InRangeUnobstructed(gridCoordinates)); + Assert.True(gridCoordinates.InRangeUnobstructed(origin)); + + // Entity <-> MapCoordinates + Assert.True(origin.InRangeUnobstructed(mapCoordinates)); + Assert.True(mapCoordinates.InRangeUnobstructed(origin)); + + + // Move them out of range + origin.Transform.LocalPosition += _interactionRangeDivided15X; + + // Entity <-> Entity + Assert.False(origin.InRangeUnobstructed(other)); + Assert.False(other.InRangeUnobstructed(origin)); + + // Entity <-> Component + Assert.False(origin.InRangeUnobstructed(component)); + Assert.False(component.InRangeUnobstructed(origin)); + + // Entity <-> Container + Assert.False(origin.InRangeUnobstructed(container)); + Assert.False(container.InRangeUnobstructed(origin)); + + // Entity <-> GridCoordinates + Assert.False(origin.InRangeUnobstructed(gridCoordinates)); + Assert.False(gridCoordinates.InRangeUnobstructed(origin)); + + // Entity <-> MapCoordinates + Assert.False(origin.InRangeUnobstructed(mapCoordinates)); + Assert.False(mapCoordinates.InRangeUnobstructed(origin)); + + + // Checks with increased range + + // Entity <-> Entity + Assert.True(origin.InRangeUnobstructed(other, InteractionRangeDivided15Times3)); + Assert.True(other.InRangeUnobstructed(origin, InteractionRangeDivided15Times3)); + + // Entity <-> Component + Assert.True(origin.InRangeUnobstructed(component, InteractionRangeDivided15Times3)); + Assert.True(component.InRangeUnobstructed(origin, InteractionRangeDivided15Times3)); + + // Entity <-> Container + Assert.True(origin.InRangeUnobstructed(container, InteractionRangeDivided15Times3)); + Assert.True(container.InRangeUnobstructed(origin, InteractionRangeDivided15Times3)); + + // Entity <-> GridCoordinates + Assert.True(origin.InRangeUnobstructed(gridCoordinates, InteractionRangeDivided15Times3)); + Assert.True(gridCoordinates.InRangeUnobstructed(origin, InteractionRangeDivided15Times3)); + + // Entity <-> MapCoordinates + Assert.True(origin.InRangeUnobstructed(mapCoordinates, InteractionRangeDivided15Times3)); + Assert.True(mapCoordinates.InRangeUnobstructed(origin, InteractionRangeDivided15Times3)); + }); + + await server.WaitIdleAsync(); + } + } +} diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs new file mode 100644 index 0000000000..e29926951e --- /dev/null +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -0,0 +1,60 @@ +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using NUnit.Framework; +using Robust.Shared.Interfaces.Resources; +using Robust.Shared.Utility; +using YamlDotNet.RepresentationModel; + +namespace Content.IntegrationTests.Tests +{ + [TestFixture] + public class PostMapInitTest : ContentIntegrationTest + { + public readonly string[] SkippedMaps = + { + "/Maps/Pathfinding/simple.yml" + }; + + [Test] + public async Task NoSavedPostMapInitTest() + { + var server = StartServerDummyTicker(); + + await server.WaitIdleAsync(); + + var resourceManager = server.ResolveDependency(); + var mapFolder = new ResourcePath("/Maps"); + var maps = resourceManager + .ContentFindFiles(mapFolder) + .Where(filePath => filePath.Extension == "yml" && !filePath.Filename.StartsWith(".")) + .ToArray(); + + foreach (var map in maps) + { + var rootedPath = map.ToRootedPath(); + + if (SkippedMaps.Contains(rootedPath.ToString())) + { + continue; + } + + if (!resourceManager.TryContentFileRead(rootedPath, out var fileStream)) + { + Assert.Fail($"Map not found: {rootedPath}"); + } + + using var reader = new StreamReader(fileStream); + var yamlStream = new YamlStream(); + + yamlStream.Load(reader); + + var root = yamlStream.Documents[0].RootNode; + var meta = root["meta"]; + var postMapInit = meta["postmapinit"].AsBool(); + + Assert.False(postMapInit); + } + } + } +} diff --git a/Content.Server/AI/Operators/Inventory/CloseStorageOperator.cs b/Content.Server/AI/Operators/Inventory/CloseStorageOperator.cs index 8753fb6115..477c878491 100644 --- a/Content.Server/AI/Operators/Inventory/CloseStorageOperator.cs +++ b/Content.Server/AI/Operators/Inventory/CloseStorageOperator.cs @@ -3,6 +3,7 @@ using Content.Server.AI.WorldState.States.Inventory; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.Utility; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Shared.Interfaces.GameObjects; namespace Content.Server.AI.Operators.Inventory @@ -50,7 +51,7 @@ namespace Content.Server.AI.Operators.Inventory public override Outcome Execute(float frameTime) { - if (!InteractionChecks.InRangeUnobstructed(_owner, _target.Transform.MapPosition)) + if (!_owner.InRangeUnobstructed(_target, popup: true)) { return Outcome.Failed; } diff --git a/Content.Server/AI/Operators/Inventory/InteractWithEntityOperator.cs b/Content.Server/AI/Operators/Inventory/InteractWithEntityOperator.cs index 8e49c9587c..94702d95d6 100644 --- a/Content.Server/AI/Operators/Inventory/InteractWithEntityOperator.cs +++ b/Content.Server/AI/Operators/Inventory/InteractWithEntityOperator.cs @@ -1,6 +1,7 @@ using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems.Click; using Content.Server.Utility; +using Content.Shared.Utility; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; @@ -28,7 +29,7 @@ namespace Content.Server.AI.Operators.Inventory return Outcome.Failed; } - if (!InteractionChecks.InRangeUnobstructed(_owner, _useTarget.Transform.MapPosition)) + if (!_owner.InRangeUnobstructed(_useTarget, popup: true)) { return Outcome.Failed; } diff --git a/Content.Server/AI/Operators/Inventory/OpenStorageOperator.cs b/Content.Server/AI/Operators/Inventory/OpenStorageOperator.cs index f909842264..d981b843e6 100644 --- a/Content.Server/AI/Operators/Inventory/OpenStorageOperator.cs +++ b/Content.Server/AI/Operators/Inventory/OpenStorageOperator.cs @@ -4,6 +4,7 @@ using Content.Server.AI.WorldState.States.Inventory; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.Utility; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Shared.Containers; using Robust.Shared.Interfaces.GameObjects; @@ -30,7 +31,7 @@ namespace Content.Server.AI.Operators.Inventory return Outcome.Success; } - if (!InteractionChecks.InRangeUnobstructed(_owner, container.Owner.Transform.MapPosition, ignoredEnt: container.Owner)) + if (!_owner.InRangeUnobstructed(container, popup: true)) { return Outcome.Failed; } diff --git a/Content.Server/AI/Operators/Inventory/PickupEntityOperator.cs b/Content.Server/AI/Operators/Inventory/PickupEntityOperator.cs index d6631a41d7..289a9ba96a 100644 --- a/Content.Server/AI/Operators/Inventory/PickupEntityOperator.cs +++ b/Content.Server/AI/Operators/Inventory/PickupEntityOperator.cs @@ -3,6 +3,7 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.EntitySystems.Click; using Content.Server.Utility; +using Content.Shared.Utility; using Robust.Shared.Containers; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; @@ -26,7 +27,7 @@ namespace Content.Server.AI.Operators.Inventory if (_target.Deleted || !_target.HasComponent() || ContainerHelpers.IsInContainer(_target) || - !InteractionChecks.InRangeUnobstructed(_owner, _target.Transform.MapPosition)) + !_owner.InRangeUnobstructed(_target, popup: true)) { return Outcome.Failed; } diff --git a/Content.Server/AI/Utility/Considerations/Combat/Melee/MeleeWeaponSpeedCon.cs b/Content.Server/AI/Utility/Considerations/Combat/Melee/MeleeWeaponSpeedCon.cs index fc56a593f7..63e1bddd46 100644 --- a/Content.Server/AI/Utility/Considerations/Combat/Melee/MeleeWeaponSpeedCon.cs +++ b/Content.Server/AI/Utility/Considerations/Combat/Melee/MeleeWeaponSpeedCon.cs @@ -15,7 +15,7 @@ namespace Content.Server.AI.Utility.Considerations.Combat.Melee return 0.0f; } - return meleeWeaponComponent.CooldownTime / 10.0f; + return meleeWeaponComponent.ArcCooldownTime / 10.0f; } } } diff --git a/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs b/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs index 2554c4cf53..b6664b00c7 100644 --- a/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs +++ b/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs @@ -21,7 +21,7 @@ namespace Content.Server.AI.WorldState.States.Mobs return result; } - foreach (var entity in Visibility.GetEntitiesInRange(Owner.Transform.GridPosition, typeof(IBodyManagerComponent), controller.VisionRadius)) + foreach (var entity in Visibility.GetEntitiesInRange(Owner.Transform.GridPosition, typeof(ISharedBodyManagerComponent), controller.VisionRadius)) { if (entity == Owner) continue; result.Add(entity); diff --git a/Content.Server/Administration/DeleteEntitiesWithId.cs b/Content.Server/Administration/DeleteEntitiesWithId.cs new file mode 100644 index 0000000000..b2f3448167 --- /dev/null +++ b/Content.Server/Administration/DeleteEntitiesWithId.cs @@ -0,0 +1,39 @@ +#nullable enable +using Robust.Server.Interfaces.Console; +using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; + +namespace Content.Server.Administration +{ + public class DeleteEntitiesWithId : IClientCommand + { + public string Command => "deleteewi"; + public string Description => "Deletes entities with the specified prototype ID."; + public string Help => $"Usage: {Command} "; + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (args.Length != 1) + { + shell.SendText(player, Help); + return; + } + + var id = args[0].ToLower(); + var entityManager = IoCManager.Resolve(); + var query = new PredicateEntityQuery(e => e.Prototype?.ID.ToLower() == id); + var entities = entityManager.GetEntities(query); + var i = 0; + + foreach (var entity in entities) + { + entity.Delete(); + i++; + } + + shell.SendText(player, $"Deleted all entities with id {id}. Occurrences: {i}"); + } + } +} diff --git a/Content.Server/Atmos/AtmosCommands.cs b/Content.Server/Atmos/AtmosCommands.cs index 1db4ac0dc0..60b8fecd81 100644 --- a/Content.Server/Atmos/AtmosCommands.cs +++ b/Content.Server/Atmos/AtmosCommands.cs @@ -17,11 +17,21 @@ namespace Content.Server.Atmos { public string Command => "addatmos"; public string Description => "Adds atmos support to a grid."; - public string Help => "addatmos "; + public string Help => $"{Command} "; + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) { - if (args.Length < 1) return; - if(!int.TryParse(args[0], out var id)) return; + if (args.Length < 1) + { + shell.SendText(player, Help); + return; + } + + if (!int.TryParse(args[0], out var id)) + { + shell.SendText(player, $"{args[0]} is not a valid integer."); + return; + } var gridId = new GridId(id); @@ -29,7 +39,7 @@ namespace Content.Server.Atmos if (!gridId.IsValid() || !mapMan.TryGetGrid(gridId, out var gridComp)) { - shell.SendText(player, "Invalid grid ID."); + shell.SendText(player, $"{gridId} is not a valid grid id."); return; } @@ -41,7 +51,7 @@ namespace Content.Server.Atmos return; } - if (grid.HasComponent()) + if (grid.HasComponent()) { shell.SendText(player, "Grid already has an atmosphere."); return; @@ -53,6 +63,56 @@ namespace Content.Server.Atmos } } + public class AddUnsimulatedAtmos : IClientCommand + { + public string Command => "addunsimulatedatmos"; + public string Description => "Adds unimulated atmos support to a grid."; + public string Help => $"{Command} "; + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (args.Length < 1) + { + shell.SendText(player, Help); + return; + } + + if (!int.TryParse(args[0], out var id)) + { + shell.SendText(player, $"{args[0]} is not a valid integer."); + return; + } + + var gridId = new GridId(id); + + var mapMan = IoCManager.Resolve(); + + if (!gridId.IsValid() || !mapMan.TryGetGrid(gridId, out var gridComp)) + { + shell.SendText(player, $"{gridId} is not a valid grid id."); + return; + } + + var entMan = IoCManager.Resolve(); + + if (!entMan.TryGetEntity(gridComp.GridEntityId, out var grid)) + { + shell.SendText(player, "Failed to get grid entity."); + return; + } + + if (grid.HasComponent()) + { + shell.SendText(player, "Grid already has an atmosphere."); + return; + } + + grid.AddComponent(); + + shell.SendText(player, $"Added unsimulated atmosphere to grid {id}."); + } + } + public class ListGases : IClientCommand { public string Command => "listgases"; diff --git a/Content.Server/Atmos/ExcitedGroup.cs b/Content.Server/Atmos/ExcitedGroup.cs index 7935be28b5..6a32a422eb 100644 --- a/Content.Server/Atmos/ExcitedGroup.cs +++ b/Content.Server/Atmos/ExcitedGroup.cs @@ -105,6 +105,7 @@ namespace Content.Server.Atmos { if (tile?.Air == null) continue; tile.Air.CopyFromMutable(combined); + tile.AtmosCooldown = 0; tile.UpdateVisuals(); } @@ -131,7 +132,7 @@ namespace Content.Server.Atmos _disposed = true; _gridAtmosphereComponent.RemoveExcitedGroup(this); - Dismantle(); + Dismantle(false); _gridAtmosphereComponent = null; } diff --git a/Content.Server/Atmos/GasSprayerComponent.cs b/Content.Server/Atmos/GasSprayerComponent.cs index b8460f91dd..7bcb9361d9 100644 --- a/Content.Server/Atmos/GasSprayerComponent.cs +++ b/Content.Server/Atmos/GasSprayerComponent.cs @@ -1,7 +1,7 @@ using Content.Server.GameObjects.Components.Chemistry; -using Content.Server.Interfaces; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; @@ -13,13 +13,11 @@ using Robust.Shared.Localization; using Robust.Shared.Maths; using Robust.Shared.Serialization; - namespace Content.Server.Atmos { [RegisterComponent] public class GasSprayerComponent : Component, IAfterInteract { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IServerEntityManager _serverEntityManager = default!; //TODO: create a function that can create a gas based on a solution mix @@ -48,7 +46,7 @@ namespace Content.Server.Atmos if (tank.Solution.GetReagentQuantity(_fuelType) == 0) { - _notifyManager.PopupMessage(Owner, eventArgs.User, + Owner.PopupMessage(eventArgs.User, Loc.GetString("{0:theName} is out of {1}!", Owner, _fuelName)); } else diff --git a/Content.Server/Atmos/TileAtmosphere.cs b/Content.Server/Atmos/TileAtmosphere.cs index 0a09904f53..0a26c09a4d 100644 --- a/Content.Server/Atmos/TileAtmosphere.cs +++ b/Content.Server/Atmos/TileAtmosphere.cs @@ -9,6 +9,7 @@ using Content.Server.Interfaces; using Content.Shared.Atmos; using Content.Shared.Audio; using Content.Shared.Maps; +using JetBrains.Annotations; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -40,6 +41,9 @@ namespace Content.Server.Atmos [ViewVariables] private static GasTileOverlaySystem _gasTileOverlaySystem; + [ViewVariables] + public int AtmosCooldown { get; set; } = 0; + [ViewVariables] private float _temperature = Atmospherics.T20C; @@ -73,9 +77,11 @@ namespace Content.Server.Atmos [ViewVariables] private readonly TileAtmosphere[] _adjacentTiles = new TileAtmosphere[Atmospherics.Directions]; - [ViewVariables] private AtmosDirection _adjacentBits = AtmosDirection.Invalid; + [ViewVariables, UsedImplicitly] + private int AdjacentBitsInt => (int)_adjacentBits; + [ViewVariables] private TileAtmosInfo _tileAtmosInfo; @@ -84,6 +90,9 @@ namespace Content.Server.Atmos private AtmosDirection _pressureDirection; + [ViewVariables, UsedImplicitly] + private int PressureDirectionInt => (int)_pressureDirection; + [ViewVariables] public GridId GridIndex { get; } @@ -635,6 +644,15 @@ namespace Content.Server.Atmos _currentCycle = fireCount; var adjacentTileLength = 0; + + AtmosCooldown++; + for (var i = 0; i < Atmospherics.Directions; i++) + { + var direction = (AtmosDirection) (1 << i); + if(_adjacentBits.HasFlag(direction)) + adjacentTileLength++; + } + for(var i = 0; i < Atmospherics.Directions; i++) { var direction = (AtmosDirection) (1 << i); @@ -643,7 +661,6 @@ namespace Content.Server.Atmos // If the tile is null or has no air, we don't do anything for it. if(enemyTile?.Air == null) continue; - adjacentTileLength++; if (fireCount <= enemyTile._currentCycle) continue; enemyTile.Archive(fireCount); @@ -703,7 +720,13 @@ namespace Content.Server.Atmos React(); UpdateVisuals(); - if((!(Air.Temperature > Atmospherics.MinimumTemperatureStartSuperConduction && ConsiderSuperconductivity(true))) && ExcitedGroup == null) + var remove = true; + + if(Air.Temperature > Atmospherics.MinimumTemperatureStartSuperConduction) + if (ConsiderSuperconductivity(true)) + remove = false; + + if((ExcitedGroup == null && remove) || (AtmosCooldown > (Atmospherics.ExcitedGroupsDismantleCycles * 2))) _gridAtmosphereComponent.RemoveActiveTile(this); } @@ -1143,9 +1166,11 @@ namespace Content.Server.Atmos if (lastShare > Atmospherics.MinimumAirToSuspend) { ExcitedGroup.ResetCooldowns(); + AtmosCooldown = 0; } else if (lastShare > Atmospherics.MinimumMolesDeltaToMove) { ExcitedGroup.DismantleCooldown = 0; + AtmosCooldown = 0; } } diff --git a/Content.Server/Body/BodyCommands.cs b/Content.Server/Body/BodyCommands.cs index da8c9e4ca1..47da73fb64 100644 --- a/Content.Server/Body/BodyCommands.cs +++ b/Content.Server/Body/BodyCommands.cs @@ -1,14 +1,19 @@ #nullable enable -using System.Linq; using Content.Server.GameObjects.Components.Body; using Content.Shared.Body.Part; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Damage; using Robust.Server.Interfaces.Console; using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; using Robust.Shared.Prototypes; using Robust.Shared.Random; +using System; +using System.Linq; namespace Content.Server.Body { @@ -48,7 +53,7 @@ namespace Content.Server.Body var slot = part.GetHashCode().ToString(); body.Template.Slots.Add(slot, BodyPartType.Hand); - body.InstallBodyPart(part, slot); + body.TryAddPart(slot, part, true); } } @@ -144,4 +149,89 @@ namespace Content.Server.Body shell.SendText(player, $"No mechanism was found with name {mechanismName}."); } } + + class HurtCommand : IClientCommand + { + public string Command => "hurt"; + public string Description => "Ouch"; + public string Help => $"Usage: {Command} () ()"; + + private void SendDamageTypes(IConsoleShell shell, IPlayerSession? player) + { + var msg = ""; + foreach (var dClass in Enum.GetNames(typeof(DamageClass))) + { + msg += $"\n{dClass}"; + var types = Enum.Parse(dClass).ToTypes(); + foreach (var dType in types) + { + msg += $"\n - {dType}"; + } + } + shell.SendText(player, $"Damage Types:{msg}"); + } + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + // Check if we have enough for the dmg types to show + if (args.Length > 0 && args[0] == "?") + { + SendDamageTypes(shell, player); + return; + } + + // Not enough args + if (args.Length < 2) + { + shell.SendText(player, Help); + return; + } + + var ignoreResistance = false; + var entityUid = player != null && player.AttachedEntityUid.HasValue ? player.AttachedEntityUid.Value : EntityUid.Invalid; + if (!int.TryParse(args[1], out var amount) || + args.Length >= 3 && args[2] != "_" && !EntityUid.TryParse(args[2], out entityUid) || + args.Length >= 4 && !bool.TryParse(args[3], out ignoreResistance)) + { + shell.SendText(player, Help); + return; + } + + if (entityUid == EntityUid.Invalid) + { + shell.SendText(player, "Not a valid entity."); + return; + } + + if (!IoCManager.Resolve().TryGetEntity(entityUid, out var ent)) + { + shell.SendText(player, "Entity couldn't be found."); + return; + } + + if (!ent.TryGetComponent(out IDamageableComponent? damageable)) + { + shell.SendText(player, "Entity can't be damaged."); + return; + } + + if (Enum.TryParse(args[0], true, out var dmgClass)) + { + if (!damageable.ChangeDamage(dmgClass, amount, ignoreResistance)) + shell.SendText(player, "Something went wrong!"); + return; + } + // Fall back to DamageType + else if (Enum.TryParse(args[0], true, out var dmgType)) + { + if (!damageable.ChangeDamage(dmgType, amount, ignoreResistance)) + shell.SendText(player, "Something went wrong!"); + return; + } + else + { + SendDamageTypes(shell, player); + } + } + } } diff --git a/Content.Server/Body/BodyPart.cs b/Content.Server/Body/BodyPart.cs index 32121f056a..544ce651ec 100644 --- a/Content.Server/Body/BodyPart.cs +++ b/Content.Server/Body/BodyPart.cs @@ -14,13 +14,11 @@ using Content.Shared.Damage.DamageContainer; using Content.Shared.Damage.ResistanceSet; using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Damage; -using Robust.Server.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Reflection; using Robust.Shared.Interfaces.Serialization; using Robust.Shared.IoC; using Robust.Shared.Log; -using Robust.Shared.Map; using Robust.Shared.Maths; using Robust.Shared.Prototypes; using Robust.Shared.Utility; @@ -34,20 +32,11 @@ namespace Content.Server.Body /// which coordinates functions between BodyParts, or a /// . /// - public class BodyPart + public class BodyPart : IBodyPart { - /// - /// The body that this body part is in, if any. - /// - private BodyManagerComponent? _body; + private IBodyManagerComponent? _body; - /// - /// Set of all currently inside this - /// . - /// To add and remove from this list see and - /// - /// - private readonly HashSet _mechanisms = new HashSet(); + private readonly HashSet _mechanisms = new HashSet(); public BodyPart(BodyPartPrototype data) { @@ -64,11 +53,8 @@ namespace Content.Server.Body LoadFromPrototype(data); } - /// - /// The body that this body part is in, if any. - /// [ViewVariables] - public BodyManagerComponent? Body + public IBodyManagerComponent? Body { get => _body; set @@ -111,91 +97,48 @@ namespace Content.Server.Body [ViewVariables] private HashSet Properties { get; } - /// - /// The name of this , often displayed to the user. - /// For example, it could be named "advanced robotic arm". - /// - [ViewVariables] - public string Name { get; private set; } + [ViewVariables] public string Name { get; private set; } - /// - /// Plural version of this name. - /// - [ViewVariables] - public string Plural { get; private set; } + [ViewVariables] public string Plural { get; private set; } - /// - /// Path to the RSI that represents this . - /// - [ViewVariables] - public string RSIPath { get; private set; } + [ViewVariables] public string RSIPath { get; private set; } - /// - /// RSI state that represents this . - /// - [ViewVariables] - public string RSIState { get; private set; } + [ViewVariables] public string RSIState { get; private set; } - /// - /// RSI map keys that this body part changes on the sprite. - /// - [ViewVariables] - public Enum? RSIMap { get; set; } + [ViewVariables] public Enum? RSIMap { get; set; } - /// - /// RSI color of this body part. - /// // TODO: SpriteComponent rework - public Color? RSIColor { get; set; } + [ViewVariables] public Color? RSIColor { get; set; } - /// - /// that this is considered - /// to be. - /// For example, . - /// - [ViewVariables] - public BodyPartType PartType { get; private set; } + [ViewVariables] public BodyPartType PartType { get; private set; } - /// - /// Determines many things: how many mechanisms can be fit inside this - /// , whether a body can fit through tiny crevices, etc. - /// - [ViewVariables] - private int Size { get; set; } + [ViewVariables] public int Size { get; private set; } - /// - /// Max HP of this . - /// - [ViewVariables] - public int MaxDurability { get; private set; } + [ViewVariables] public int MaxDurability { get; private set; } - /// - /// Current HP of this based on sum of all damage types. - /// - [ViewVariables] - public int CurrentDurability => MaxDurability - Damage.TotalDamage; + [ViewVariables] public int CurrentDurability => MaxDurability - Damage.TotalDamage; // TODO: Individual body part damage /// - /// Current damage dealt to this . + /// Current damage dealt to this . /// [ViewVariables] public DamageContainer Damage { get; private set; } /// - /// Armor of this against damages. + /// Armor of this against damages. /// [ViewVariables] public ResistanceSet Resistances { get; private set; } /// - /// At what HP this destroyed. + /// At what HP this destroyed. /// [ViewVariables] public int DestroyThreshold { get; private set; } /// - /// What types of BodyParts this can easily attach to. + /// What types of BodyParts this can easily attach to. /// For the most part, most limbs aren't universal and require extra work to /// attach between types. /// @@ -203,15 +146,23 @@ namespace Content.Server.Body public BodyPartCompatibility Compatibility { get; private set; } /// - /// Set of all currently inside this - /// . + /// Set of all currently inside this + /// . /// [ViewVariables] - public IReadOnlyCollection Mechanisms => _mechanisms; + public IReadOnlyCollection Mechanisms => _mechanisms; /// - /// This method is called by - /// before is called. + /// Represents if body part is vital for creature. + /// If the last vital body part is removed creature dies + /// + [ViewVariables] + public bool IsVital { get; private set; } + + /// + /// This method is called by + /// before + /// is called. /// public void PreMetabolism(float frameTime) { @@ -222,8 +173,9 @@ namespace Content.Server.Body } /// - /// This method is called by - /// after is called. + /// This method is called by + /// after + /// is called. /// public void PostMetabolism(float frameTime) { @@ -258,9 +210,10 @@ namespace Content.Server.Body /// The property if found, null otherwise. /// The type of the property to find. /// True if successful, false otherwise. - public bool TryGetProperty(out T property) + public bool TryGetProperty([NotNullWhen(true)] out T? property) where T : BodyPartProperty { - property = (T) Properties.First(x => x.GetType() == typeof(T)); + property = (T?) Properties.FirstOrDefault(x => x.GetType() == typeof(T)); + return property != null; } @@ -269,20 +222,21 @@ namespace Content.Server.Body /// The resulting will be null if unsuccessful. /// /// True if successful, false otherwise. - public bool TryGetProperty(Type propertyType, out BodyPartProperty property) + public bool TryGetProperty(Type propertyType, [NotNullWhen(true)] out BodyPartProperty? property) { - property = (BodyPartProperty) Properties.First(x => x.GetType() == propertyType); + property = (BodyPartProperty?) Properties.First(x => x.GetType() == propertyType); + return property != null; } /// - /// Checks if the given type is on this . + /// Checks if the given type is on this . /// /// /// The subtype of to look for. /// /// - /// True if this has a property of type + /// True if this has a property of type /// , false otherwise. /// public bool HasProperty() where T : BodyPartProperty @@ -292,13 +246,13 @@ namespace Content.Server.Body /// /// Checks if a subtype of is on this - /// . + /// . /// /// /// The subtype of to look for. /// /// - /// True if this has a property of type + /// True if this has a property of type /// , false otherwise. /// public bool HasProperty(Type propertyType) @@ -306,22 +260,12 @@ namespace Content.Server.Body return Properties.Count(x => x.GetType() == propertyType) > 0; } - /// - /// Checks if another can be connected to this one. - /// - /// The part to connect. - /// True if it can be connected, false otherwise. - public bool CanAttachBodyPart(BodyPart toBeConnected) + public bool CanAttachPart(IBodyPart part) { - return SurgeryData.CanAttachBodyPart(toBeConnected); + return SurgeryData.CanAttachBodyPart(part); } - /// - /// Checks if a can be installed on this - /// . - /// - /// True if it can be installed, false otherwise. - public bool CanInstallMechanism(Mechanism mechanism) + public bool CanInstallMechanism(IMechanism mechanism) { return SizeUsed + mechanism.Size <= Size && SurgeryData.CanInstallMechanism(mechanism); @@ -336,9 +280,9 @@ namespace Content.Server.Body /// The mechanism to try to install. /// /// True if successful, false if there was an error - /// (e.g. not enough room in ). + /// (e.g. not enough room in ). /// - private bool TryInstallMechanism(Mechanism mechanism) + private bool TryInstallMechanism(IMechanism mechanism) { if (!CanInstallMechanism(mechanism)) { @@ -352,7 +296,7 @@ namespace Content.Server.Body /// /// Tries to install a into this - /// , potentially deleting the dropped + /// , potentially deleting the dropped /// . /// /// The mechanism to install. @@ -364,22 +308,14 @@ namespace Content.Server.Body { if (!TryInstallMechanism(droppedMechanism.ContainedMechanism)) { - return false; //Installing the mechanism failed for some reason. + return false; // Installing the mechanism failed for some reason. } droppedMechanism.Owner.Delete(); return true; } - /// - /// Tries to remove the given reference from - /// this . - /// - /// - /// The newly spawned , or null - /// if there was an error in spawning the entity or removing the mechanism. - /// - public bool TryDropMechanism(IEntity dropLocation, Mechanism mechanismTarget, + public bool TryDropMechanism(IEntity dropLocation, IMechanism mechanismTarget, [NotNullWhen(true)] out DroppedMechanismComponent dropped) { dropped = null!; @@ -402,16 +338,16 @@ namespace Content.Server.Body } /// - /// Tries to destroy the given in this - /// . Does NOT spawn a dropped entity. + /// Tries to destroy the given in this + /// . Does NOT spawn a dropped entity. /// /// - /// Tries to destroy the given in this - /// . + /// Tries to destroy the given in this + /// . /// /// The mechanism to destroy. /// True if successful, false otherwise. - public bool DestroyMechanism(Mechanism mechanismTarget) + public bool DestroyMechanism(IMechanism mechanismTarget) { if (!RemoveMechanism(mechanismTarget)) { @@ -421,18 +357,13 @@ namespace Content.Server.Body return true; } - /// - /// Checks if the given can be used on - /// the current state of this . - /// - /// True if it can be used, false otherwise. - public bool SurgeryCheck(SurgeryType toolType) + public bool SurgeryCheck(SurgeryType surgery) { - return SurgeryData.CheckSurgery(toolType); + return SurgeryData.CheckSurgery(surgery); } /// - /// Attempts to perform surgery on this with the given + /// Attempts to perform surgery on this with the given /// tool. /// /// True if successful, false if there was an error. @@ -441,7 +372,7 @@ namespace Content.Server.Body return SurgeryData.PerformSurgery(toolType, target, surgeon, performer); } - private void AddMechanism(Mechanism mechanism) + private void AddMechanism(IMechanism mechanism) { DebugTools.AssertNotNull(mechanism); @@ -474,11 +405,11 @@ namespace Content.Server.Body /// /// Tries to remove the given from this - /// . + /// . /// /// The mechanism to remove. /// True if it was removed, false otherwise. - private bool RemoveMechanism(Mechanism mechanism) + private bool RemoveMechanism(IMechanism mechanism) { DebugTools.AssertNotNull(mechanism); @@ -515,7 +446,7 @@ namespace Content.Server.Body /// /// Loads the given . - /// Current data on this will be overwritten! + /// Current data on this will be overwritten! /// protected virtual void LoadFromPrototype(BodyPartPrototype data) { @@ -527,6 +458,7 @@ namespace Content.Server.Body RSIPath = data.RSIPath; RSIState = data.RSIState; MaxDurability = data.Durability; + IsVital = data.IsVital; if (!prototypeManager.TryIndex(data.DamageContainerPresetId, out DamageContainerPrototype damageContainerData)) diff --git a/Content.Server/Body/BodyPreset.cs b/Content.Server/Body/BodyPreset.cs index 12e67c53e9..2afc863beb 100644 --- a/Content.Server/Body/BodyPreset.cs +++ b/Content.Server/Body/BodyPreset.cs @@ -21,7 +21,7 @@ namespace Content.Server.Body [ViewVariables] public string Name { get; private set; } /// - /// Maps a template slot to the ID of the that should + /// Maps a template slot to the ID of the that should /// fill it. E.g. "right arm" : "BodyPart.arm.basic_human". /// [ViewVariables] diff --git a/Content.Server/Body/IBodyPart.cs b/Content.Server/Body/IBodyPart.cs new file mode 100644 index 0000000000..eaa49d0e06 --- /dev/null +++ b/Content.Server/Body/IBodyPart.cs @@ -0,0 +1,136 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Content.Server.Body.Mechanisms; +using Content.Server.GameObjects.Components.Body; +using Content.Shared.Body.Part.Properties; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Maths; + +namespace Content.Server.Body +{ + public interface IBodyPart + { + /// + /// The body that this body part is currently in, if any. + /// + IBodyManagerComponent? Body { get; set; } + + /// + /// that this is considered + /// to be. + /// For example, . + /// + BodyPartType PartType { get; } + + /// + /// The name of this , often displayed to the user. + /// For example, it could be named "advanced robotic arm". + /// + public string Name { get; } + + /// + /// Plural version of this name. + /// + public string Plural { get; } + + /// + /// Determines many things: how many mechanisms can be fit inside this + /// , whether a body can fit through tiny crevices, + /// etc. + /// + int Size { get; } + + /// + /// Max HP of this . + /// + int MaxDurability { get; } + + /// + /// Current HP of this based on sum of all damage types. + /// + int CurrentDurability { get; } + + /// + /// Collection of all s currently inside this + /// . + /// To add and remove from this list see and + /// + /// + IReadOnlyCollection Mechanisms { get; } + + /// + /// Path to the RSI that represents this . + /// + public string RSIPath { get; } + + /// + /// RSI state that represents this . + /// + public string RSIState { get; } + + /// + /// RSI map keys that this body part changes on the sprite. + /// + public Enum? RSIMap { get; set; } + + /// + /// RSI color of this body part. + /// + // TODO: SpriteComponent rework + public Color? RSIColor { get; set; } + + /// + /// If body part is vital + /// + public bool IsVital { get; } + + bool HasProperty() where T : BodyPartProperty; + + bool HasProperty(Type type); + + bool TryGetProperty([NotNullWhen(true)] out T? property) where T : BodyPartProperty; + + void PreMetabolism(float frameTime); + + void PostMetabolism(float frameTime); + + bool SpawnDropped([NotNullWhen(true)] out IEntity? dropped); + + /// + /// Checks if the given can be used on + /// the current state of this . + /// + /// True if it can be used, false otherwise. + bool SurgeryCheck(SurgeryType surgery); + + /// + /// Checks if another can be connected to this one. + /// + /// The part to connect. + /// True if it can be connected, false otherwise. + bool CanAttachPart(IBodyPart part); + + /// + /// Checks if a can be installed on this + /// . + /// + /// True if it can be installed, false otherwise. + bool CanInstallMechanism(IMechanism mechanism); + + /// + /// Tries to remove the given reference from + /// this . + /// + /// + /// The newly spawned , or null + /// if there was an error in spawning the entity or removing the mechanism. + /// + bool TryDropMechanism(IEntity dropLocation, IMechanism mechanismTarget, + [NotNullWhen(true)] out DroppedMechanismComponent dropped); + + bool DestroyMechanism(IMechanism mechanism); + } +} diff --git a/Content.Server/Body/IBodyPartContainer.cs b/Content.Server/Body/IBodyPartContainer.cs index fdc4c402e9..f47d9b4657 100644 --- a/Content.Server/Body/IBodyPartContainer.cs +++ b/Content.Server/Body/IBodyPartContainer.cs @@ -7,11 +7,11 @@ namespace Content.Server.Body /// Making a class inherit from this interface allows you to do many things with /// it in the class. /// This includes passing it as an argument to a - /// delegate, as to later typecast it back - /// to the original class type. - /// Every BodyPart also needs an to be its parent - /// (i.e. the holds many , - /// each of which have an upward reference to it). + /// delegate, as to later typecast + /// it back to the original class type. + /// Every BodyPart also needs an to be + /// its parent (i.e. the holds many + /// , each of which have an upward reference to it). /// public interface IBodyPartContainer { diff --git a/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs index 77c3d5e982..54f1e97384 100644 --- a/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs +++ b/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs @@ -70,7 +70,7 @@ namespace Content.Server.Body.Mechanisms.Behaviors } /// - /// Called when the containing is attached to a + /// Called when the containing is attached to a /// . /// For instance, attaching a head to a body will call this on the brain inside. /// @@ -82,7 +82,7 @@ namespace Content.Server.Body.Mechanisms.Behaviors /// /// Called when the parent is - /// installed into a . + /// installed into a . /// For instance, putting a brain into an empty head. /// public void InstalledIntoPart() @@ -92,22 +92,22 @@ namespace Content.Server.Body.Mechanisms.Behaviors } /// - /// Called when the containing is removed from a + /// Called when the containing is removed from a /// . /// For instance, cutting off ones head will call this on the brain inside. /// - public void RemovedFromBody(BodyManagerComponent old) + public void RemovedFromBody(IBodyManagerComponent old) { OnRemovedFromBody(old); TryRemoveNetwork(old); } /// - /// Called when the parent is removed from a - /// . + /// Called when the parent is + /// removed from a . /// For instance, taking a brain out of ones head. /// - public void RemovedFromPart(BodyPart old) + public void RemovedFromPart(IBodyPart old) { OnRemovedFromPart(old); TryRemoveNetwork(old.Body); @@ -121,7 +121,7 @@ namespace Content.Server.Body.Mechanisms.Behaviors } } - private void TryRemoveNetwork(BodyManagerComponent? body) + private void TryRemoveNetwork(IBodyManagerComponent? body) { if (Network != null) { @@ -137,7 +137,7 @@ namespace Content.Server.Body.Mechanisms.Behaviors protected virtual void OnRemove() { } /// - /// Called when the containing is attached to a + /// Called when the containing is attached to a /// . /// For instance, attaching a head to a body will call this on the brain inside. /// @@ -145,24 +145,24 @@ namespace Content.Server.Body.Mechanisms.Behaviors /// /// Called when the parent is - /// installed into a . + /// installed into a . /// For instance, putting a brain into an empty head. /// protected virtual void OnInstalledIntoPart() { } /// - /// Called when the containing is removed from a + /// Called when the containing is removed from a /// . /// For instance, cutting off ones head will call this on the brain inside. /// - protected virtual void OnRemovedFromBody(BodyManagerComponent old) { } + protected virtual void OnRemovedFromBody(IBodyManagerComponent old) { } /// - /// Called when the parent is removed from a - /// . + /// Called when the parent is + /// removed from a . /// For instance, taking a brain out of ones head. /// - protected virtual void OnRemovedFromPart(BodyPart old) { } + protected virtual void OnRemovedFromPart(IBodyPart old) { } /// /// Called every update when this behavior is connected to a diff --git a/Content.Server/Body/Mechanisms/IMechanism.cs b/Content.Server/Body/Mechanisms/IMechanism.cs new file mode 100644 index 0000000000..9037c0f4e9 --- /dev/null +++ b/Content.Server/Body/Mechanisms/IMechanism.cs @@ -0,0 +1,103 @@ +#nullable enable +using System.Collections.Generic; +using Content.Server.Body.Mechanisms.Behaviors; +using Content.Server.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Body; + +namespace Content.Server.Body.Mechanisms +{ + public interface IMechanism + { + string Id { get; } + + string Name { get; set; } + + /// + /// Professional description of the . + /// + string Description { get; set; } + + /// + /// The message to display upon examining a mob with this Mechanism installed. + /// If the string is empty (""), no message will be displayed. + /// + string ExamineMessage { get; set; } + + // TODO: Make RSI properties sane + /// + /// Path to the RSI that represents this . + /// + string RSIPath { get; set; } + + /// + /// RSI state that represents this . + /// + string RSIState { get; set; } + + /// + /// Max HP of this . + /// + int MaxDurability { get; set; } + + /// + /// Current HP of this . + /// + int CurrentDurability { get; set; } + + /// + /// At what HP this is completely destroyed. + /// + int DestroyThreshold { get; set; } + + /// + /// Armor of this against attacks. + /// + int Resistance { get; set; } + + /// + /// Determines a handful of things - mostly whether this + /// can fit into a . + /// + // TODO: OnSizeChanged + int Size { get; set; } + + /// + /// What kind of this can be + /// easily installed into. + /// + BodyPartCompatibility Compatibility { get; set; } + + IReadOnlyList Behaviors { get; } + + IBodyManagerComponent? Body { get; } + + IBodyPart? Part { get; set; } + + void EnsureInitialize(); + + void InstalledIntoBody(); + + void RemovedFromBody(IBodyManagerComponent old); + + /// + /// This method is called by before + /// is called. + /// + void PreMetabolism(float frameTime); + + /// + /// This method is called by after + /// is called. + /// + void PostMetabolism(float frameTime); + + void AddBehavior(MechanismBehavior behavior); + + /// + /// Removes a behavior from this mechanism. + /// + /// The behavior to remove. + /// True if it was removed, false otherwise. + bool RemoveBehavior(MechanismBehavior behavior); + } +} diff --git a/Content.Server/Body/Mechanisms/Mechanism.cs b/Content.Server/Body/Mechanisms/Mechanism.cs index 9c88b0425b..9b7a254155 100644 --- a/Content.Server/Body/Mechanisms/Mechanism.cs +++ b/Content.Server/Body/Mechanisms/Mechanism.cs @@ -12,13 +12,13 @@ using Robust.Shared.ViewVariables; namespace Content.Server.Body.Mechanisms { /// - /// Data class representing a persistent item inside a . + /// Data class representing a persistent item inside a . /// This includes livers, eyes, cameras, brains, explosive implants, /// binary communicators, and other things. /// - public class Mechanism + public class Mechanism : IMechanism { - private BodyPart? _part; + private IBodyPart? _part; public Mechanism(MechanismPrototype data) { @@ -29,7 +29,7 @@ namespace Content.Server.Body.Mechanisms ExamineMessage = null!; RSIPath = null!; RSIState = null!; - Behaviors = new List(); + _behaviors = new List(); } [ViewVariables] private bool Initialized { get; set; } @@ -40,78 +40,33 @@ namespace Content.Server.Body.Mechanisms [ViewVariables] public string Name { get; set; } - /// - /// Professional description of the . - /// - [ViewVariables] - public string Description { get; set; } + [ViewVariables] public string Description { get; set; } - /// - /// The message to display upon examining a mob with this Mechanism installed. - /// If the string is empty (""), no message will be displayed. - /// - [ViewVariables] - public string ExamineMessage { get; set; } + [ViewVariables] public string ExamineMessage { get; set; } - /// - /// Path to the RSI that represents this . - /// - [ViewVariables] - public string RSIPath { get; set; } + [ViewVariables] public string RSIPath { get; set; } - /// - /// RSI state that represents this . - /// - [ViewVariables] - public string RSIState { get; set; } + [ViewVariables] public string RSIState { get; set; } - /// - /// Max HP of this . - /// - [ViewVariables] - public int MaxDurability { get; set; } + [ViewVariables] public int MaxDurability { get; set; } - /// - /// Current HP of this . - /// - [ViewVariables] - public int CurrentDurability { get; set; } + [ViewVariables] public int CurrentDurability { get; set; } - /// - /// At what HP this is completely destroyed. - /// - [ViewVariables] - public int DestroyThreshold { get; set; } + [ViewVariables] public int DestroyThreshold { get; set; } - /// - /// Armor of this against attacks. - /// - [ViewVariables] - public int Resistance { get; set; } + [ViewVariables] public int Resistance { get; set; } - /// - /// Determines a handful of things - mostly whether this - /// can fit into a . - /// - [ViewVariables] - public int Size { get; set; } + [ViewVariables] public int Size { get; set; } - /// - /// What kind of this can be - /// easily installed into. - /// - [ViewVariables] - public BodyPartCompatibility Compatibility { get; set; } + [ViewVariables] public BodyPartCompatibility Compatibility { get; set; } - /// - /// The behaviors that this performs. - /// - [ViewVariables] - private List Behaviors { get; } + private readonly List _behaviors; - public BodyManagerComponent? Body => Part?.Body; + [ViewVariables] public IReadOnlyList Behaviors => _behaviors; - public BodyPart? Part + public IBodyManagerComponent? Body => Part?.Body; + + public IBodyPart? Part { get => _part; set @@ -167,7 +122,7 @@ namespace Content.Server.Body.Mechanisms Size = data.Size; Compatibility = data.Compatibility; - foreach (var behavior in Behaviors.ToArray()) + foreach (var behavior in _behaviors.ToArray()) { RemoveBehavior(behavior); } @@ -202,7 +157,7 @@ namespace Content.Server.Body.Mechanisms } } - public void RemovedFromBody(BodyManagerComponent old) + public void RemovedFromBody(IBodyManagerComponent old) { foreach (var behavior in Behaviors) { @@ -210,10 +165,6 @@ namespace Content.Server.Body.Mechanisms } } - /// - /// This method is called by before - /// is called. - /// public void PreMetabolism(float frameTime) { foreach (var behavior in Behaviors) @@ -222,10 +173,6 @@ namespace Content.Server.Body.Mechanisms } } - /// - /// This method is called by after - /// is called. - /// public void PostMetabolism(float frameTime) { foreach (var behavior in Behaviors) @@ -234,16 +181,21 @@ namespace Content.Server.Body.Mechanisms } } - private void AddBehavior(MechanismBehavior behavior) + public void AddBehavior(MechanismBehavior behavior) { - Behaviors.Add(behavior); + _behaviors.Add(behavior); behavior.Initialize(this); } - private bool RemoveBehavior(MechanismBehavior behavior) + public bool RemoveBehavior(MechanismBehavior behavior) { - behavior.Remove(); - return Behaviors.Remove(behavior); + if (_behaviors.Remove(behavior)) + { + behavior.Remove(); + return true; + } + + return false; } } } diff --git a/Content.Server/Body/Surgery/BiologicalSurgeryData.cs b/Content.Server/Body/Surgery/BiologicalSurgeryData.cs index 37fbb57b29..30cbd2a56b 100644 --- a/Content.Server/Body/Surgery/BiologicalSurgeryData.cs +++ b/Content.Server/Body/Surgery/BiologicalSurgeryData.cs @@ -17,13 +17,13 @@ namespace Content.Server.Body.Surgery [UsedImplicitly] public class BiologicalSurgeryData : SurgeryData { - private readonly List _disconnectedOrgans = new List(); + private readonly List _disconnectedOrgans = new List(); private bool _skinOpened; private bool _skinRetracted; private bool _vesselsClamped; - public BiologicalSurgeryData(BodyPart parent) : base(parent) { } + public BiologicalSurgeryData(IBodyPart parent) : base(parent) { } protected override SurgeryAction? GetSurgeryStep(SurgeryType toolType) { @@ -118,12 +118,12 @@ namespace Content.Server.Body.Surgery return toReturn; } - public override bool CanInstallMechanism(Mechanism mechanism) + public override bool CanInstallMechanism(IMechanism mechanism) { return _skinOpened && _vesselsClamped && _skinRetracted; } - public override bool CanAttachBodyPart(BodyPart part) + public override bool CanAttachBodyPart(IBodyPart part) { return true; // TODO: if a bodypart is disconnected, you should have to do some surgery to allow another bodypart to be attached. @@ -131,7 +131,7 @@ namespace Content.Server.Body.Surgery private void OpenSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { - performer.PopupMessage(performer, Loc.GetString("Cut open the skin...")); + performer.PopupMessage(Loc.GetString("Cut open the skin...")); // TODO do_after: Delay _skinOpened = true; @@ -139,7 +139,7 @@ namespace Content.Server.Body.Surgery private void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { - performer.PopupMessage(performer, Loc.GetString("Clamp the vessels...")); + performer.PopupMessage(Loc.GetString("Clamp the vessels...")); // TODO do_after: Delay _vesselsClamped = true; @@ -147,7 +147,7 @@ namespace Content.Server.Body.Surgery private void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { - performer.PopupMessage(performer, Loc.GetString("Retract the skin...")); + performer.PopupMessage(Loc.GetString("Retract the skin...")); // TODO do_after: Delay _skinRetracted = true; @@ -155,7 +155,7 @@ namespace Content.Server.Body.Surgery private void CauterizeIncisionSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { - performer.PopupMessage(performer, Loc.GetString("Cauterize the incision...")); + performer.PopupMessage(Loc.GetString("Cauterize the incision...")); // TODO do_after: Delay _skinOpened = false; @@ -170,7 +170,7 @@ namespace Content.Server.Body.Surgery return; } - var toSend = new List(); + var toSend = new List(); foreach (var mechanism in Parent.Mechanisms) { if (!_disconnectedOrgans.Contains(mechanism)) @@ -185,7 +185,7 @@ namespace Content.Server.Body.Surgery } } - private void LoosenOrganSurgeryCallback(Mechanism target, IBodyPartContainer container, ISurgeon surgeon, + private void LoosenOrganSurgeryCallback(IMechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { if (target == null || !Parent.Mechanisms.Contains(target)) @@ -193,7 +193,7 @@ namespace Content.Server.Body.Surgery return; } - performer.PopupMessage(performer, Loc.GetString("Loosen the organ...")); + performer.PopupMessage(Loc.GetString("Loosen the organ...")); // TODO do_after: Delay _disconnectedOrgans.Add(target); @@ -216,8 +216,7 @@ namespace Content.Server.Body.Surgery } } - private void RemoveOrganSurgeryCallback(Mechanism target, IBodyPartContainer container, - ISurgeon surgeon, + private void RemoveOrganSurgeryCallback(IMechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer) { if (target == null || !Parent.Mechanisms.Contains(target)) @@ -225,7 +224,7 @@ namespace Content.Server.Body.Surgery return; } - performer.PopupMessage(performer, Loc.GetString("Remove the organ...")); + performer.PopupMessage(Loc.GetString("Remove the organ...")); // TODO do_after: Delay Parent.TryDropMechanism(performer, target, out _); @@ -241,7 +240,7 @@ namespace Content.Server.Body.Surgery } var bmTarget = (BodyManagerComponent) container; - performer.PopupMessage(performer, Loc.GetString("Saw off the limb!")); + performer.PopupMessage(Loc.GetString("Saw off the limb!")); // TODO do_after: Delay bmTarget.DisconnectBodyPart(Parent, true); diff --git a/Content.Server/Body/Surgery/ISurgeon.cs b/Content.Server/Body/Surgery/ISurgeon.cs index be2ed1135c..b15a2ae112 100644 --- a/Content.Server/Body/Surgery/ISurgeon.cs +++ b/Content.Server/Body/Surgery/ISurgeon.cs @@ -13,7 +13,7 @@ namespace Content.Server.Body.Surgery public interface ISurgeon { public delegate void MechanismRequestCallback( - Mechanism target, + IMechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer); @@ -29,6 +29,6 @@ namespace Content.Server.Body.Surgery /// This function is called in that scenario, and it is expected that you call the callback with one mechanism from the /// provided list. /// - public void RequestMechanism(IEnumerable options, MechanismRequestCallback callback); + public void RequestMechanism(IEnumerable options, MechanismRequestCallback callback); } } diff --git a/Content.Server/Body/Surgery/SurgeryData.cs b/Content.Server/Body/Surgery/SurgeryData.cs index a4274d0042..1a0eec454f 100644 --- a/Content.Server/Body/Surgery/SurgeryData.cs +++ b/Content.Server/Body/Surgery/SurgeryData.cs @@ -6,7 +6,7 @@ using Robust.Shared.Interfaces.GameObjects; namespace Content.Server.Body.Surgery { /// - /// This data class represents the state of a in regards to everything surgery related - + /// This data class represents the state of a in regards to everything surgery related - /// whether there's an incision on it, whether the bone is broken, etc. /// public abstract class SurgeryData @@ -14,40 +14,40 @@ namespace Content.Server.Body.Surgery protected delegate void SurgeryAction(IBodyPartContainer container, ISurgeon surgeon, IEntity performer); /// - /// The this surgeryData is attached to. + /// The this surgeryData is attached to. /// The class should not exist without a - /// that it represents, and will throw errors if it + /// that it represents, and will throw errors if it /// is null. /// - protected readonly BodyPart Parent; + protected readonly IBodyPart Parent; - protected SurgeryData(BodyPart parent) + protected SurgeryData(IBodyPart parent) { Parent = parent; } /// - /// The of the parent . + /// The of the parent . /// protected BodyPartType ParentType => Parent.PartType; /// - /// Returns the description of this current to be shown + /// Returns the description of this current to be shown /// upon observing the given entity. /// public abstract string GetDescription(IEntity target); /// - /// Returns whether a can be installed into the - /// this represents. + /// Returns whether a can be installed into the + /// this represents. /// - public abstract bool CanInstallMechanism(Mechanism mechanism); + public abstract bool CanInstallMechanism(IMechanism mechanism); /// - /// Returns whether the given can be connected to the - /// this represents. + /// Returns whether the given can be connected to the + /// this represents. /// - public abstract bool CanAttachBodyPart(BodyPart part); + public abstract bool CanAttachBodyPart(IBodyPart part); /// /// Gets the delegate corresponding to the surgery step using the given diff --git a/Content.Server/Chat/ChatCommands.cs b/Content.Server/Chat/ChatCommands.cs index c5f194d429..5359402df3 100644 --- a/Content.Server/Chat/ChatCommands.cs +++ b/Content.Server/Chat/ChatCommands.cs @@ -7,7 +7,9 @@ using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameObjects; using Content.Server.Observer; using Content.Server.Players; +using Content.Server.Utility; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Interfaces; using Robust.Server.Interfaces.Console; using Robust.Server.Interfaces.Player; using Robust.Shared.Enums; @@ -116,6 +118,8 @@ namespace Content.Server.Chat internal class SuicideCommand : IClientCommand { + [Dependency] private readonly IPlayerManager _playerManager = default!; + public string Command => "suicide"; public string Description => "Commits suicide"; @@ -133,12 +137,15 @@ namespace Content.Server.Chat damageableComponent.ChangeDamage(kind switch { SuicideKind.Blunt => DamageType.Blunt, + SuicideKind.Slash => DamageType.Slash, SuicideKind.Piercing => DamageType.Piercing, SuicideKind.Heat => DamageType.Heat, - SuicideKind.Disintegration => DamageType.Disintegration, - SuicideKind.Cellular => DamageType.Cellular, - SuicideKind.DNA => DamageType.DNA, + SuicideKind.Shock => DamageType.Shock, + SuicideKind.Cold => DamageType.Cold, + SuicideKind.Poison => DamageType.Poison, + SuicideKind.Radiation => DamageType.Radiation, SuicideKind.Asphyxiation => DamageType.Asphyxiation, + SuicideKind.Bloodloss => DamageType.Bloodloss, _ => DamageType.Blunt }, 500, @@ -185,8 +192,14 @@ namespace Content.Server.Chat } } } + // Default suicide, bite your tongue - chat.EntityMe(owner, Loc.GetString("is attempting to bite {0:their} own tongue, looks like {0:theyre} trying to commit suicide!", owner)); //TODO: theyre macro + var othersMessage = Loc.GetString("{0:theName} is attempting to bite {0:their} own tongue!", owner); + owner.PopupMessageOtherClients(othersMessage); + + var selfMessage = Loc.GetString("You attempt to bite your own tongue!"); + owner.PopupMessage(selfMessage); + dmgComponent.ChangeDamage(DamageType.Piercing, 500, true, owner); // Prevent the player from returning to the body. Yes, this is an ugly hack. diff --git a/Content.Server/Chat/ChatManager.cs b/Content.Server/Chat/ChatManager.cs index 266758207a..0b8a36840b 100644 --- a/Content.Server/Chat/ChatManager.cs +++ b/Content.Server/Chat/ChatManager.cs @@ -109,6 +109,9 @@ namespace Content.Server.Chat message = handler(source, message); } + // Ensure the first letter inside the message string is always a capital letter + message = message[0].ToString().ToUpper() + message.Remove(0,1); + var pos = source.Transform.GridPosition; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); diff --git a/Content.Server/GameObjects/Components/Access/IdCardConsoleComponent.cs b/Content.Server/GameObjects/Components/Access/IdCardConsoleComponent.cs index 1183e461b2..83fd5e207f 100644 --- a/Content.Server/GameObjects/Components/Access/IdCardConsoleComponent.cs +++ b/Content.Server/GameObjects/Components/Access/IdCardConsoleComponent.cs @@ -2,11 +2,11 @@ using System.Collections.Generic; using System.Linq; using Content.Server.GameObjects.Components.Items.Storage; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.Access; using Content.Shared.GameObjects.Components.Access; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.UserInterface; @@ -25,7 +25,6 @@ namespace Content.Server.GameObjects.Components.Access [ComponentReference(typeof(IActivate))] public class IdCardConsoleComponent : SharedIdCardConsoleComponent, IActivate { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; private ContainerSlot _privilegedIdContainer = default!; @@ -132,7 +131,7 @@ namespace Content.Server.GameObjects.Components.Access { if (!user.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, Loc.GetString("You have no hands.")); + Owner.PopupMessage(user, Loc.GetString("You have no hands.")); return; } @@ -161,7 +160,7 @@ namespace Content.Server.GameObjects.Components.Access if (!hands.Drop(hands.ActiveHand, container)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, Loc.GetString("You can't let go of the ID card!")); + Owner.PopupMessage(user, Loc.GetString("You can't let go of the ID card!")); return; } UpdateUserInterface(); diff --git a/Content.Server/GameObjects/Components/ActionBlocking/CuffableComponent.cs b/Content.Server/GameObjects/Components/ActionBlocking/CuffableComponent.cs index 3325fc2caa..79473ac91c 100644 --- a/Content.Server/GameObjects/Components/ActionBlocking/CuffableComponent.cs +++ b/Content.Server/GameObjects/Components/ActionBlocking/CuffableComponent.cs @@ -1,11 +1,9 @@ - -using Robust.Server.GameObjects; +using Robust.Server.GameObjects; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Content.Server.GameObjects.EntitySystems.DoAfter; using Robust.Shared.ViewVariables; @@ -22,6 +20,7 @@ using Content.Shared.GameObjects.Components.Mobs; using Robust.Shared.Maths; using System; using System.Collections.Generic; +using Content.Shared.Utility; using Content.Server.GameObjects.Components.GUI; namespace Content.Server.GameObjects.Components.ActionBlocking @@ -29,9 +28,6 @@ namespace Content.Server.GameObjects.Components.ActionBlocking [RegisterComponent] public class CuffableComponent : SharedCuffableComponent { - [Dependency] - private readonly ISharedNotifyManager _notifyManager; - /// /// How many of this entity's hands are currently cuffed. /// @@ -109,11 +105,7 @@ namespace Content.Server.GameObjects.Components.ActionBlocking return; } - if (!EntitySystem.Get().InRangeUnobstructed( - handcuff.Transform.MapPosition, - Owner.Transform.MapPosition, - _interactRange, - ignoredEnt: Owner)) + if (!handcuff.InRangeUnobstructed(Owner, _interactRange)) { Logger.Warning("Handcuffs being applied to player are obstructed or too far away! This should not happen!"); return; @@ -131,7 +123,7 @@ namespace Content.Server.GameObjects.Components.ActionBlocking /// /// Check the current amount of hands the owner has, and if there's less hands than active cuffs we remove some cuffs. /// - private void UpdateHandCount() + private void UpdateHandCount() { var dirty = false; var handCount = _hands.Hands.Count(); @@ -193,8 +185,14 @@ namespace Content.Server.GameObjects.Components.ActionBlocking { if (Owner.TryGetComponent(out ServerStatusEffectsComponent status)) { - status.ChangeStatusEffectIcon(StatusEffect.Cuffed, - CanStillInteract ? "/Textures/Interface/StatusEffects/Handcuffed/Uncuffed.png" : "/Textures/Interface/StatusEffects/Handcuffed/Handcuffed.png"); + if (CanStillInteract) + { + status.RemoveStatusEffect(StatusEffect.Cuffed); + } + else + { + status.ChangeStatusEffectIcon(StatusEffect.Cuffed, "/Textures/Interface/StatusEffects/Handcuffed/Handcuffed.png"); + } } } @@ -228,32 +226,23 @@ namespace Content.Server.GameObjects.Components.ActionBlocking if (!isOwner && !ActionBlockerSystem.CanInteract(user)) { - user.PopupMessage(user, Loc.GetString("You can't do that!")); + user.PopupMessage(Loc.GetString("You can't do that!")); return; } - if (!isOwner && - !EntitySystem.Get().InRangeUnobstructed( - user.Transform.MapPosition, - Owner.Transform.MapPosition, - _interactRange, - ignoredEnt: Owner)) + if (!isOwner && user.InRangeUnobstructed(Owner, _interactRange)) { - user.PopupMessage(user, Loc.GetString("You are too far away to remove the cuffs.")); + user.PopupMessage(Loc.GetString("You are too far away to remove the cuffs.")); return; } - if (!EntitySystem.Get().InRangeUnobstructed( - cuffsToRemove.Transform.MapPosition, - Owner.Transform.MapPosition, - _interactRange, - ignoredEnt: Owner)) + if (!cuffsToRemove.InRangeUnobstructed(Owner, _interactRange)) { Logger.Warning("Handcuffs being removed from player are obstructed or too far away! This should not happen!"); return; } - user.PopupMessage(user, Loc.GetString("You start removing the cuffs.")); + user.PopupMessage(Loc.GetString("You start removing the cuffs.")); var audio = EntitySystem.Get(); audio.PlayFromEntity(isOwner ? cuff.StartBreakoutSound : cuff.StartUncuffSound, Owner); @@ -298,29 +287,29 @@ namespace Content.Server.GameObjects.Components.ActionBlocking if (CuffedHandCount == 0) { - _notifyManager.PopupMessage(user, user, Loc.GetString("You successfully remove the cuffs.")); + user.PopupMessage(Loc.GetString("You successfully remove the cuffs.")); if (!isOwner) { - _notifyManager.PopupMessage(user, Owner, Loc.GetString("{0:theName} uncuffs your hands.", user)); + user.PopupMessage(Owner, Loc.GetString("{0:theName} uncuffs your hands.", user)); } } else { if (!isOwner) { - _notifyManager.PopupMessage(user, user, Loc.GetString("You successfully remove the cuffs. {0} of {1:theName}'s hands remain cuffed.", CuffedHandCount, user)); - _notifyManager.PopupMessage(user, Owner, Loc.GetString("{0:theName} removes your cuffs. {1} of your hands remain cuffed.", user, CuffedHandCount)); + user.PopupMessage(Loc.GetString("You successfully remove the cuffs. {0} of {1:theName}'s hands remain cuffed.", CuffedHandCount, user)); + user.PopupMessage(Owner, Loc.GetString("{0:theName} removes your cuffs. {1} of your hands remain cuffed.", user, CuffedHandCount)); } else { - _notifyManager.PopupMessage(user, user, Loc.GetString("You successfully remove the cuffs. {0} of your hands remain cuffed.", CuffedHandCount)); + user.PopupMessage(Loc.GetString("You successfully remove the cuffs. {0} of your hands remain cuffed.", CuffedHandCount)); } } } else { - _notifyManager.PopupMessage(user, user, Loc.GetString("You fail to remove the cuffs.")); + user.PopupMessage(Loc.GetString("You fail to remove the cuffs.")); } return; diff --git a/Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs b/Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs index ca05cf37dc..8b6f64d098 100644 --- a/Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs +++ b/Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs @@ -16,15 +16,13 @@ using Content.Shared.GameObjects.Components.ActionBlocking; using Content.Server.GameObjects.Components.Mobs; using Robust.Shared.Maths; using System; +using Content.Shared.Utility; namespace Content.Server.GameObjects.Components.ActionBlocking { [RegisterComponent] public class HandcuffComponent : SharedHandcuffComponent, IAfterInteract { - [Dependency] - private readonly ISharedNotifyManager _notifyManager; - /// /// The time it takes to apply a to an entity. /// @@ -115,7 +113,7 @@ namespace Content.Server.GameObjects.Components.ActionBlocking private float _interactRange; private DoAfterSystem _doAfterSystem; private AudioSystem _audioSystem; - + public override void Initialize() { base.Initialize(); @@ -160,43 +158,39 @@ namespace Content.Server.GameObjects.Components.ActionBlocking if (eventArgs.Target == eventArgs.User) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("You can't cuff yourself!")); + eventArgs.User.PopupMessage(Loc.GetString("You can't cuff yourself!")); return; } if (Broken) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("The cuffs are broken!")); + eventArgs.User.PopupMessage(Loc.GetString("The cuffs are broken!")); return; } if (!eventArgs.Target.TryGetComponent(out var hands)) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("{0:theName} has no hands!", eventArgs.Target)); + eventArgs.User.PopupMessage(Loc.GetString("{0:theName} has no hands!", eventArgs.Target)); return; } if (cuffed.CuffedHandCount == hands.Count) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("{0:theName} has no free hands to handcuff!", eventArgs.Target)); + eventArgs.User.PopupMessage(Loc.GetString("{0:theName} has no free hands to handcuff!", eventArgs.Target)); return; } - if (!EntitySystem.Get().InRangeUnobstructed( - eventArgs.User.Transform.MapPosition, - eventArgs.Target.Transform.MapPosition, - _interactRange, - ignoredEnt: Owner)) + if (!eventArgs.InRangeUnobstructed(_interactRange, ignoreInsideBlocker: true)) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("You are too far away to use the cuffs!")); + eventArgs.User.PopupMessage(Loc.GetString("You are too far away to use the cuffs!")); return; } - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("You start cuffing {0:theName}.", eventArgs.Target)); - _notifyManager.PopupMessage(eventArgs.User, eventArgs.Target, Loc.GetString("{0:theName} starts cuffing you!", eventArgs.User)); + eventArgs.User.PopupMessage(Loc.GetString("You start cuffing {0:theName}.", eventArgs.Target)); + eventArgs.User.PopupMessage(eventArgs.Target, Loc.GetString("{0:theName} starts cuffing you!", eventArgs.User)); _audioSystem.PlayFromEntity(StartCuffSound, Owner); - TryUpdateCuff(eventArgs.User, eventArgs.Target, cuffed); + TryUpdateCuff(eventArgs.User, eventArgs.Target, cuffed); } /// @@ -225,8 +219,8 @@ namespace Content.Server.GameObjects.Components.ActionBlocking if (result != DoAfterStatus.Cancelled) { _audioSystem.PlayFromEntity(EndCuffSound, Owner); - _notifyManager.PopupMessage(user, user, Loc.GetString("You successfully cuff {0:theName}.", target)); - _notifyManager.PopupMessage(target, target, Loc.GetString("You have been cuffed by {0:theName}!", user)); + user.PopupMessage(Loc.GetString("You successfully cuff {0:theName}.", target)); + target.PopupMessage(Loc.GetString("You have been cuffed by {0:theName}!", user)); if (user.TryGetComponent(out var hands)) { @@ -240,8 +234,8 @@ namespace Content.Server.GameObjects.Components.ActionBlocking } else { - user.PopupMessage(user, Loc.GetString("You were interrupted while cuffing {0:theName}!", target)); - target.PopupMessage(target, Loc.GetString("You interrupt {0:theName} while they are cuffing you!", user)); + user.PopupMessage(Loc.GetString("You were interrupted while cuffing {0:theName}!", target)); + target.PopupMessage(Loc.GetString("You interrupt {0:theName} while they are cuffing you!", user)); } } } diff --git a/Content.Server/GameObjects/Components/Atmos/GasAnalyzerComponent.cs b/Content.Server/GameObjects/Components/Atmos/GasAnalyzerComponent.cs index 9c4c0c44d9..58ba7c67eb 100644 --- a/Content.Server/GameObjects/Components/Atmos/GasAnalyzerComponent.cs +++ b/Content.Server/GameObjects/Components/Atmos/GasAnalyzerComponent.cs @@ -1,12 +1,12 @@ #nullable enable using System.Collections.Generic; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.Atmos; using Content.Shared.GameObjects.Components; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.Interfaces.GameObjects; @@ -24,7 +24,6 @@ namespace Content.Server.GameObjects.Components.Atmos [RegisterComponent] public class GasAnalyzerComponent : SharedGasAnalyzerComponent, IAfterInteract, IDropped, IUse { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; private GasAnalyzerDanger _pressureDanger; @@ -207,17 +206,14 @@ namespace Content.Server.GameObjects.Components.Atmos if (!player.TryGetComponent(out IHandsComponent? handsComponent)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(player, Loc.GetString("You have no hands.")); return; } var activeHandEntity = handsComponent.GetActiveHand?.Owner; if (activeHandEntity == null || !activeHandEntity.TryGetComponent(out GasAnalyzerComponent? gasAnalyzer)) { - _notifyManager.PopupMessage(serverMsg.Session.AttachedEntity, - serverMsg.Session.AttachedEntity, - Loc.GetString("You need a Gas Analyzer in your hand!")); + serverMsg.Session.AttachedEntity.PopupMessage(Loc.GetString("You need a Gas Analyzer in your hand!")); return; } @@ -231,7 +227,7 @@ namespace Content.Server.GameObjects.Components.Atmos { if (!eventArgs.CanReach) { - _notifyManager.PopupMessage(eventArgs.User, eventArgs.User, Loc.GetString("You can't reach there!")); + eventArgs.User.PopupMessage(Loc.GetString("You can't reach there!")); return; } diff --git a/Content.Server/GameObjects/Components/Atmos/GridAtmosphereComponent.cs b/Content.Server/GameObjects/Components/Atmos/GridAtmosphereComponent.cs index 0b94087cd9..4a70cee6ab 100644 --- a/Content.Server/GameObjects/Components/Atmos/GridAtmosphereComponent.cs +++ b/Content.Server/GameObjects/Components/Atmos/GridAtmosphereComponent.cs @@ -14,10 +14,7 @@ using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.Map; using Robust.Shared.GameObjects.Components.Transform; using Robust.Shared.Interfaces.Map; -using Robust.Shared.Interfaces.Timing; -using Robust.Shared.IoC; using Robust.Shared.Map; -using Robust.Shared.Maths; using Robust.Shared.Serialization; using Robust.Shared.Timing; using Robust.Shared.ViewVariables; @@ -32,6 +29,8 @@ namespace Content.Server.GameObjects.Components.Atmos public class GridAtmosphereComponent : Component, IGridAtmosphereComponent { [Robust.Shared.IoC.Dependency] private IMapManager _mapManager = default!; + [Robust.Shared.IoC.Dependency] private ITileDefinitionManager _tileDefinitionManager = default!; + [Robust.Shared.IoC.Dependency] private IServerEntityManager _serverEntityManager = default!; /// /// Check current execution time every n instances processed. @@ -70,7 +69,7 @@ namespace Content.Server.GameObjects.Components.Atmos private double _excitedGroupLastProcess; [ViewVariables] - private readonly Dictionary _tiles = new Dictionary(1000); + protected readonly Dictionary Tiles = new Dictionary(1000); [ViewVariables] private readonly HashSet _activeTiles = new HashSet(1000); @@ -154,23 +153,13 @@ namespace Content.Server.GameObjects.Components.Atmos } /// - public void PryTile(MapIndices indices) + public virtual void PryTile(MapIndices indices) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGridComponent)) return; if (IsSpace(indices) || IsAirBlocked(indices)) return; var mapGrid = mapGridComponent.Grid; - var tile = mapGrid.GetTileRef(indices).Tile; - - var tileDefinitionManager = IoCManager.Resolve(); - var tileDef = (ContentTileDefinition)tileDefinitionManager[tile.TypeId]; - - var underplating = tileDefinitionManager["underplating"]; - mapGrid.SetTile(indices, new Tile(underplating.TileId)); - - //Actually spawn the relevant tile item at the right position and give it some offset to the corner. - var tileItem = IoCManager.Resolve().SpawnEntity(tileDef.ItemDropPrototypeName, new GridCoordinates(indices.X, indices.Y, mapGrid)); - tileItem.Transform.WorldPosition += (0.2f, 0.2f); + indices.PryTile(mapGrid.Index, _mapManager, _tileDefinitionManager, _serverEntityManager); } public override void Initialize() @@ -185,17 +174,17 @@ namespace Content.Server.GameObjects.Components.Atmos RepopulateTiles(); } - public void RepopulateTiles() + public virtual void RepopulateTiles() { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; foreach (var tile in mapGrid.Grid.GetAllTiles()) { - if(!_tiles.ContainsKey(tile.GridIndices)) - _tiles.Add(tile.GridIndices, new TileAtmosphere(this, tile.GridIndex, tile.GridIndices, new GasMixture(GetVolumeForCells(1)){Temperature = Atmospherics.T20C})); + if(!Tiles.ContainsKey(tile.GridIndices)) + Tiles.Add(tile.GridIndices, new TileAtmosphere(this, tile.GridIndex, tile.GridIndices, new GasMixture(GetVolumeForCells(1)){Temperature = Atmospherics.T20C})); } - foreach (var (_, tile) in _tiles.ToArray()) + foreach (var (_, tile) in Tiles.ToArray()) { tile.UpdateAdjacent(); tile.UpdateVisuals(); @@ -203,12 +192,12 @@ namespace Content.Server.GameObjects.Components.Atmos } /// - public void Invalidate(MapIndices indices) + public virtual void Invalidate(MapIndices indices) { _invalidatedCoords.Add(indices); } - private void Revalidate() + protected virtual void Revalidate() { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; @@ -219,14 +208,14 @@ namespace Content.Server.GameObjects.Components.Atmos if (tile == null) { tile = new TileAtmosphere(this, mapGrid.Grid.Index, indices, new GasMixture(GetVolumeForCells(1)){Temperature = Atmospherics.T20C}); - _tiles[indices] = tile; + Tiles[indices] = tile; } if (IsSpace(indices)) { tile.Air = new GasMixture(GetVolumeForCells(1)); tile.Air.MarkImmutable(); - _tiles[indices] = tile; + Tiles[indices] = tile; } else if (IsAirBlocked(indices)) { @@ -271,18 +260,18 @@ namespace Content.Server.GameObjects.Components.Atmos } /// - public void FixVacuum(MapIndices indices) + public virtual void FixVacuum(MapIndices indices) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; var tile = GetTile(indices); if (tile?.GridIndex != mapGrid.Grid.Index) return; var adjacent = GetAdjacentTiles(indices); tile.Air = new GasMixture(GetVolumeForCells(1)){Temperature = Atmospherics.T20C}; - _tiles[indices] = tile; + Tiles[indices] = tile; var ratio = 1f / adjacent.Count; - foreach (var (direction, adj) in adjacent) + foreach (var (_, adj) in adjacent) { var mix = adj.Air.RemoveRatio(ratio); tile.Air.Merge(mix); @@ -292,17 +281,17 @@ namespace Content.Server.GameObjects.Components.Atmos /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void AddActiveTile(TileAtmosphere? tile) + public virtual void AddActiveTile(TileAtmosphere? tile) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; - if (tile?.GridIndex != mapGrid.Grid.Index || tile?.Air == null) return; + if (tile?.GridIndex != mapGrid.Grid.Index) return; tile.Excited = true; _activeTiles.Add(tile); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void RemoveActiveTile(TileAtmosphere? tile) + public virtual void RemoveActiveTile(TileAtmosphere? tile) { if (tile == null) return; _activeTiles.Remove(tile); @@ -312,7 +301,7 @@ namespace Content.Server.GameObjects.Components.Atmos /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void AddHotspotTile(TileAtmosphere? tile) + public virtual void AddHotspotTile(TileAtmosphere? tile) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; if (tile?.GridIndex != mapGrid.Grid.Index || tile?.Air == null) return; @@ -321,20 +310,20 @@ namespace Content.Server.GameObjects.Components.Atmos /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void RemoveHotspotTile(TileAtmosphere? tile) + public virtual void RemoveHotspotTile(TileAtmosphere? tile) { if (tile == null) return; _hotspotTiles.Remove(tile); } - public void AddSuperconductivityTile(TileAtmosphere? tile) + public virtual void AddSuperconductivityTile(TileAtmosphere? tile) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; if (tile?.GridIndex != mapGrid.Grid.Index) return; _superconductivityTiles.Add(tile); } - public void RemoveSuperconductivityTile(TileAtmosphere? tile) + public virtual void RemoveSuperconductivityTile(TileAtmosphere? tile) { if (tile == null) return; _superconductivityTiles.Remove(tile); @@ -342,7 +331,7 @@ namespace Content.Server.GameObjects.Components.Atmos /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void AddHighPressureDelta(TileAtmosphere? tile) + public virtual void AddHighPressureDelta(TileAtmosphere? tile) { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; if (tile?.GridIndex != mapGrid.Grid.Index) return; @@ -351,21 +340,21 @@ namespace Content.Server.GameObjects.Components.Atmos /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool HasHighPressureDelta(TileAtmosphere tile) + public virtual bool HasHighPressureDelta(TileAtmosphere tile) { return _highPressureDelta.Contains(tile); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void AddExcitedGroup(ExcitedGroup excitedGroup) + public virtual void AddExcitedGroup(ExcitedGroup excitedGroup) { _excitedGroups.Add(excitedGroup); } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void RemoveExcitedGroup(ExcitedGroup excitedGroup) + public virtual void RemoveExcitedGroup(ExcitedGroup excitedGroup) { _excitedGroups.Remove(excitedGroup); } @@ -401,7 +390,7 @@ namespace Content.Server.GameObjects.Components.Atmos { if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return null; - if (_tiles.TryGetValue(indices, out var tile)) return tile; + if (Tiles.TryGetValue(indices, out var tile)) return tile; // We don't have that tile! if (IsSpace(indices) && createSpace) @@ -454,7 +443,7 @@ namespace Content.Server.GameObjects.Components.Atmos } /// - public void Update(float frameTime) + public virtual void Update(float frameTime) { _timer += frameTime; @@ -554,7 +543,7 @@ namespace Content.Server.GameObjects.Components.Atmos UpdateCounter++; } - public bool ProcessTileEqualize(bool resumed = false) + public virtual bool ProcessTileEqualize(bool resumed = false) { _stopwatch.Restart(); @@ -581,7 +570,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - public bool ProcessActiveTiles(bool resumed = false) + public virtual bool ProcessActiveTiles(bool resumed = false) { _stopwatch.Restart(); @@ -608,7 +597,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - public bool ProcessExcitedGroups(bool resumed = false) + public virtual bool ProcessExcitedGroups(bool resumed = false) { _stopwatch.Restart(); @@ -642,7 +631,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - public bool ProcessHighPressureDelta(bool resumed = false) + public virtual bool ProcessHighPressureDelta(bool resumed = false) { _stopwatch.Restart(); @@ -672,7 +661,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - private bool ProcessHotspots(bool resumed = false) + protected virtual bool ProcessHotspots(bool resumed = false) { _stopwatch.Restart(); @@ -699,7 +688,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - private bool ProcessSuperconductivity(bool resumed = false) + protected virtual bool ProcessSuperconductivity(bool resumed = false) { _stopwatch.Restart(); @@ -726,7 +715,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - private bool ProcessPipeNets(bool resumed = false) + protected virtual bool ProcessPipeNets(bool resumed = false) { _stopwatch.Restart(); @@ -753,7 +742,7 @@ namespace Content.Server.GameObjects.Components.Atmos return true; } - private bool ProcessPipeNetDevices(bool resumed = false) + protected virtual bool ProcessPipeNetDevices(bool resumed = false) { _stopwatch.Restart(); @@ -761,7 +750,7 @@ namespace Content.Server.GameObjects.Components.Atmos _currentRunPipeNetDevice = new Queue(_pipeNetDevices); var number = 0; - while (_currentRunPipeNet.Count > 0) + while (_currentRunPipeNetDevice.Count > 0) { var device = _currentRunPipeNetDevice.Dequeue(); device.Update(); @@ -810,11 +799,11 @@ namespace Content.Server.GameObjects.Components.Atmos !serializer.TryReadDataField("tiles", out Dictionary? tiles)) return; - _tiles.Clear(); + Tiles.Clear(); foreach (var (indices, mix) in tiles!) { - _tiles.Add(indices, new TileAtmosphere(this, gridId, indices, (GasMixture)uniqueMixes![mix].Clone())); + Tiles.Add(indices, new TileAtmosphere(this, gridId, indices, (GasMixture)uniqueMixes![mix].Clone())); Invalidate(indices); } } @@ -823,7 +812,7 @@ namespace Content.Server.GameObjects.Components.Atmos var uniqueMixes = new List(); var uniqueMixHash = new Dictionary(); var tiles = new Dictionary(); - foreach (var (indices, tile) in _tiles) + foreach (var (indices, tile) in Tiles) { if (tile.Air == null) continue; @@ -846,7 +835,7 @@ namespace Content.Server.GameObjects.Components.Atmos public IEnumerator GetEnumerator() { - return _tiles.Values.GetEnumerator(); + return Tiles.Values.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() @@ -855,7 +844,7 @@ namespace Content.Server.GameObjects.Components.Atmos } /// - public void BurnTile(MapIndices gridIndices) + public virtual void BurnTile(MapIndices gridIndices) { // TODO ATMOS } diff --git a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/BasePumpComponent.cs b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/BasePumpComponent.cs index 0099549e84..24a44ae7d8 100644 --- a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/BasePumpComponent.cs +++ b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/BasePumpComponent.cs @@ -1,6 +1,9 @@ using Content.Server.Atmos; using Content.Server.GameObjects.Components.NodeContainer; using Content.Server.GameObjects.Components.NodeContainer.Nodes; +using Content.Shared.GameObjects.Components.Atmos; +using Content.Shared.GameObjects.Atmos; +using Robust.Server.GameObjects; using Robust.Shared.Log; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -13,6 +16,21 @@ namespace Content.Server.GameObjects.Components.Atmos.Piping /// public abstract class BasePumpComponent : PipeNetDeviceComponent { + /// + /// If the pump is currently pumping. + /// + [ViewVariables(VVAccess.ReadWrite)] + public bool PumpEnabled + { + get => _pumpEnabled; + set + { + _pumpEnabled = value; + UpdateAppearance(); + } + } + private bool _pumpEnabled = true; + /// /// Needs to be same as that of a on this entity. /// @@ -31,6 +49,8 @@ namespace Content.Server.GameObjects.Components.Atmos.Piping [ViewVariables] private PipeNode _outletPipe; + private AppearanceComponent _appearance; + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); @@ -56,13 +76,23 @@ namespace Content.Server.GameObjects.Components.Atmos.Piping Logger.Error($"{typeof(BasePumpComponent)} on entity {Owner.Uid} could not find compatible {nameof(PipeNode)}s on its {nameof(NodeContainerComponent)}."); return; } + Owner.TryGetComponent(out _appearance); + UpdateAppearance(); } public override void Update() { + if (!PumpEnabled) + return; + PumpGas(_inletPipe.Air, _outletPipe.Air); } protected abstract void PumpGas(GasMixture inletGas, GasMixture outletGas); + + private void UpdateAppearance() + { + _appearance?.SetData(PumpVisuals.VisualState, new PumpVisualState(_inletDirection, _outletDirection, _inletPipe.ConduitLayer, _outletPipe.ConduitLayer, PumpEnabled)); + } } } diff --git a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/DebugPumpComponent.cs b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/DebugPumpComponent.cs deleted file mode 100644 index dfddf21cab..0000000000 --- a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/DebugPumpComponent.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Content.Server.Atmos; -using Robust.Shared.GameObjects; - -namespace Content.Server.GameObjects.Components.Atmos.Piping -{ - /// - /// Placeholder example of pump functionality. - /// - [RegisterComponent] - [ComponentReference(typeof(BasePumpComponent))] - public class DebugPumpComponent : BasePumpComponent - { - public override string Name => "DebugPump"; - - protected override void PumpGas(GasMixture inletGas, GasMixture outletGas) - { - outletGas.Merge(inletGas); - inletGas.Clear(); - } - } -} diff --git a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/PressurePumpComponent.cs b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/PressurePumpComponent.cs new file mode 100644 index 0000000000..53ee049b00 --- /dev/null +++ b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/PressurePumpComponent.cs @@ -0,0 +1,65 @@ +using Content.Server.Atmos; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using System; + +namespace Content.Server.GameObjects.Components.Atmos.Piping.Pumps +{ + [RegisterComponent] + [ComponentReference(typeof(BasePumpComponent))] + public class PressurePumpComponent : BasePumpComponent + { + public override string Name => "PressurePump"; + + /// + /// The pressure this pump will try to bring its oulet too. + /// + [ViewVariables(VVAccess.ReadWrite)] + public int PressurePumpTarget + { + get => _pressurePumpTarget; + set => _pressurePumpTarget = Math.Clamp(value, 0, MaxPressurePumpTarget); + } + private int _pressurePumpTarget; + + /// + /// Max value can be set to. + /// + [ViewVariables(VVAccess.ReadWrite)] + public int MaxPressurePumpTarget + { + get => _maxPressurePumpTarget; + set => Math.Max(value, 0); + } + private int _maxPressurePumpTarget; + + /// + /// Every upate, this pump will only increase the outlet pressure by this fraction of the amount needed to reach the . + /// + [ViewVariables(VVAccess.ReadWrite)] + public float TransferRatio + { + get => _transferRatio; + set => _transferRatio = Math.Clamp(value, 0, 1); + } + private float _transferRatio; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref _pressurePumpTarget, "startingPressurePumpTarget", 0); + serializer.DataField(ref _maxPressurePumpTarget, "maxPressurePumpTarget", 100); + serializer.DataField(ref _transferRatio, "transferRatio", 0.5f); + } + + protected override void PumpGas(GasMixture inletGas, GasMixture outletGas) + { + var goalDiff = PressurePumpTarget - outletGas.Pressure; + var realGoalPressureDiff = goalDiff * TransferRatio; + var realTargetPressure = outletGas.Pressure + realGoalPressureDiff; + var realCappedTargetPressure = Math.Max(realTargetPressure, outletGas.Pressure); //no lowering the outlet's pressure + inletGas.PumpGasTo(outletGas, realCappedTargetPressure); + } + } +} diff --git a/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/VolumePumpComponent.cs b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/VolumePumpComponent.cs new file mode 100644 index 0000000000..1787cce772 --- /dev/null +++ b/Content.Server/GameObjects/Components/Atmos/Piping/Pumps/VolumePumpComponent.cs @@ -0,0 +1,46 @@ +using Content.Server.Atmos; +using Content.Shared.Atmos; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using System; +using System.Diagnostics; + +namespace Content.Server.GameObjects.Components.Atmos.Piping.Pumps +{ + [RegisterComponent] + [ComponentReference(typeof(BasePumpComponent))] + public class VolumePumpComponent : BasePumpComponent + { + [ViewVariables(VVAccess.ReadWrite)] + public int VolumePumpRate + { + get => _volumePumpRate; + set => _volumePumpRate = Math.Clamp(value, 0, MaxVolumePumpRate); + } + private int _volumePumpRate; + + [ViewVariables(VVAccess.ReadWrite)] + public int MaxVolumePumpRate + { + get => _maxVolumePumpRate; + set => Math.Max(value, 0); + } + private int _maxVolumePumpRate; + + public override string Name => "VolumePump"; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref _volumePumpRate, "startingVolumePumpRate", 0); + serializer.DataField(ref _maxVolumePumpRate, "maxVolumePumpRate", 100); + } + + protected override void PumpGas(GasMixture inletGas, GasMixture outletGas) + { + var volumeRatio = Math.Clamp(VolumePumpRate / inletGas.Volume, 0, 1); + outletGas.Merge(inletGas.RemoveRatio(volumeRatio)); + } + } +} diff --git a/Content.Server/GameObjects/Components/Atmos/UnsimulatedGridAtmosphereComponent.cs b/Content.Server/GameObjects/Components/Atmos/UnsimulatedGridAtmosphereComponent.cs new file mode 100644 index 0000000000..b421ff9800 --- /dev/null +++ b/Content.Server/GameObjects/Components/Atmos/UnsimulatedGridAtmosphereComponent.cs @@ -0,0 +1,103 @@ +#nullable enable +using System; +using Content.Server.Atmos; +using Content.Shared.Atmos; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.Map; +using Robust.Shared.Map; + +namespace Content.Server.GameObjects.Components.Atmos +{ + [RegisterComponent] + [ComponentReference(typeof(IGridAtmosphereComponent))] + [ComponentReference(typeof(GridAtmosphereComponent))] + [Serializable] + public class UnsimulatedGridAtmosphereComponent : GridAtmosphereComponent, IGridAtmosphereComponent + { + public override string Name => "UnsimulatedGridAtmosphere"; + + public override void PryTile(MapIndices indices) { } + + public override void RepopulateTiles() + { + if (!Owner.TryGetComponent(out IMapGridComponent? mapGrid)) return; + + foreach (var tile in mapGrid.Grid.GetAllTiles()) + { + if(!Tiles.ContainsKey(tile.GridIndices)) + Tiles.Add(tile.GridIndices, new TileAtmosphere(this, tile.GridIndex, tile.GridIndices, new GasMixture(GetVolumeForCells(1)){Temperature = Atmospherics.T20C})); + } + } + + public override void Invalidate(MapIndices indices) { } + + protected override void Revalidate() { } + + public override void FixVacuum(MapIndices indices) { } + + public override void AddActiveTile(TileAtmosphere? tile) { } + + public override void RemoveActiveTile(TileAtmosphere? tile) { } + + public override void AddHotspotTile(TileAtmosphere? tile) { } + + public override void RemoveHotspotTile(TileAtmosphere? tile) { } + + public override void AddSuperconductivityTile(TileAtmosphere? tile) { } + + public override void RemoveSuperconductivityTile(TileAtmosphere? tile) { } + + public override void AddHighPressureDelta(TileAtmosphere? tile) { } + + public override bool HasHighPressureDelta(TileAtmosphere tile) + { + return false; + } + + public override void AddExcitedGroup(ExcitedGroup excitedGroup) { } + + public override void RemoveExcitedGroup(ExcitedGroup excitedGroup) { } + + public override void Update(float frameTime) { } + + public override bool ProcessTileEqualize(bool resumed = false) + { + return false; + } + + public override bool ProcessActiveTiles(bool resumed = false) + { + return false; + } + + public override bool ProcessExcitedGroups(bool resumed = false) + { + return false; + } + + public override bool ProcessHighPressureDelta(bool resumed = false) + { + return false; + } + + protected override bool ProcessHotspots(bool resumed = false) + { + return false; + } + + protected override bool ProcessSuperconductivity(bool resumed = false) + { + return false; + } + + protected override bool ProcessPipeNets(bool resumed = false) + { + return false; + } + + protected override bool ProcessPipeNetDevices(bool resumed = false) + { + return false; + } + } +} diff --git a/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs b/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs index 3c65da2fd1..29329a75dd 100644 --- a/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs +++ b/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs @@ -8,7 +8,6 @@ using Content.Server.Body.Network; using Content.Server.GameObjects.Components.Metabolism; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces.GameObjects.Components.Interaction; -using Content.Server.Mobs; using Content.Server.Observer; using Content.Shared.Body.Part; using Content.Shared.Body.Part.Properties.Movement; @@ -20,6 +19,7 @@ using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Movement; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Reflection; using Robust.Shared.IoC; @@ -33,13 +33,14 @@ using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Body { /// - /// Component representing a collection of + /// Component representing a collection of /// attached to each other. /// [RegisterComponent] [ComponentReference(typeof(IDamageableComponent))] + [ComponentReference(typeof(ISharedBodyManagerComponent))] [ComponentReference(typeof(IBodyManagerComponent))] - public class BodyManagerComponent : SharedBodyManagerComponent, IBodyPartContainer, IRelayMoveInput + public class BodyManagerComponent : SharedBodyManagerComponent, IBodyPartContainer, IRelayMoveInput, IBodyManagerComponent { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IBodyNetworkFactory _bodyNetworkFactory = default!; @@ -47,38 +48,28 @@ namespace Content.Server.GameObjects.Components.Body [ViewVariables] private string _presetName = default!; - private readonly Dictionary _parts = new Dictionary(); + private readonly Dictionary _parts = new Dictionary(); [ViewVariables] private readonly Dictionary _networks = new Dictionary(); /// - /// All with + /// All with /// that are currently affecting move speed, mapped to how big that leg /// they're on is. /// [ViewVariables] - private readonly Dictionary _activeLegs = new Dictionary(); + private readonly Dictionary _activeLegs = new Dictionary(); + + [ViewVariables] public BodyTemplate Template { get; private set; } = default!; + + [ViewVariables] public BodyPreset Preset { get; private set; } = default!; /// - /// The that this - /// is adhering to. - /// - [ViewVariables] - public BodyTemplate Template { get; private set; } = default!; - - /// - /// The that this - /// is adhering to. - /// - [ViewVariables] - public BodyPreset Preset { get; private set; } = default!; - - /// - /// Maps slot name to the + /// Maps slot name to the /// object filling it (if there is one). /// [ViewVariables] - public IReadOnlyDictionary Parts => _parts; + public IReadOnlyDictionary Parts => _parts; /// /// List of all slots in this body, taken from the keys of @@ -170,7 +161,7 @@ namespace Content.Server.GameObjects.Components.Body // Add a new BodyPart with the BodyPartPrototype as a baseline to our // BodyComponent. var addedPart = new BodyPart(newPartData); - AddBodyPart(addedPart, slotName); + TryAddPart(slotName, addedPart); } OnBodyChanged(); // TODO: Duplicate code @@ -179,8 +170,8 @@ namespace Content.Server.GameObjects.Components.Body /// /// Changes the current to the given /// . - /// Attempts to keep previous if there is a slot for - /// them in both . + /// Attempts to keep previous if there is a + /// slot for them in both . /// public void ChangeBodyTemplate(BodyTemplatePrototype newTemplate) { @@ -279,25 +270,20 @@ namespace Content.Server.GameObjects.Components.Body foreach (var (key, value) in _activeLegs) { - if (key.TryGetProperty(out LegProperty legProperty)) + if (key.TryGetProperty(out LegProperty? leg)) { // Speed of a leg = base speed * (1+log1024(leg length)) - speedSum += legProperty.Speed * (1 + (float) Math.Log(value, 1024.0)); + speedSum += leg.Speed * (1 + (float) Math.Log(value, 1024.0)); } } if (speedSum <= 0.001f || _activeLegs.Count <= 0) { - // Case: no way of moving. Fall down. - StandingStateHelper.Down(Owner); playerMover.BaseWalkSpeed = 0.8f; playerMover.BaseSprintSpeed = 2.0f; } else { - // Case: have at least one leg. Set move speed. - StandingStateHelper.Standing(Owner); - // Extra legs stack diminishingly. // Final speed = speed sum/(leg count-log4(leg count)) playerMover.BaseWalkSpeed = @@ -320,11 +306,11 @@ namespace Content.Server.GameObjects.Components.Body /// /// Recursively searches for if is connected to /// the center. Not efficient (O(n^2)), but most bodies don't have a ton - /// of s. + /// of s. /// /// The body part to find the center for. /// True if it is connected to the center, false otherwise. - private bool ConnectedToCenterPart(BodyPart target) + private bool ConnectedToCenterPart(IBodyPart target) { var searchedSlots = new List(); @@ -334,9 +320,7 @@ namespace Content.Server.GameObjects.Components.Body private bool ConnectedToCenterPartRecursion(ICollection searchedSlots, string slotName) { - TryGetBodyPart(slotName, out var part); - - if (part == null) + if (!TryGetBodyPart(slotName, out var part)) { return false; } @@ -366,14 +350,14 @@ namespace Content.Server.GameObjects.Components.Body } /// - /// Finds the central , if any, of this body based on + /// Finds the central , if any, of this body based on /// the . For humans, this is the torso. /// /// The if one exists, null otherwise. - private BodyPart? GetCenterBodyPart() + private IBodyPart? GetCenterBodyPart() { Parts.TryGetValue(Template.CenterSlot, out var center); - return center!; + return center; } /// @@ -386,29 +370,31 @@ namespace Content.Server.GameObjects.Components.Body } /// - /// Finds the in the given if + /// Finds the in the given if /// one exists. /// /// The slot to search in. /// The body part in that slot, if any. /// True if found, false otherwise. - private bool TryGetBodyPart(string slotName, [NotNullWhen(true)] out BodyPart result) + private bool TryGetBodyPart(string slotName, [NotNullWhen(true)] out IBodyPart? result) { return Parts.TryGetValue(slotName, out result!); } /// - /// Finds the slotName that the given resides in. + /// Finds the slotName that the given resides in. /// - /// The to find the slot for. + /// The to find the slot for. /// The slot found, if any. /// True if a slot was found, false otherwise - private bool TryGetSlotName(BodyPart part, [NotNullWhen(true)] out string result) + private bool TryGetSlotName(IBodyPart part, [NotNullWhen(true)] out string result) { // We enforce that there is only one of each value in the dictionary, // so we can iterate through the dictionary values to get the key from there. - result = Parts.FirstOrDefault(x => x.Value == part).Key; - return result != null; + var pair = Parts.FirstOrDefault(x => x.Value == part); + result = pair.Key; + + return !pair.Equals(default); } /// @@ -447,7 +433,7 @@ namespace Content.Server.GameObjects.Components.Body /// True if successful, false if there was an error or no connected /// s were found. /// - public bool TryGetBodyPartConnections(string slotName, [NotNullWhen(true)] out List result) + public bool TryGetBodyPartConnections(string slotName, [NotNullWhen(true)] out List result) { result = null!; @@ -456,7 +442,7 @@ namespace Content.Server.GameObjects.Components.Body return false; } - var toReturn = new List(); + var toReturn = new List(); foreach (var connection in connections) { if (TryGetBodyPart(connection, out var bodyPartResult)) @@ -480,9 +466,9 @@ namespace Content.Server.GameObjects.Components.Body /// /// /// True if successful, false if there was an error or no connected - /// s were found. + /// s were found. /// - private bool TryGetBodyPartConnections(BodyPart part, [NotNullWhen(true)] out List result) + private bool TryGetBodyPartConnections(IBodyPart part, [NotNullWhen(true)] out List result) { result = null!; @@ -491,11 +477,11 @@ namespace Content.Server.GameObjects.Components.Body } /// - /// Grabs all of the given type in this body. + /// Grabs all of the given type in this body. /// - public List GetBodyPartsOfType(BodyPartType type) + public List GetBodyPartsOfType(BodyPartType type) { - var toReturn = new List(); + var toReturn = new List(); foreach (var part in Parts.Values) { @@ -508,32 +494,6 @@ namespace Content.Server.GameObjects.Components.Body return toReturn; } - /// - /// Installs the given into the given slot. - /// - /// True if successful, false otherwise. - public bool InstallBodyPart(BodyPart part, string slotName) - { - DebugTools.AssertNotNull(part); - - // Make sure the given slot exists - if (!SlotExists(slotName)) - { - return false; - } - - // And that nothing is in it - if (TryGetBodyPart(slotName, out _)) - { - return false; - } - - AddBodyPart(part, slotName); // TODO: Sort this duplicate out - OnBodyChanged(); - - return true; - } - /// /// Installs the given into the /// given slot, deleting the afterwards. @@ -543,7 +503,7 @@ namespace Content.Server.GameObjects.Components.Body { DebugTools.AssertNotNull(part); - if (!InstallBodyPart(part.ContainedBodyPart, slotName)) + if (!TryAddPart(slotName, part.ContainedBodyPart)) { return false; } @@ -553,15 +513,15 @@ namespace Content.Server.GameObjects.Components.Body } /// - /// Disconnects the given reference, potentially - /// dropping other BodyParts if they were hanging + /// Disconnects the given reference, potentially + /// dropping other BodyParts if they were hanging /// off of it. /// /// /// The representing the dropped - /// , or null if none was dropped. + /// , or null if none was dropped. /// - public IEntity? DropPart(BodyPart part) + public IEntity? DropPart(IBodyPart part) { DebugTools.AssertNotNull(part); @@ -595,36 +555,18 @@ namespace Content.Server.GameObjects.Components.Body } /// - /// Disconnects the given reference, potentially - /// dropping other BodyParts if they were hanging + /// Disconnects the given reference, potentially + /// dropping other BodyParts if they were hanging /// off of it. /// - public void DisconnectBodyPart(BodyPart part, bool dropEntity) + public void DisconnectBodyPart(IBodyPart part, bool dropEntity) { DebugTools.AssertNotNull(part); - if (!_parts.ContainsValue(part)) - { - return; - } + var slotName = _parts.FirstOrDefault(x => x.Value == part).Key; + if (string.IsNullOrEmpty(slotName)) return; + DisconnectBodyPart(slotName, dropEntity); - var slotName = Parts.FirstOrDefault(x => x.Value == part).Key; - RemoveBodyPart(slotName, dropEntity); - - // Call disconnect on all limbs that were hanging off this limb - if (TryGetBodyPartConnections(slotName, out List connections)) - { - // TODO: Optimize - foreach (var connectionName in connections) - { - if (TryGetBodyPart(connectionName, out var result) && !ConnectedToCenterPart(result)) - { - DisconnectBodyPart(connectionName, dropEntity); - } - } - } - - OnBodyChanged(); } /// @@ -639,12 +581,7 @@ namespace Content.Server.GameObjects.Components.Body { DebugTools.AssertNotNull(slotName); - if (!TryGetBodyPart(slotName, out var part)) - { - return; - } - - if (part == null) + if (!HasPart(slotName)) { return; } @@ -665,27 +602,47 @@ namespace Content.Server.GameObjects.Components.Body OnBodyChanged(); } - private void AddBodyPart(BodyPart part, string slotName) + public bool TryAddPart(string slot, IBodyPart part, bool force = false) { DebugTools.AssertNotNull(part); - DebugTools.AssertNotNull(slotName); + DebugTools.AssertNotNull(slot); - _parts.Add(slotName, part); + // Make sure the given slot exists + if (!force) + { + if (!SlotExists(slot)) + { + return false; + } + + // And that nothing is in it + if (!_parts.TryAdd(slot, part)) + { + return false; + } + } + else + { + _parts[slot] = part; + } part.Body = this; - var argsAdded = new BodyPartAddedEventArgs(part, slotName); + var argsAdded = new BodyPartAddedEventArgs(part, slot); foreach (var component in Owner.GetAllComponents().ToArray()) { component.BodyPartAdded(argsAdded); } - if (!Template.Layers.TryGetValue(slotName, out var partMap) || + // TODO: Sort this duplicate out + OnBodyChanged(); + + if (!Template.Layers.TryGetValue(slot, out var partMap) || !_reflectionManager.TryParseEnumReference(partMap, out var partEnum)) { Logger.Warning($"Template {Template.Name} has an invalid RSI map key {partMap} for body part {part.Name}."); - return; + return false; } part.RSIMap = partEnum; @@ -711,6 +668,13 @@ namespace Content.Server.GameObjects.Components.Body SendNetworkMessage(mechanismMessage); } + + return true; + } + + public bool HasPart(string slot) + { + return _parts.ContainsKey(slot); } /// @@ -719,7 +683,7 @@ namespace Content.Server.GameObjects.Components.Body /// /// The slot to remove it from. /// - /// Whether or not to drop the removed . + /// Whether or not to drop the removed . /// /// private bool RemoveBodyPart(string slotName, bool drop) @@ -770,6 +734,21 @@ namespace Content.Server.GameObjects.Components.Body SendNetworkMessage(mechanismMessage); } + if (CurrentDamageState == DamageState.Dead) return true; + + // creadth: fall down if no legs + if (part.PartType == BodyPartType.Leg && Parts.Count(x => x.Value.PartType == BodyPartType.Leg) == 0) + { + EntitySystem.Get().Down(Owner); + } + + // creadth: immediately kill entity if last vital part removed + if (part.IsVital && Parts.Count(x => x.Value.PartType == part.PartType) == 0) + { + CurrentDamageState = DamageState.Dead; + ForceHealthChangedEvent(); + } + return true; } @@ -779,17 +758,20 @@ namespace Content.Server.GameObjects.Components.Body /// The part to remove from this body. /// The slot that the part was in, if any. /// True if was removed, false otherwise. - private bool RemoveBodyPart(BodyPart part, [NotNullWhen(true)] out string slotName) + private bool RemoveBodyPart(IBodyPart part, [NotNullWhen(true)] out string? slotName) { DebugTools.AssertNotNull(part); - slotName = _parts.FirstOrDefault(pair => pair.Value == part).Key; + var pair = _parts.FirstOrDefault(kvPair => kvPair.Value == part); - if (slotName == null) + if (pair.Equals(default)) { + slotName = null; return false; } + slotName = pair.Key; + return RemoveBodyPart(slotName, false); } @@ -803,13 +785,13 @@ namespace Content.Server.GameObjects.Components.Body if (_networks.ContainsKey(network.GetType())) { - return false; + return true; } _networks.Add(network.GetType(), network); network.OnAdd(Owner); - return true; + return false; } /// @@ -843,62 +825,21 @@ namespace Content.Server.GameObjects.Components.Body return EnsureNetwork(typeof(T)); } - /// - /// Attempts to add a of the given name to - /// this body. - /// - /// - /// True if successful, false if there was an error - /// (such as passing in an invalid type or a network of that type already - /// existing). - /// - private bool EnsureNetwork(string networkName) + public void RemoveNetwork(Type networkType) { - DebugTools.AssertNotNull(networkName); + DebugTools.AssertNotNull(networkType); - var network = _bodyNetworkFactory.GetNetwork(networkName); - return EnsureNetwork(network); - } - - /// - /// Removes the of the given type in this body, - /// if there is one. - /// - /// The type of the network to remove. - public void RemoveNetwork(Type type) - { - DebugTools.AssertNotNull(type); - - if (_networks.Remove(type, out var network)) + if (_networks.Remove(networkType, out var network)) { network.OnRemove(); } } - /// - /// Removes the of the given type in this body, - /// if one exists. - /// - /// The type of the network to remove. public void RemoveNetwork() where T : BodyNetwork { RemoveNetwork(typeof(T)); } - /// - /// Removes the with the given name in this body, - /// if there is one. - /// - private void RemoveNetwork(string networkName) - { - var type = _bodyNetworkFactory.GetNetwork(networkName).GetType(); - - if (_networks.Remove(type, out var network)) - { - network.OnRemove(); - } - } - /// /// Attempts to get the of the given type in this body. /// @@ -923,7 +864,7 @@ namespace Content.Server.GameObjects.Components.Body /// a foot node from the given node. It can /// only search through BodyParts with . /// - private static float DistanceToNearestFoot(BodyManagerComponent body, BodyPart source) + private static float DistanceToNearestFoot(BodyManagerComponent body, IBodyPart source) { if (source.HasProperty() && source.TryGetProperty(out var property)) { @@ -933,7 +874,8 @@ namespace Content.Server.GameObjects.Components.Body return LookForFootRecursion(body, source, new List()); } - private static float LookForFootRecursion(BodyManagerComponent body, BodyPart current, + // TODO: Make this not static and not keep me up at night + private static float LookForFootRecursion(BodyManagerComponent body, IBodyPart current, ICollection searchedParts) { if (!current.TryGetProperty(out var extProperty)) diff --git a/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs b/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs index dfc1cb5198..343d4cff5e 100644 --- a/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs +++ b/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs @@ -56,7 +56,7 @@ namespace Content.Server.GameObjects.Components.Body /// /// Copy BodyTemplate and BodyPart data into a common data class that the client can read. /// - private BodyScannerInterfaceState InterfaceState(BodyTemplate template, IReadOnlyDictionary bodyParts) + private BodyScannerInterfaceState InterfaceState(BodyTemplate template, IReadOnlyDictionary bodyParts) { var partsData = new Dictionary(); diff --git a/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs b/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs index f7fb29c6e7..8c16794a4f 100644 --- a/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs +++ b/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs @@ -1,18 +1,17 @@ #nullable enable using System.Collections.Generic; using System.Linq; -using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Content.Server.Body; using Content.Server.Utility; using Content.Shared.Body.Surgery; +using Content.Shared.Interfaces; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.ViewVariables; @@ -24,8 +23,6 @@ namespace Content.Server.GameObjects.Components.Body [RegisterComponent] public class DroppedBodyPartComponent : Component, IAfterInteract, IBodyPartContainer { - [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager = default!; - private readonly Dictionary _optionsCache = new Dictionary(); private BodyManagerComponent? _bodyManagerComponentCache; private int _idHash; @@ -101,7 +98,7 @@ namespace Content.Server.GameObjects.Components.Body foreach (var connectedPart in parts) { - if (!connectedPart.CanAttachBodyPart(ContainedBodyPart)) + if (!connectedPart.CanAttachPart(ContainedBodyPart)) { continue; } @@ -121,7 +118,7 @@ namespace Content.Server.GameObjects.Components.Body } else // If surgery cannot be performed, show message saying so. { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, + eventArgs.Target.PopupMessage(eventArgs.User, Loc.GetString("You see no way to install {0:theName}.", Owner)); } } @@ -147,7 +144,7 @@ namespace Content.Server.GameObjects.Components.Body // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc if (!_optionsCache.TryGetValue(key, out var targetObject)) { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, + _bodyManagerComponentCache.Owner.PopupMessage(_performerCache, Loc.GetString("You see no useful way to attach {0:theName} anymore.", Owner)); } @@ -163,10 +160,7 @@ namespace Content.Server.GameObjects.Components.Body message = Loc.GetString("You can't attach it!"); } - _sharedNotifyManager.PopupMessage( - _bodyManagerComponentCache.Owner, - _performerCache, - message); + _bodyManagerComponentCache.Owner.PopupMessage(_performerCache, message); } private void OpenSurgeryUI(IPlayerSession session) diff --git a/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs b/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs index 939222ed2e..4c16cc9b7d 100644 --- a/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs +++ b/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs @@ -28,7 +28,6 @@ namespace Content.Server.GameObjects.Components.Body [RegisterComponent] public class DroppedMechanismComponent : Component, IAfterInteract { - [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; public sealed override string Name => "DroppedMechanism"; @@ -41,7 +40,7 @@ namespace Content.Server.GameObjects.Components.Body private IEntity? _performerCache; - [ViewVariables] public Mechanism ContainedMechanism { get; private set; } = default!; + [ViewVariables] public IMechanism ContainedMechanism { get; private set; } = default!; [ViewVariables] private BoundUserInterface? UserInterface => Owner.GetUIOrNull(GenericSurgeryUiKey.Key); @@ -67,8 +66,7 @@ namespace Content.Server.GameObjects.Components.Body if (!droppedBodyPart.ContainedBodyPart.TryInstallDroppedMechanism(this)) { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, - Loc.GetString("You can't fit it in!")); + eventArgs.Target.PopupMessage(eventArgs.User, Loc.GetString("You can't fit it in!")); } } } @@ -83,7 +81,7 @@ namespace Content.Server.GameObjects.Components.Body } } - public void InitializeDroppedMechanism(Mechanism data) + public void InitializeDroppedMechanism(IMechanism data) { ContainedMechanism = data; Owner.Name = Loc.GetString(ContainedMechanism.Name); @@ -141,7 +139,7 @@ namespace Content.Server.GameObjects.Components.Body } else // If surgery cannot be performed, show message saying so. { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, + eventArgs.Target.PopupMessage(eventArgs.User, Loc.GetString("You see no way to install the {0}.", Owner.Name)); } } @@ -167,7 +165,7 @@ namespace Content.Server.GameObjects.Components.Body // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc if (!_optionsCache.TryGetValue(key, out var targetObject)) { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, + _bodyManagerComponentCache.Owner.PopupMessage(_performerCache, Loc.GetString("You see no useful way to use the {0} anymore.", Owner.Name)); return; } @@ -177,10 +175,7 @@ namespace Content.Server.GameObjects.Components.Body ? Loc.GetString("You jam the {0} inside {1:them}.", ContainedMechanism.Name, _performerCache) : Loc.GetString("You can't fit it in!"); - _sharedNotifyManager.PopupMessage( - _bodyManagerComponentCache.Owner, - _performerCache, - message); + _bodyManagerComponentCache.Owner.PopupMessage(_performerCache, message); // TODO: {1:theName} } diff --git a/Content.Server/GameObjects/Components/Body/IBodyManagerComponent.cs b/Content.Server/GameObjects/Components/Body/IBodyManagerComponent.cs new file mode 100644 index 0000000000..26414eefa4 --- /dev/null +++ b/Content.Server/GameObjects/Components/Body/IBodyManagerComponent.cs @@ -0,0 +1,67 @@ +using System; +using Content.Server.Body; +using Content.Server.Body.Network; +using Content.Shared.GameObjects.Components.Body; + +namespace Content.Server.GameObjects.Components.Body +{ + // TODO: Merge with ISharedBodyManagerComponent + public interface IBodyManagerComponent : ISharedBodyManagerComponent + { + /// + /// The that this + /// is adhering to. + /// + public BodyTemplate Template { get; } + + /// + /// The that this + /// is adhering to. + /// + public BodyPreset Preset { get; } + + /// + /// Installs the given into the given slot. + /// + /// True if successful, false otherwise. + bool TryAddPart(string slot, IBodyPart part, bool force = false); + + bool HasPart(string slot); + + /// + /// Ensures that this body has the specified network. + /// + /// The type of the network to ensure. + /// + /// True if the network already existed, false if it had to be created. + /// + bool EnsureNetwork() where T : BodyNetwork; + + /// + /// Ensures that this body has the specified network. + /// + /// The type of the network to ensure. + /// + /// True if the network already existed, false if it had to be created. + /// + bool EnsureNetwork(Type networkType); + + /// + /// Removes the of the given type in this body, + /// if one exists. + /// + /// The type of the network to remove. + void RemoveNetwork() where T : BodyNetwork; + + /// + /// Removes the of the given type in this body, + /// if there is one. + /// + /// The type of the network to remove. + void RemoveNetwork(Type networkType); + + void PreMetabolism(float frameTime); + + void PostMetabolism(float frameTime); + } +} diff --git a/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs b/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs index 0c937b5a12..0a5d5136f7 100644 --- a/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs +++ b/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs @@ -16,7 +16,6 @@ using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Serialization; @@ -34,8 +33,6 @@ namespace Content.Server.GameObjects.Components.Body [RegisterComponent] public class SurgeryToolComponent : Component, ISurgeon, IAfterInteract { - [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager = default!; - public override string Name => "SurgeryTool"; public override uint? NetID => ContentNetIDs.SURGERY; @@ -131,7 +128,7 @@ namespace Content.Server.GameObjects.Components.Body public float BaseOperationTime { get => _baseOperateTime; set => _baseOperateTime = value; } - public void RequestMechanism(IEnumerable options, ISurgeon.MechanismRequestCallback callback) + public void RequestMechanism(IEnumerable options, ISurgeon.MechanismRequestCallback callback) { var toSend = new Dictionary(); foreach (var mechanism in options) @@ -233,7 +230,7 @@ namespace Content.Server.GameObjects.Components.Body /// /// Called after the client chooses from a list of possible - /// to choose from. + /// to choose from. /// private void HandleReceiveMechanism(int key) { @@ -254,27 +251,13 @@ namespace Content.Server.GameObjects.Components.Body private void SendNoUsefulWayToUsePopup() { - if (_bodyManagerComponentCache == null) - { - return; - } - - _sharedNotifyManager.PopupMessage( - _bodyManagerComponentCache.Owner, - _performerCache, + _bodyManagerComponentCache?.Owner.PopupMessage(_performerCache, Loc.GetString("You see no useful way to use {0:theName}.", Owner)); } private void SendNoUsefulWayToUseAnymorePopup() { - if (_bodyManagerComponentCache == null) - { - return; - } - - _sharedNotifyManager.PopupMessage( - _bodyManagerComponentCache.Owner, - _performerCache, + _bodyManagerComponentCache?.Owner.PopupMessage(_performerCache, Loc.GetString("You see no useful way to use {0:theName} anymore.", Owner)); } diff --git a/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs b/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs index 0b15560869..8e42c59e96 100644 --- a/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs +++ b/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs @@ -3,16 +3,17 @@ using System; using System.Diagnostics.CodeAnalysis; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Mobs; +using Content.Server.GameObjects.Components.Mobs.State; using Content.Server.GameObjects.Components.Strap; -using Content.Server.Interfaces; -using Content.Server.Mobs; -using Content.Server.Utility; +using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Buckle; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Strap; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystemMessages; using Robust.Server.GameObjects.EntitySystems; @@ -37,7 +38,6 @@ namespace Content.Server.GameObjects.Components.Buckle [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IEntitySystemManager _entitySystem = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; private int _size; @@ -112,10 +112,14 @@ namespace Content.Server.GameObjects.Components.Buckle { if (Owner.TryGetComponent(out ServerStatusEffectsComponent? status)) { - status.ChangeStatusEffectIcon(StatusEffect.Buckled, - Buckled - ? BuckledTo!.BuckledIcon - : "/Textures/Interface/StatusEffects/Buckle/unbuckled.png"); + if (Buckled) + { + status.ChangeStatusEffectIcon(StatusEffect.Buckled, BuckledTo!.BuckledIcon); + } + else + { + status.RemoveStatusEffect(StatusEffect.Buckled); + } } } @@ -136,11 +140,11 @@ namespace Content.Server.GameObjects.Components.Buckle ownTransform.WorldRotation = strapTransform.WorldRotation; break; case StrapPosition.Stand: - StandingStateHelper.Standing(Owner); + EntitySystem.Get().Standing(Owner); ownTransform.WorldRotation = strapTransform.WorldRotation; break; case StrapPosition.Down: - StandingStateHelper.Down(Owner, force: true); + EntitySystem.Get().Down(Owner, force: true); ownTransform.WorldRotation = Angle.South; break; } @@ -158,7 +162,7 @@ namespace Content.Server.GameObjects.Components.Buckle } } - private bool CanBuckle(IEntity user, IEntity to, [MaybeNullWhen(false)] out StrapComponent strap) + private bool CanBuckle(IEntity? user, IEntity to, [MaybeNullWhen(false)] out StrapComponent strap) { strap = null; @@ -169,32 +173,26 @@ namespace Content.Server.GameObjects.Components.Buckle if (!ActionBlockerSystem.CanInteract(user)) { - _notifyManager.PopupMessage(user, user, - Loc.GetString("You can't do that!")); - + user.PopupMessage(Loc.GetString("You can't do that!")); return false; } if (!to.TryGetComponent(out strap)) { - _notifyManager.PopupMessage(Owner, user, - Loc.GetString(Owner == user - ? "You can't buckle yourself there!" - : "You can't buckle {0:them} there!", Owner)); + var message = Loc.GetString(Owner == user + ? "You can't buckle yourself there!" + : "You can't buckle {0:them} there!", Owner); + Owner.PopupMessage(user, message); return false; } - var ownerPosition = Owner.Transform.MapPosition; - var strapPosition = strap.Owner.Transform.MapPosition; - var interaction = EntitySystem.Get(); var component = strap; bool Ignored(IEntity entity) => entity == Owner || entity == user || entity == component.Owner; - if (!interaction.InRangeUnobstructed(ownerPosition, strapPosition, _range, predicate: Ignored)) + if (!Owner.InRangeUnobstructed(strap, _range, predicate: Ignored, popup: true)) { - _notifyManager.PopupMessage(strap.Owner, user, - Loc.GetString("You can't reach there!")); + strap.Owner.PopupMessage(user, Loc.GetString("You can't reach there!")); return false; } @@ -206,7 +204,7 @@ namespace Content.Server.GameObjects.Components.Buckle if (!ContainerHelpers.TryGetContainer(strap.Owner, out var strapContainer) || ownerContainer != strapContainer) { - _notifyManager.PopupMessage(strap.Owner, user, Loc.GetString("You can't reach there!")); + strap.Owner.PopupMessage(user, Loc.GetString("You can't reach there!")); return false; } @@ -214,18 +212,16 @@ namespace Content.Server.GameObjects.Components.Buckle if (!user.HasComponent()) { - _notifyManager.PopupMessage(user, user, - Loc.GetString("You don't have hands!")); - + user.PopupMessage(Loc.GetString("You don't have hands!")); return false; } if (Buckled) { - _notifyManager.PopupMessage(Owner, user, - Loc.GetString(Owner == user - ? "You are already buckled in!" - : "{0:They} are already buckled in!", Owner)); + var message = Loc.GetString(Owner == user + ? "You are already buckled in!" + : "{0:They} are already buckled in!", Owner); + Owner.PopupMessage(user, message); return false; } @@ -235,10 +231,10 @@ namespace Content.Server.GameObjects.Components.Buckle { if (parent == user.Transform) { - _notifyManager.PopupMessage(Owner, user, - Loc.GetString(Owner == user - ? "You can't buckle yourself there!" - : "You can't buckle {0:them} there!", Owner)); + var message = Loc.GetString(Owner == user + ? "You can't buckle yourself there!" + : "You can't buckle {0:them} there!", Owner); + Owner.PopupMessage(user, message); return false; } @@ -248,10 +244,10 @@ namespace Content.Server.GameObjects.Components.Buckle if (!strap.HasSpace(this)) { - _notifyManager.PopupMessage(Owner, user, - Loc.GetString(Owner == user - ? "You can't fit there!" - : "{0:They} can't fit there!", Owner)); + var message = Loc.GetString(Owner == user + ? "You can't fit there!" + : "{0:They} can't fit there!", Owner); + Owner.PopupMessage(user, message); return false; } @@ -282,10 +278,10 @@ namespace Content.Server.GameObjects.Components.Buckle if (!strap.TryAdd(this)) { - _notifyManager.PopupMessage(Owner, user, - Loc.GetString(Owner == user - ? "You can't buckle yourself there!" - : "You can't buckle {0:them} there!", Owner)); + var message = Loc.GetString(Owner == user + ? "You can't buckle yourself there!" + : "You can't buckle {0:them} there!", Owner); + Owner.PopupMessage(user, message); return false; } @@ -336,14 +332,11 @@ namespace Content.Server.GameObjects.Components.Buckle if (!ActionBlockerSystem.CanInteract(user)) { - _notifyManager.PopupMessage(user, user, - Loc.GetString("You can't do that!")); + user.PopupMessage(Loc.GetString("You can't do that!")); return false; } - var strapPosition = Owner.Transform.MapPosition; - - if (!InteractionChecks.InRangeUnobstructed(user, strapPosition, _range)) + if (!user.InRangeUnobstructed(oldBuckledTo, _range, popup: true)) { return false; } @@ -364,11 +357,11 @@ namespace Content.Server.GameObjects.Components.Buckle if (Owner.TryGetComponent(out StunnableComponent? stunnable) && stunnable.KnockedDown) { - StandingStateHelper.Down(Owner); + EntitySystem.Get().Down(Owner); } else { - StandingStateHelper.Standing(Owner); + EntitySystem.Get().Standing(Owner); } if (Owner.TryGetComponent(out MobStateManagerComponent? stateManager)) diff --git a/Content.Server/GameObjects/Components/Chemistry/ChemMasterComponent.cs b/Content.Server/GameObjects/Components/Chemistry/ChemMasterComponent.cs index c3a7dc4764..e862d74b58 100644 --- a/Content.Server/GameObjects/Components/Chemistry/ChemMasterComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/ChemMasterComponent.cs @@ -7,13 +7,14 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Chemistry.ChemMaster; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.GameObjects.EntitySystems; @@ -22,11 +23,7 @@ using Robust.Shared.Audio; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Random; -using Robust.Shared.IoC; using Robust.Shared.Localization; -using Robust.Shared.Maths; -using Robust.Shared.Random; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -43,8 +40,6 @@ namespace Content.Server.GameObjects.Components.Chemistry [ComponentReference(typeof(IInteractUsing))] public class ChemMasterComponent : SharedChemMasterComponent, IActivate, IInteractUsing, ISolutionChange { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - [ViewVariables] private ContainerSlot _beakerContainer = default!; [ViewVariables] private string _packPrototypeId = ""; @@ -272,8 +267,6 @@ namespace Content.Server.GameObjects.Components.Chemistry private void TryCreatePackage(IEntity user, UiAction action, int pillAmount, int bottleAmount) { - var random = IoCManager.Resolve(); - if (BufferSolution.CurrentVolume == 0) return; @@ -302,15 +295,12 @@ namespace Content.Server.GameObjects.Components.Chemistry hands.PutInHand(item); continue; } - } //Put it on the floor bottle.Transform.GridPosition = user.Transform.GridPosition; //Give it an offset - var x_negative = random.Prob(0.5f) ? -1 : 1; - var y_negative = random.Prob(0.5f) ? -1 : 1; - bottle.Transform.LocalPosition += new Vector2(random.NextFloat() * 0.2f * x_negative, random.NextFloat() * 0.2f * y_negative); + bottle.RandomOffset(0.2f); } } @@ -345,9 +335,7 @@ namespace Content.Server.GameObjects.Components.Chemistry //Put it on the floor pill.Transform.GridPosition = user.Transform.GridPosition; //Give it an offset - var x_negative = random.Prob(0.5f) ? -1 : 1; - var y_negative = random.Prob(0.5f) ? -1 : 1; - pill.Transform.LocalPosition += new Vector2(random.NextFloat() * 0.2f * x_negative, random.NextFloat() * 0.2f * y_negative); + pill.RandomOffset(0.2f); } } @@ -367,8 +355,7 @@ namespace Content.Server.GameObjects.Components.Chemistry if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return; } @@ -390,15 +377,13 @@ namespace Content.Server.GameObjects.Components.Chemistry { if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return true; } if (hands.GetActiveHand == null) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have nothing on your hand.")); + Owner.PopupMessage(args.User, Loc.GetString("You have nothing on your hand.")); return false; } @@ -407,14 +392,12 @@ namespace Content.Server.GameObjects.Components.Chemistry { if (HasBeaker) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("This ChemMaster already has a container in it.")); + Owner.PopupMessage(args.User, Loc.GetString("This ChemMaster already has a container in it.")); } else if ((solution.Capabilities & SolutionCaps.FitsInDispenser) == 0) //Close enough to a chem master... { //If it can't fit in the chem master, don't put it in. For example, buckets and mop buckets can't fit. - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("That can't fit in the ChemMaster.")); + Owner.PopupMessage(args.User, Loc.GetString("That can't fit in the ChemMaster.")); } else { @@ -424,8 +407,7 @@ namespace Content.Server.GameObjects.Components.Chemistry } else { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You can't put this in the ChemMaster.")); + Owner.PopupMessage(args.User, Loc.GetString("You can't put this in the ChemMaster.")); } return true; @@ -435,7 +417,6 @@ namespace Content.Server.GameObjects.Components.Chemistry private void ClickSound() { - EntitySystem.Get().PlayFromEntity("/Audio/Machines/machine_switch.ogg", Owner, AudioParams.Default.WithVolume(-2f)); } } diff --git a/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs b/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs index a3a9959ca1..d315ffcceb 100644 --- a/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs @@ -1,14 +1,13 @@ #nullable enable using System; using Content.Server.GameObjects.Components.Body.Circulatory; -using Content.Server.Interfaces; -using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Chemistry; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -23,8 +22,6 @@ namespace Content.Server.GameObjects.Components.Chemistry [RegisterComponent] public class InjectorComponent : SharedInjectorComponent, IAfterInteract, IUse { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - /// /// Whether or not the injector is able to draw from containers or if it's a single use /// device that can only inject. @@ -100,7 +97,7 @@ namespace Content.Server.GameObjects.Components.Chemistry throw new ArgumentOutOfRangeException(); } - _notifyManager.PopupMessage(Owner, user, Loc.GetString(msg)); + Owner.PopupMessage(user, Loc.GetString(msg)); Dirty(); } @@ -111,7 +108,7 @@ namespace Content.Server.GameObjects.Components.Chemistry /// void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { - if (!InteractionChecks.InRangeUnobstructed(eventArgs)) return; + if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return; //Make sure we have the attacking entity if (eventArgs.Target == null || !Owner.TryGetComponent(out SolutionComponent? solution) || !solution.Injector) @@ -165,8 +162,7 @@ namespace Content.Server.GameObjects.Components.Chemistry var realTransferAmount = ReagentUnit.Min(_transferAmount, targetBloodstream.EmptyVolume); if (realTransferAmount <= 0) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Container full.")); + Owner.PopupMessage(user, Loc.GetString("Container full.")); return; } @@ -177,8 +173,7 @@ namespace Content.Server.GameObjects.Components.Chemistry return; } - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Injected {0}u", removedSolution.TotalVolume)); + Owner.PopupMessage(user, Loc.GetString("Injected {0}u", removedSolution.TotalVolume)); Dirty(); } @@ -194,8 +189,7 @@ namespace Content.Server.GameObjects.Components.Chemistry var realTransferAmount = ReagentUnit.Min(_transferAmount, targetSolution.EmptyVolume); if (realTransferAmount <= 0) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Container full.")); + Owner.PopupMessage(user, Loc.GetString("Container full.")); return; } @@ -206,8 +200,7 @@ namespace Content.Server.GameObjects.Components.Chemistry return; } - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Injected {0}u", removedSolution.TotalVolume)); + Owner.PopupMessage(user, Loc.GetString("Injected {0}u", removedSolution.TotalVolume)); Dirty(); } @@ -223,8 +216,7 @@ namespace Content.Server.GameObjects.Components.Chemistry var realTransferAmount = ReagentUnit.Min(_transferAmount, targetSolution.CurrentVolume); if (realTransferAmount <= 0) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Container empty")); + Owner.PopupMessage(user, Loc.GetString("Container empty")); return; } @@ -235,8 +227,7 @@ namespace Content.Server.GameObjects.Components.Chemistry return; } - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, - Loc.GetString("Drew {0}u", removedSolution.TotalVolume)); + Owner.PopupMessage(user, Loc.GetString("Drew {0}u", removedSolution.TotalVolume)); Dirty(); } diff --git a/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs b/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs index 0704436578..ce4a461b69 100644 --- a/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs @@ -1,10 +1,10 @@ using Content.Server.GameObjects.Components.Body.Digestive; using Content.Server.GameObjects.Components.Nutrition; using Content.Server.GameObjects.Components.Utensil; -using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.Audio; using Robust.Shared.GameObjects; @@ -46,8 +46,6 @@ namespace Content.Server.GameObjects.Components.Chemistry { base.Initialize(); _contents = Owner.GetComponent(); - _transferAmount = _contents.CurrentVolume; - } bool IUse.UseEntity(UseEntityEventArgs eventArgs) @@ -80,7 +78,7 @@ namespace Content.Server.GameObjects.Components.Chemistry return false; } - if (!InteractionChecks.InRangeUnobstructed(user, trueTarget.Transform.MapPosition)) + if (!user.InRangeUnobstructed(trueTarget, popup: true)) { return false; } diff --git a/Content.Server/GameObjects/Components/Chemistry/PourableComponent.cs b/Content.Server/GameObjects/Components/Chemistry/PourableComponent.cs index 1a507f2bcb..7f23b562df 100644 --- a/Content.Server/GameObjects/Components/Chemistry/PourableComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/PourableComponent.cs @@ -1,9 +1,8 @@ using System.Threading.Tasks; -using Content.Server.Interfaces; using Content.Shared.Chemistry; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -19,8 +18,6 @@ namespace Content.Server.GameObjects.Components.Chemistry [RegisterComponent] class PourableComponent : Component, IInteractUsing { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - public override string Name => "Pourable"; private ReagentUnit _transferAmount; @@ -87,8 +84,7 @@ namespace Content.Server.GameObjects.Components.Chemistry var realTransferAmount = ReagentUnit.Min(fromPourable.TransferAmount, toSolution.EmptyVolume); if (realTransferAmount <= 0) //Special message if container is full { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("Container is full")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("Container is full")); return false; } @@ -97,8 +93,7 @@ namespace Content.Server.GameObjects.Components.Chemistry if (!toSolution.TryAddSolution(removedSolution)) return false; - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("Transferred {0}u", removedSolution.TotalVolume)); + Owner.PopupMessage(eventArgs.User, Loc.GetString("Transferred {0}u", removedSolution.TotalVolume)); return true; } diff --git a/Content.Server/GameObjects/Components/Chemistry/ReagentDispenserComponent.cs b/Content.Server/GameObjects/Components/Chemistry/ReagentDispenserComponent.cs index 3ec235caf7..86580bb399 100644 --- a/Content.Server/GameObjects/Components/Chemistry/ReagentDispenserComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/ReagentDispenserComponent.cs @@ -6,12 +6,12 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Chemistry.ReagentDispenser; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.UserInterface; @@ -40,7 +40,7 @@ namespace Content.Server.GameObjects.Components.Chemistry [ComponentReference(typeof(IInteractUsing))] public class ReagentDispenserComponent : SharedReagentDispenserComponent, IActivate, IInteractUsing, ISolutionChange { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [ViewVariables] private ContainerSlot _beakerContainer = default!; [ViewVariables] private string _packPrototypeId = ""; @@ -99,8 +99,7 @@ namespace Content.Server.GameObjects.Components.Chemistry { if (string.IsNullOrEmpty(_packPrototypeId)) return; - var prototypeManager = IoCManager.Resolve(); - if (!prototypeManager.TryIndex(_packPrototypeId, out ReagentDispenserInventoryPrototype packPrototype)) + if (!_prototypeManager.TryIndex(_packPrototypeId, out ReagentDispenserInventoryPrototype packPrototype)) { return; } @@ -280,8 +279,7 @@ namespace Content.Server.GameObjects.Components.Chemistry if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return; } @@ -303,15 +301,13 @@ namespace Content.Server.GameObjects.Components.Chemistry { if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return true; } if (hands.GetActiveHand == null) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have nothing on your hand.")); + Owner.PopupMessage(args.User, Loc.GetString("You have nothing on your hand.")); return false; } @@ -320,14 +316,12 @@ namespace Content.Server.GameObjects.Components.Chemistry { if (HasBeaker) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("This dispenser already has a container in it.")); + Owner.PopupMessage(args.User, Loc.GetString("This dispenser already has a container in it.")); } else if ((solution.Capabilities & SolutionCaps.FitsInDispenser) == 0) { //If it can't fit in the dispenser, don't put it in. For example, buckets and mop buckets can't fit. - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("That can't fit in the dispenser.")); + Owner.PopupMessage(args.User, Loc.GetString("That can't fit in the dispenser.")); } else { @@ -337,8 +331,7 @@ namespace Content.Server.GameObjects.Components.Chemistry } else { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You can't put this in the dispenser.")); + Owner.PopupMessage(args.User, Loc.GetString("You can't put this in the dispenser.")); } return true; @@ -348,11 +341,8 @@ namespace Content.Server.GameObjects.Components.Chemistry private void ClickSound() { - EntitySystem.Get().PlayFromEntity("/Audio/Machines/machine_switch.ogg", Owner, AudioParams.Default.WithVolume(-2f)); } - - } } diff --git a/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs b/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs index 241d103dc9..71c6ee7996 100644 --- a/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs @@ -234,7 +234,10 @@ namespace Content.Server.GameObjects.Components.Chemistry var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? ""; var myName = component.Owner.Prototype?.Name ?? ""; - data.Text= $"Transfer liquid from [{heldEntityName}] to [{myName}]."; + var locHeldEntityName = Loc.GetString(heldEntityName); + var locMyName = Loc.GetString(myName); + + data.Text = Loc.GetString("Transfer liquid from [{0}] to [{1}].", locHeldEntityName, locMyName); return; } @@ -334,7 +337,10 @@ namespace Content.Server.GameObjects.Components.Chemistry var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? ""; var myName = component.Owner.Prototype?.Name ?? ""; - data.Text = $"Transfer liquid from [{myName}] to [{heldEntityName}]."; + var locHeldEntityName = Loc.GetString(heldEntityName); + var locMyName = Loc.GetString(myName); + + data.Text = Loc.GetString("Transfer liquid from [{0}] to [{1}].", locMyName, locHeldEntityName); return; } diff --git a/Content.Server/GameObjects/Components/Chemistry/VaporComponent.cs b/Content.Server/GameObjects/Components/Chemistry/VaporComponent.cs index ace097cce5..31734a5924 100644 --- a/Content.Server/GameObjects/Components/Chemistry/VaporComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/VaporComponent.cs @@ -76,7 +76,7 @@ namespace Content.Server.GameObjects.Components.Chemistry foreach (var tile in tiles) { var pos = tile.GridIndices.ToGridCoordinates(_mapManager, tile.GridIndex); - SpillHelper.SpillAt(pos, contents.SplitSolution(amount), "PuddleSmear", false); //make non PuddleSmear? + contents.SplitSolution(amount).SpillAt(pos, "PuddleSmear", false); // TODO: Make non PuddleSmear? } } diff --git a/Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs b/Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs index 01a29b4a05..bfab8543f6 100644 --- a/Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs +++ b/Content.Server/GameObjects/Components/Conveyor/ConveyorComponent.cs @@ -10,6 +10,7 @@ using Content.Shared.GameObjects.Components.Conveyor; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Physics; +using Content.Shared.Utility; using Robust.Server.GameObjects; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -170,7 +171,7 @@ namespace Content.Server.GameObjects.Components.Conveyor Owner.AddComponent(); _group?.RemoveConveyor(this); - Owner.Transform.WorldPosition += (_random.NextFloat() * 0.4f - 0.2f, _random.NextFloat() * 0.4f - 0.2f); + Owner.RandomOffset(0.2f); return true; } diff --git a/Content.Server/GameObjects/Components/Conveyor/ConveyorSwitchComponent.cs b/Content.Server/GameObjects/Components/Conveyor/ConveyorSwitchComponent.cs index ae5e2c3aa1..48edea9ccd 100644 --- a/Content.Server/GameObjects/Components/Conveyor/ConveyorSwitchComponent.cs +++ b/Content.Server/GameObjects/Components/Conveyor/ConveyorSwitchComponent.cs @@ -81,7 +81,7 @@ namespace Content.Server.GameObjects.Components.Conveyor } _group.AddConveyor(conveyor); - user?.PopupMessage(user, Loc.GetString("Conveyor linked.")); + user?.PopupMessage(Loc.GetString("Conveyor linked.")); } /// diff --git a/Content.Server/GameObjects/Components/Damage/DamageCommands.cs b/Content.Server/GameObjects/Components/Damage/DamageCommands.cs new file mode 100644 index 0000000000..5b4fe5b43a --- /dev/null +++ b/Content.Server/GameObjects/Components/Damage/DamageCommands.cs @@ -0,0 +1,214 @@ +#nullable enable +using System; +using System.Diagnostics.CodeAnalysis; +using Content.Server.GameObjects.Components.Atmos; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Server.Interfaces.Console; +using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; + +namespace Content.Server.GameObjects.Components.Damage +{ + public abstract class DamageFlagCommand : IClientCommand + { + public abstract string Command { get; } + public abstract string Description { get; } + public abstract string Help { get; } + + public abstract void Execute(IConsoleShell shell, IPlayerSession? player, string[] args); + + public bool TryGetEntity( + IConsoleShell shell, + IPlayerSession? player, + string[] args, + bool adding, + [NotNullWhen(true)] out IEntity? entity, + out DamageFlag flag, + [NotNullWhen(true)] out IDamageableComponent? damageable) + { + entity = null; + flag = DamageFlag.None; + damageable = null; + + IEntity? parsedEntity; + DamageFlag parsedFlag; + IDamageableComponent? parsedDamageable; + + switch (args.Length) + { + case 1: + { + if (player == null) + { + shell.SendText(player, "An entity needs to be specified when the command isn't used by a player."); + return false; + } + + if (player.AttachedEntity == null) + { + shell.SendText(player, "An entity needs to be specified when you aren't attached to an entity."); + return false; + } + + if (!Enum.TryParse(args[0], true, out parsedFlag)) + { + shell.SendText(player, $"{args[0]} is not a valid damage flag."); + return false; + } + + parsedEntity = player.AttachedEntity; + flag = parsedFlag; + break; + } + case 2: + { + if (!EntityUid.TryParse(args[0], out var id)) + { + shell.SendText(player, $"{args[0]} isn't a valid entity id."); + return false; + } + + var entityManager = IoCManager.Resolve(); + if (!entityManager.TryGetEntity(id, out parsedEntity)) + { + shell.SendText(player, $"No entity found with id {id}."); + return false; + } + + if (!Enum.TryParse(args[1], true, out parsedFlag)) + { + shell.SendText(player, $"{args[1]} is not a valid damage flag."); + return false; + } + + break; + } + default: + shell.SendText(player, Help); + return false; + } + + if (!parsedEntity.TryGetComponent(out parsedDamageable)) + { + shell.SendText(player, $"Entity {parsedEntity.Name} doesn't have a {nameof(IDamageableComponent)}"); + return false; + } + + if (parsedDamageable.HasFlag(parsedFlag) && adding) + { + shell.SendText(player, $"Entity {parsedEntity.Name} already has damage flag {parsedFlag}."); + return false; + } + else if (!parsedDamageable.HasFlag(parsedFlag) && !adding) + { + shell.SendText(player, $"Entity {parsedEntity.Name} doesn't have damage flag {parsedFlag}."); + return false; + } + + entity = parsedEntity; + flag = parsedFlag; + damageable = parsedDamageable; + + return true; + } + } + + public class AddDamageFlagCommand : DamageFlagCommand + { + public override string Command => "adddamageflag"; + public override string Description => "Adds a damage flag to your entity or another."; + public override string Help => $"Usage: {Command} / {Command} "; + + public override void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (!TryGetEntity(shell, player, args, true, out var entity, out var flag, out var damageable)) + { + return; + } + + damageable.AddFlag(flag); + shell.SendText(player, $"Added damage flag {flag} to entity {entity.Name}"); + } + } + + public class RemoveDamageFlagCommand : DamageFlagCommand + { + public override string Command => "removedamageflag"; + public override string Description => "Removes a damage flag from your entity or another."; + public override string Help => $"Usage: {Command} / {Command} "; + + public override void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (!TryGetEntity(shell, player, args, false, out var entity, out var flag, out var damageable)) + { + return; + } + + damageable.RemoveFlag(flag); + shell.SendText(player, $"Removed damage flag {flag} from entity {entity.Name}"); + } + } + + public class GodModeCommand : IClientCommand + { + public string Command => "godmode"; + public string Description => "Makes your entity or another invulnerable to almost anything. May have irreversible changes."; + public string Help => $"Usage: {Command} / {Command} "; + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + IEntity entity; + + switch (args.Length) + { + case 0: + if (player == null) + { + shell.SendText(player, "An entity needs to be specified when the command isn't used by a player."); + return; + } + + if (player.AttachedEntity == null) + { + shell.SendText(player, "An entity needs to be specified when you aren't attached to an entity."); + return; + } + + entity = player.AttachedEntity; + break; + case 1: + if (!EntityUid.TryParse(args[0], out var id)) + { + shell.SendText(player, $"{args[0]} isn't a valid entity id."); + return; + } + + var entityManager = IoCManager.Resolve(); + if (!entityManager.TryGetEntity(id, out var parsedEntity)) + { + shell.SendText(player, $"No entity found with id {id}."); + return; + } + + entity = parsedEntity; + break; + default: + shell.SendText(player, Help); + return; + } + + if (entity.HasComponent()) + { + entity.RemoveComponent(); + } + + if (entity.TryGetComponent(out IDamageableComponent? damageable)) + { + damageable.AddFlag(DamageFlag.Invulnerable); + } + + shell.SendText(player, $"Enabled godmode for entity {entity.Name}"); + } + } +} diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs index 838cf933d2..ed19c29447 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs @@ -63,7 +63,7 @@ namespace Content.Server.GameObjects.Components.Disposal } return entity.HasComponent() || - entity.HasComponent(); + entity.HasComponent(); } public bool TryInsert(IEntity entity) diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalRouterComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalRouterComponent.cs index 6cf6689e75..b615510c93 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalRouterComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalRouterComponent.cs @@ -1,5 +1,4 @@ #nullable enable -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces.GameObjects.Components; @@ -11,13 +10,13 @@ using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; using Robust.Shared.ViewVariables; using System; using System.Collections.Generic; using Content.Server.Utility; +using Content.Shared.Interfaces; using static Content.Shared.GameObjects.Components.Disposal.SharedDisposalRouterComponent; namespace Content.Server.GameObjects.Components.Disposal @@ -27,7 +26,6 @@ namespace Content.Server.GameObjects.Components.Disposal [ComponentReference(typeof(IDisposalTubeComponent))] public class DisposalRouterComponent : DisposalJunctionComponent, IActivate { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; public override string Name => "DisposalRouter"; [ViewVariables] @@ -160,8 +158,7 @@ namespace Content.Server.GameObjects.Components.Disposal if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return; } diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalTaggerComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalTaggerComponent.cs index 76d913e2cf..ce14df749d 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalTaggerComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalTaggerComponent.cs @@ -1,8 +1,8 @@ #nullable enable -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.GameObjects.EntitySystems; @@ -12,7 +12,6 @@ using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; using Robust.Shared.ViewVariables; @@ -25,7 +24,6 @@ namespace Content.Server.GameObjects.Components.Disposal [ComponentReference(typeof(IDisposalTubeComponent))] public class DisposalTaggerComponent : DisposalTransitComponent, IActivate { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; public override string Name => "DisposalTagger"; [ViewVariables(VVAccess.ReadWrite)] @@ -128,8 +126,7 @@ namespace Content.Server.GameObjects.Components.Disposal if (!args.User.TryGetComponent(out IHandsComponent? hands)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, args.User, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); return; } diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs index 5055312f56..8a002a3dea 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs @@ -69,12 +69,28 @@ namespace Content.Server.GameObjects.Components.Disposal var nextDirection = NextDirection(holder); var snapGrid = Owner.GetComponent(); var oppositeDirection = new Angle(nextDirection.ToAngle().Theta + Math.PI).GetDir(); - var tube = snapGrid - .GetInDir(nextDirection) - .Select(x => x.TryGetComponent(out IDisposalTubeComponent? c) ? c : null) - .FirstOrDefault(x => x != null && x != this && x.CanConnect(oppositeDirection, this)); - return tube; + foreach (var entity in snapGrid.GetInDir(nextDirection)) + { + if (!entity.TryGetComponent(out IDisposalTubeComponent? tube)) + { + continue; + } + + if (!tube.CanConnect(oppositeDirection, this)) + { + continue; + } + + if (!CanConnect(nextDirection, tube)) + { + continue; + } + + return tube; + } + + return null; } public bool Remove(DisposalHolderComponent holder) @@ -181,8 +197,6 @@ namespace Content.Server.GameObjects.Components.Disposal return; } - collidable.CanCollide = !collidable.Anchored; - if (collidable.Anchored) { OnAnchor(); @@ -221,8 +235,6 @@ namespace Content.Server.GameObjects.Components.Disposal var collidable = Owner.EnsureComponent(); collidable.AnchoredChanged += AnchoredChanged; - - collidable.CanCollide = !collidable.Anchored; } protected override void Startup() @@ -278,7 +290,7 @@ namespace Content.Server.GameObjects.Components.Disposal { protected override void GetData(IEntity user, IDisposalTubeComponent component, VerbData data) { - data.Text = "Tube Directions"; + data.Text = Loc.GetString("Tube Directions"); data.CategoryData = VerbCategories.Debug; data.Visibility = VerbVisibility.Invisible; diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs index d67721987a..634a55b002 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs @@ -8,13 +8,13 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems.DoAfter; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Disposal; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.Container; @@ -43,7 +43,6 @@ namespace Content.Server.GameObjects.Components.Disposal [ComponentReference(typeof(IInteractUsing))] public class DisposalUnitComponent : SharedDisposalUnitComponent, IInteractHand, IInteractUsing, IDragDropOn { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; public override string Name => "DisposalUnit"; @@ -143,7 +142,7 @@ namespace Content.Server.GameObjects.Components.Disposal } if (!entity.HasComponent() && - !entity.HasComponent()) + !entity.HasComponent()) { return false; } @@ -614,15 +613,13 @@ namespace Content.Server.GameObjects.Components.Disposal { if (!ActionBlockerSystem.CanInteract(eventArgs.User)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("You can't do that!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You can't do that!")); return false; } if (ContainerHelpers.IsInContainer(eventArgs.User)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("You can't reach there!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You can't reach there!")); return false; } @@ -633,8 +630,7 @@ namespace Content.Server.GameObjects.Components.Disposal if (!eventArgs.User.HasComponent()) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("You have no hands!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You have no hands!")); return false; } diff --git a/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs b/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs index e33ab84758..03dabcc6c4 100644 --- a/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs +++ b/Content.Server/GameObjects/Components/Doors/AirlockComponent.cs @@ -8,6 +8,7 @@ using Content.Server.GameObjects.Components.VendingMachines; using Content.Server.Interfaces; using Content.Shared.GameObjects.Components.Doors; using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; @@ -26,7 +27,7 @@ namespace Content.Server.GameObjects.Components.Doors [RegisterComponent] [ComponentReference(typeof(IActivate))] [ComponentReference(typeof(ServerDoorComponent))] - public class AirlockComponent : ServerDoorComponent, IWires, IInteractUsing + public class AirlockComponent : ServerDoorComponent, IWires { public override string Name => "Airlock"; @@ -305,6 +306,7 @@ namespace Content.Server.GameObjects.Components.Doors case Wires.BackupPower: PowerWiresPulsed = true; _powerWiresPulsedTimerCancel.Cancel(); + _powerWiresPulsedTimerCancel = new CancellationTokenSource(); Timer.Spawn(PowerWiresTimeout, () => PowerWiresPulsed = false, _powerWiresPulsedTimerCancel.Token); @@ -383,7 +385,7 @@ namespace Content.Server.GameObjects.Components.Doors public override bool CanOpen() { - return IsPowered() && !IsBolted(); + return base.CanOpen() && IsPowered() && !IsBolted(); } public override bool CanClose() @@ -412,8 +414,11 @@ namespace Content.Server.GameObjects.Components.Doors || receiver.Powered; } - public async Task InteractUsing(InteractUsingEventArgs eventArgs) + public override async Task InteractUsing(InteractUsingEventArgs eventArgs) { + if (await base.InteractUsing(eventArgs)) + return true; + if (!eventArgs.Using.TryGetComponent(out var tool)) return false; @@ -435,16 +440,14 @@ namespace Content.Server.GameObjects.Components.Doors { if (IsBolted()) { - var notify = IoCManager.Resolve(); - notify.PopupMessage(Owner, eventArgs.User, + Owner.PopupMessage(eventArgs.User, Loc.GetString("The airlock's bolts prevent it from being forced!")); return false; } if (IsPowered()) { - var notify = IoCManager.Resolve(); - notify.PopupMessage(Owner, eventArgs.User, Loc.GetString("The powered motors block your efforts!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("The powered motors block your efforts!")); return false; } diff --git a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs index 78200dc785..473e55d68e 100644 --- a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs +++ b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs @@ -3,15 +3,18 @@ using System; using System.Linq; using System.Threading; using Content.Server.Atmos; +using System.Threading.Tasks; using Content.Server.GameObjects.Components.Access; using Content.Server.GameObjects.Components.Atmos; using Content.Server.GameObjects.Components.GUI; +using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems; using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Doors; +using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.GameObjects.Components.Movement; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; @@ -30,7 +33,7 @@ namespace Content.Server.GameObjects.Components.Doors { [RegisterComponent] [ComponentReference(typeof(IActivate))] - public class ServerDoorComponent : Component, IActivate, ICollideBehavior + public class ServerDoorComponent : Component, IActivate, ICollideBehavior, IInteractUsing { public override string Name => "Door"; @@ -46,7 +49,7 @@ namespace Content.Server.GameObjects.Components.Doors protected bool AutoClose = true; protected const float AutoCloseDelay = 5; protected float CloseSpeed = AutoCloseDelay; - + private CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); protected virtual TimeSpan CloseTimeOne => TimeSpan.FromSeconds(0.3f); @@ -63,11 +66,31 @@ namespace Content.Server.GameObjects.Components.Doors public bool Occludes => _occludes; + [ViewVariables] + public bool IsWeldedShut + { + get => _isWeldedShut; + set + { + if (_isWeldedShut == value) + { + return; + } + + _isWeldedShut = value; + SetAppearance(_isWeldedShut ? DoorVisualState.Welded : DoorVisualState.Closed); + } + } + private bool _isWeldedShut; + + private bool _canWeldShut = true; + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); serializer.DataField(ref _occludes, "occludes", true); + serializer.DataField(ref _isWeldedShut, "welded", false); } public override void OnRemove() @@ -103,7 +126,7 @@ namespace Content.Server.GameObjects.Components.Doors // Disabled because it makes it suck hard to walk through double doors. - if (entity.HasComponent()) + if (entity.HasComponent()) { if (!entity.TryGetComponent(out var mover)) return; @@ -132,7 +155,7 @@ namespace Content.Server.GameObjects.Components.Doors public virtual bool CanOpen() { - return true; + return !_isWeldedShut; } public virtual bool CanOpen(IEntity user) @@ -195,6 +218,7 @@ namespace Content.Server.GameObjects.Components.Doors return; } + _canWeldShut = false; State = DoorState.Opening; SetAppearance(DoorVisualState.Opening); if (_occludes && Owner.TryGetComponent(out OccluderComponent? occluder)) @@ -379,6 +403,7 @@ namespace Content.Server.GameObjects.Components.Doors await Timer.Delay(CloseTimeTwo, _cancellationTokenSource.Token); + _canWeldShut = true; State = DoorState.Closed; SetAppearance(DoorVisualState.Closed); }, _cancellationTokenSource.Token); @@ -388,7 +413,7 @@ namespace Content.Server.GameObjects.Components.Doors public virtual void Deny() { - if (State == DoorState.Open) + if (State == DoorState.Open || _isWeldedShut) { return; } @@ -429,5 +454,20 @@ namespace Content.Server.GameObjects.Components.Doors Closing, Opening, } + + public virtual async Task InteractUsing(InteractUsingEventArgs eventArgs) + { + if (!_canWeldShut) + return false; + + if (!eventArgs.Using.TryGetComponent(out WelderComponent? tool)) + return false; + + if (!await tool.UseTool(eventArgs.User, Owner, 3f, ToolQuality.Welding, 3f, () => _canWeldShut)) + return false; + + IsWeldedShut ^= true; + return true; + } } } diff --git a/Content.Server/GameObjects/Components/ExtinguisherCabinetComponent.cs b/Content.Server/GameObjects/Components/ExtinguisherCabinetComponent.cs new file mode 100644 index 0000000000..38640b766c --- /dev/null +++ b/Content.Server/GameObjects/Components/ExtinguisherCabinetComponent.cs @@ -0,0 +1,128 @@ +using System.Threading.Tasks; +using Content.Server.GameObjects.Components.GUI; +using Content.Server.GameObjects.Components.Items; +using Content.Server.GameObjects.Components.Items.Storage; +using Content.Server.Interfaces.GameObjects.Components.Items; +using Content.Shared.Audio; +using Content.Shared.GameObjects.Components; +using Content.Shared.Interfaces; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.Components.Container; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Localization; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components +{ + + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + public class ExtinguisherCabinetComponent : Component, IInteractUsing, IInteractHand, IActivate + { + public override string Name => "ExtinguisherCabinet"; + + private bool _opened = false; + private string _doorSound; + + [ViewVariables] protected ContainerSlot ItemContainer; + [ViewVariables] public string DoorSound => _doorSound; + + public override void Initialize() + { + base.Initialize(); + + ItemContainer = + ContainerManagerComponent.Ensure("extinguisher_cabinet", Owner, out _); + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _doorSound, "doorSound", "/Audio/Machines/machine_switch.ogg"); + } + + async Task IInteractUsing.InteractUsing(InteractUsingEventArgs eventArgs) + { + if (!_opened) + { + _opened = true; + ClickLatchSound(); + } + else + { + if (ItemContainer.ContainedEntity != null || !eventArgs.Using.HasComponent()) + { + return false; + } + var handsComponent = eventArgs.User.GetComponent(); + + if (!handsComponent.Drop(eventArgs.Using, ItemContainer)) + { + return false; + } + } + + UpdateVisuals(); + + return true; + } + + bool IInteractHand.InteractHand(InteractHandEventArgs eventArgs) + { + if (_opened) + { + if (ItemContainer.ContainedEntity == null) + { + _opened = false; + ClickLatchSound(); + } + else if (eventArgs.User.TryGetComponent(out HandsComponent hands)) + { + Owner.PopupMessage(eventArgs.User, + Loc.GetString("You take {0:extinguisherName} from the {1:cabinetName}", ItemContainer.ContainedEntity.Name, Owner.Name)); + hands.PutInHandOrDrop(ItemContainer.ContainedEntity.GetComponent()); + } + else if (ItemContainer.Remove(ItemContainer.ContainedEntity)) + { + ItemContainer.ContainedEntity.Transform.GridPosition = Owner.Transform.GridPosition; + } + } + else + { + _opened = true; + ClickLatchSound(); + } + + UpdateVisuals(); + + return true; + } + + void IActivate.Activate(ActivateEventArgs eventArgs) + { + _opened = !_opened; + ClickLatchSound(); + UpdateVisuals(); + } + + private void UpdateVisuals() + { + if (Owner.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(ExtinguisherCabinetVisuals.IsOpen, _opened); + appearance.SetData(ExtinguisherCabinetVisuals.ContainsExtinguisher, ItemContainer.ContainedEntity != null); + } + } + + private void ClickLatchSound() + { + EntitySystem.Get() // Don't have original click, this sounds close + .PlayFromEntity(DoorSound, Owner, AudioHelpers.WithVariation(0.15f)); + } + } +} diff --git a/Content.Server/GameObjects/Components/ExtinguisherCabinetFilledComponent.cs b/Content.Server/GameObjects/Components/ExtinguisherCabinetFilledComponent.cs new file mode 100644 index 0000000000..f9a861e238 --- /dev/null +++ b/Content.Server/GameObjects/Components/ExtinguisherCabinetFilledComponent.cs @@ -0,0 +1,19 @@ +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components +{ + [RegisterComponent] + public class ExtinguisherCabinetFilledComponent : ExtinguisherCabinetComponent + { + public override string Name => "ExtinguisherCabinetFilled"; + + public override void Initialize() + { + base.Initialize(); + + ItemContainer.Insert(Owner.EntityManager.SpawnEntity("FireExtinguisher", Owner.Transform.GridPosition)); + } + } +} diff --git a/Content.Server/GameObjects/Components/Fluids/CanSpillComponent.cs b/Content.Server/GameObjects/Components/Fluids/CanSpillComponent.cs index 24b56c876f..b14063b7a4 100644 --- a/Content.Server/GameObjects/Components/Fluids/CanSpillComponent.cs +++ b/Content.Server/GameObjects/Components/Fluids/CanSpillComponent.cs @@ -4,6 +4,7 @@ using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; namespace Content.Server.GameObjects.Components.Fluids { @@ -28,7 +29,7 @@ namespace Content.Server.GameObjects.Components.Fluids return; } - data.Text = "Spill liquid"; + data.Text = Loc.GetString("Spill liquid"); data.Visibility = solutionComponent.CurrentVolume > ReagentUnit.Zero ? VerbVisibility.Visible : VerbVisibility.Disabled; @@ -40,7 +41,7 @@ namespace Content.Server.GameObjects.Components.Fluids // Need this as when we split the component's owner may be deleted var entityLocation = component.Owner.Transform.GridPosition; var solution = solutionComponent.SplitSolution(solutionComponent.CurrentVolume); - SpillHelper.SpillAt(entityLocation, solution, "PuddleSmear"); + solution.SpillAt(entityLocation, "PuddleSmear"); } } } diff --git a/Content.Server/GameObjects/Components/Fluids/MopComponent.cs b/Content.Server/GameObjects/Components/Fluids/MopComponent.cs index 338af8611c..857b53399d 100644 --- a/Content.Server/GameObjects/Components/Fluids/MopComponent.cs +++ b/Content.Server/GameObjects/Components/Fluids/MopComponent.cs @@ -4,6 +4,7 @@ using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; @@ -68,7 +69,7 @@ namespace Content.Server.GameObjects.Components.Fluids void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { if (!Owner.TryGetComponent(out SolutionComponent? contents)) return; - if (!InteractionChecks.InRangeUnobstructed(eventArgs)) return; + if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return; if (CurrentVolume <= 0) { @@ -79,7 +80,7 @@ namespace Content.Server.GameObjects.Components.Fluids if (eventArgs.Target == null) { // Drop the liquid on the mop on to the ground - SpillHelper.SpillAt(eventArgs.ClickLocation, contents.SplitSolution(CurrentVolume), "PuddleSmear"); + contents.SplitSolution(CurrentVolume).SpillAt(eventArgs.ClickLocation, "PuddleSmear"); return; } @@ -115,7 +116,7 @@ namespace Content.Server.GameObjects.Components.Fluids if (puddleCleaned) //After cleaning the puddle, make a new puddle with solution from the mop as a "wet floor". Then evaporate it slowly. { - SpillHelper.SpillAt(eventArgs.ClickLocation, contents.SplitSolution(transferAmount), "PuddleSmear"); + contents.SplitSolution(transferAmount).SpillAt(eventArgs.ClickLocation, "PuddleSmear"); } else { diff --git a/Content.Server/GameObjects/Components/Fluids/PuddleComponent.cs b/Content.Server/GameObjects/Components/Fluids/PuddleComponent.cs index 8d28737c05..2ba084cef7 100644 --- a/Content.Server/GameObjects/Components/Fluids/PuddleComponent.cs +++ b/Content.Server/GameObjects/Components/Fluids/PuddleComponent.cs @@ -6,7 +6,9 @@ using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.Components.Movement; using Content.Shared.Chemistry; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Maps; using Content.Shared.Physics; +using Content.Shared.Utility; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; @@ -41,12 +43,13 @@ namespace Content.Server.GameObjects.Components.Fluids // Small puddles will evaporate after a set delay // TODO: 'leaves fluidtracks', probably in a separate component for stuff like gibb chunks?; - // TODO: Add stuff like slipping -> probably in a separate component (for stuff like bananas) // based on behaviour (e.g. someone being punched vs slashed with a sword would have different blood sprite) // to check for low volumes for evaporation or whatever [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; public override string Name => "Puddle"; @@ -63,7 +66,7 @@ namespace Content.Server.GameObjects.Components.Fluids get => _slipThreshold; set => _slipThreshold = value; } - private bool _slippery = false; + private float _evaporateTime; private string _spillSound; @@ -97,6 +100,8 @@ namespace Content.Server.GameObjects.Components.Fluids // Whether the underlying solution color should be used private bool _recolor; + private bool Slippery => Owner.TryGetComponent(out SlipperyComponent slippery) && slippery.Slippery; + /// public override void ExposeData(ObjectSerializer serializer) { @@ -107,7 +112,6 @@ namespace Content.Server.GameObjects.Components.Fluids serializer.DataField(ref _evaporateThreshold, "evaporate_threshold", ReagentUnit.New(20)); serializer.DataField(ref _spriteVariants, "variants", 1); serializer.DataField(ref _recolor, "recolor", false); - } public override void Initialize() @@ -131,8 +135,7 @@ namespace Content.Server.GameObjects.Components.Fluids // Random sprite state set server-side so it's consistent across all clients _spriteComponent = Owner.EnsureComponent(); - var robustRandom = IoCManager.Resolve(); - var randomVariant = robustRandom.Next(0, _spriteVariants - 1); + var randomVariant = _random.Next(0, _spriteVariants - 1); if (_spriteComponent.BaseRSIPath != null) { @@ -155,7 +158,7 @@ namespace Content.Server.GameObjects.Components.Fluids void IExamine.Examine(FormattedMessage message, bool inDetailsRange) { - if(_slippery) + if(Slippery) { message.AddText(Loc.GetString("It looks slippery.")); } @@ -246,15 +249,15 @@ namespace Content.Server.GameObjects.Components.Fluids private void UpdateSlip() { - if ((_slipThreshold == ReagentUnit.New(-1) || CurrentVolume < _slipThreshold) && Owner.TryGetComponent(out SlipperyComponent existingSlipperyComponent)) + if ((_slipThreshold == ReagentUnit.New(-1) || CurrentVolume < _slipThreshold) && + Owner.TryGetComponent(out SlipperyComponent oldSlippery)) { - Owner.RemoveComponent(); - _slippery = false; + oldSlippery.Slippery = false; } - else if (CurrentVolume >= _slipThreshold && !Owner.TryGetComponent(out SlipperyComponent newSlipperyComponent)) + else if (CurrentVolume >= _slipThreshold) { - Owner.AddComponent(); - _slippery = true; + var newSlippery = Owner.EnsureComponent(); + newSlippery.Slippery = true; } } @@ -337,43 +340,6 @@ namespace Content.Server.GameObjects.Components.Fluids } } - // TODO: Move the below to SnapGrid? - /// - /// Will yield a random direction until none are left - /// - /// - private static IEnumerable RandomDirections() - { - var directions = new[] - { - Direction.East, - Direction.SouthEast, - Direction.South, - Direction.SouthWest, - Direction.West, - Direction.NorthWest, - Direction.North, - Direction.NorthEast, - }; - - var robustRandom = IoCManager.Resolve(); - var n = directions.Length; - - while (n > 1) - { - n--; - var k = robustRandom.Next(n + 1); - var value = directions[k]; - directions[k] = directions[n]; - directions[n] = value; - } - - foreach (var direction in directions) - { - yield return direction; - } - } - /// /// Tries to get an adjacent coordinate to overflow to, unless it is blocked by a wall on the /// same tile or the tile is empty @@ -388,9 +354,13 @@ namespace Content.Server.GameObjects.Components.Fluids var mapGrid = _mapManager.GetGrid(Owner.Transform.GridID); + if (!Owner.Transform.GridPosition.Offset(direction).TryGetTileRef(out var tile)) + { + return false; + } + // If space return early, let that spill go out into the void - var tileRef = mapGrid.GetTileRef(Owner.Transform.GridPosition.Offset(direction.ToVec())); - if (tileRef.Tile.IsEmpty) + if (tile.Value.Tile.IsEmpty) { return false; } @@ -418,8 +388,7 @@ namespace Content.Server.GameObjects.Components.Fluids if (puddle == default) { var grid = _snapGrid.DirectionToGrid(direction); - var entityManager = IoCManager.Resolve(); - puddle = () => entityManager.SpawnEntity(Owner.Prototype.ID, grid).GetComponent(); + puddle = () => _entityManager.SpawnEntity(Owner.Prototype.ID, grid).GetComponent(); } return true; @@ -431,7 +400,7 @@ namespace Content.Server.GameObjects.Components.Fluids /// Enumerable of the puddles found or to be created private IEnumerable> GetAllAdjacentOverflow() { - foreach (var direction in RandomDirections()) + foreach (var direction in SharedDirectionExtensions.RandomDirections()) { if (TryGetAdjacentOverflow(direction, out var puddle)) { diff --git a/Content.Server/GameObjects/Components/Fluids/SpillExtensions.cs b/Content.Server/GameObjects/Components/Fluids/SpillExtensions.cs new file mode 100644 index 0000000000..5f9c45580f --- /dev/null +++ b/Content.Server/GameObjects/Components/Fluids/SpillExtensions.cs @@ -0,0 +1,128 @@ +#nullable enable +using System.Diagnostics.CodeAnalysis; +using Content.Shared.Chemistry; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Map; + +namespace Content.Server.GameObjects.Components.Fluids +{ + public static class SpillExtensions + { + /// + /// Spills the specified solution at the entity's location if possible. + /// + /// + /// The entity to use as a location to spill the solution at. + /// + /// Initial solution for the prototype. + /// The prototype to use. + /// Play the spill sound. + /// The puddle if one was created, null otherwise. + public static PuddleComponent? SpillAt(this Solution solution, IEntity entity, string prototype, bool sound = true) + { + var coordinates = entity.Transform.GridPosition; + return solution.SpillAt(coordinates, prototype, sound); + } + + /// + /// Spills the specified solution at the entity's location if possible. + /// + /// + /// The entity to use as a location to spill the solution at. + /// + /// Initial solution for the prototype. + /// The prototype to use. + /// The puddle if one was created, null otherwise. + /// Play the spill sound. + /// True if a puddle was created, false otherwise. + public static bool TrySpillAt(this Solution solution, IEntity entity, string prototype, [NotNullWhen(true)] out PuddleComponent? puddle, bool sound = true) + { + puddle = solution.SpillAt(entity, prototype, sound); + return puddle != null; + } + + /// + /// Spills solution at the specified grid coordinates. + /// + /// Initial solution for the prototype. + /// The coordinates to spill the solution at. + /// The prototype to use. + /// Whether or not to play the spill sound. + /// The puddle if one was created, null otherwise. + public static PuddleComponent? SpillAt(this Solution solution, GridCoordinates coordinates, string prototype, bool sound = true) + { + if (solution.TotalVolume == 0) + { + return null; + } + + var mapManager = IoCManager.Resolve(); + var entityManager = IoCManager.Resolve(); + var serverEntityManager = IoCManager.Resolve(); + + var mapGrid = mapManager.GetGrid(coordinates.GridID); + + // If space return early, let that spill go out into the void + var tileRef = mapGrid.GetTileRef(coordinates); + if (tileRef.Tile.IsEmpty) + { + return null; + } + + // Get normalized co-ordinate for spill location and spill it in the centre + // TODO: Does SnapGrid or something else already do this? + var spillTileMapGrid = mapManager.GetGrid(coordinates.GridID); + var spillTileRef = spillTileMapGrid.GetTileRef(coordinates).GridIndices; + var spillGridCoords = spillTileMapGrid.GridTileToLocal(spillTileRef); + + var spilt = false; + + foreach (var spillEntity in entityManager.GetEntitiesAt(spillTileMapGrid.ParentMapId, spillGridCoords.Position)) + { + if (!spillEntity.TryGetComponent(out PuddleComponent? puddleComponent)) + { + continue; + } + + if (!puddleComponent.TryAddSolution(solution, sound)) + { + continue; + } + + spilt = true; + break; + } + + // Did we add to an existing puddle + if (spilt) + { + return null; + } + + var puddle = serverEntityManager.SpawnEntity(prototype, spillGridCoords); + var newPuddleComponent = puddle.GetComponent(); + + newPuddleComponent.TryAddSolution(solution, sound); + + return newPuddleComponent; + } + + /// + /// Spills the specified solution at the entity's location if possible. + /// + /// The coordinates to spill the solution at. + /// Initial solution for the prototype. + /// The prototype to use. + /// The puddle if one was created, null otherwise. + /// Play the spill sound. + /// True if a puddle was created, false otherwise. + public static bool TrySpillAt(this Solution solution, GridCoordinates coordinates, string prototype, [NotNullWhen(true)] out PuddleComponent? puddle, bool sound = true) + { + puddle = solution.SpillAt(coordinates, prototype, sound); + return puddle != null; + } + } +} diff --git a/Content.Server/GameObjects/Components/Fluids/SpillHelper.cs b/Content.Server/GameObjects/Components/Fluids/SpillHelper.cs deleted file mode 100644 index e616a7f5f0..0000000000 --- a/Content.Server/GameObjects/Components/Fluids/SpillHelper.cs +++ /dev/null @@ -1,94 +0,0 @@ -#nullable enable -using Content.Shared.Chemistry; -using Robust.Server.Interfaces.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Map; -using Robust.Shared.IoC; -using Robust.Shared.Map; - -namespace Content.Server.GameObjects.Components.Fluids -{ - public static class SpillHelper - { - - /// - /// Spills the specified solution at the entity's location if possible. - /// - /// Entity location to spill at - /// Initial solution for the prototype - /// Prototype to use - /// Play the spill sound - internal static void SpillAt(IEntity entity, Solution solution, string prototype, bool sound = true) - { - var entityLocation = entity.Transform.GridPosition; - SpillAt(entityLocation, solution, prototype, sound); - } - - // Other functions will be calling this one - - /// - /// Spills solution at the specified grid co-ordinates - /// - /// - /// Initial solution for the prototype - /// Prototype to use - /// Play the spill sound - internal static PuddleComponent? SpillAt(GridCoordinates gridCoordinates, Solution solution, string prototype, bool sound = true) - { - if (solution.TotalVolume == 0) - { - return null; - } - - var mapManager = IoCManager.Resolve(); - var entityManager = IoCManager.Resolve(); - var serverEntityManager = IoCManager.Resolve(); - - var mapGrid = mapManager.GetGrid(gridCoordinates.GridID); - - // If space return early, let that spill go out into the void - var tileRef = mapGrid.GetTileRef(gridCoordinates); - if (tileRef.Tile.IsEmpty) - { - return null; - } - - // Get normalized co-ordinate for spill location and spill it in the centre - // TODO: Does SnapGrid or something else already do this? - var spillTileMapGrid = mapManager.GetGrid(gridCoordinates.GridID); - var spillTileRef = spillTileMapGrid.GetTileRef(gridCoordinates).GridIndices; - var spillGridCoords = spillTileMapGrid.GridTileToLocal(spillTileRef); - - var spilt = false; - - foreach (var spillEntity in entityManager.GetEntitiesAt(spillTileMapGrid.ParentMapId, spillGridCoords.Position)) - { - if (!spillEntity.TryGetComponent(out PuddleComponent? puddleComponent)) - { - continue; - } - - if (!puddleComponent.TryAddSolution(solution, sound)) - { - continue; - } - - spilt = true; - break; - } - - // Did we add to an existing puddle - if (spilt) - { - return null; - } - - var puddle = serverEntityManager.SpawnEntity(prototype, spillGridCoords); - var newPuddleComponent = puddle.GetComponent(); - newPuddleComponent.TryAddSolution(solution, sound); - return newPuddleComponent; - } - - } - -} diff --git a/Content.Server/GameObjects/Components/Fluids/SprayComponent.cs b/Content.Server/GameObjects/Components/Fluids/SprayComponent.cs index e10ae9c7df..598bb16a6a 100644 --- a/Content.Server/GameObjects/Components/Fluids/SprayComponent.cs +++ b/Content.Server/GameObjects/Components/Fluids/SprayComponent.cs @@ -1,6 +1,6 @@ using Content.Server.GameObjects.Components.Chemistry; -using Content.Server.Interfaces; using Content.Shared.Chemistry; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; @@ -17,7 +17,6 @@ namespace Content.Server.GameObjects.Components.Fluids [RegisterComponent] class SprayComponent : Component, IAfterInteract { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IServerEntityManager _serverEntityManager = default!; public override string Name => "Spray"; @@ -71,7 +70,7 @@ namespace Content.Server.GameObjects.Components.Fluids { if (CurrentVolume <= 0) { - _notifyManager.PopupMessage(Owner, eventArgs.User, Loc.GetString("It's empty!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("It's empty!")); return; } diff --git a/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs b/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs index bc58b80601..13353f664d 100644 --- a/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs @@ -3,12 +3,11 @@ using System.Collections.Generic; using System.Linq; using Content.Server.GameObjects.Components.Items.Clothing; using Content.Server.GameObjects.Components.Items.Storage; -using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems.Click; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects; using Content.Shared.GameObjects.Components.Inventory; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Robust.Server.GameObjects.Components.Container; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -29,7 +28,6 @@ namespace Content.Server.GameObjects.Components.GUI public class InventoryComponent : SharedInventoryComponent, IExAct, IEffectBlocker, IPressureProtection { [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; - [Dependency] private readonly IServerNotifyManager _serverNotifyManager = default!; [ViewVariables] private readonly Dictionary _slotContainers = new Dictionary(); @@ -432,7 +430,7 @@ namespace Content.Server.GameObjects.Components.GUI hands.PutInHand(clothing); if (reason != null) - _serverNotifyManager.PopupMessageCursor(Owner, reason); + Owner.PopupMessageCursor(reason); } } break; diff --git a/Content.Server/GameObjects/Components/GUI/StrippableComponent.cs b/Content.Server/GameObjects/Components/GUI/StrippableComponent.cs index fc54344448..d43600f803 100644 --- a/Content.Server/GameObjects/Components/GUI/StrippableComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/StrippableComponent.cs @@ -1,15 +1,14 @@ #nullable enable using System.Collections.Generic; -using System.Linq; using System.Threading; using Content.Server.GameObjects.Components.ActionBlocking; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.EntitySystems.DoAfter; -using Content.Server.Interfaces; using Content.Server.Utility; using Content.Shared.GameObjects.Components.GUI; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.Interfaces.GameObjects; @@ -17,7 +16,6 @@ using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.ViewVariables; using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines; @@ -27,11 +25,9 @@ namespace Content.Server.GameObjects.Components.GUI [RegisterComponent] public sealed class StrippableComponent : SharedStrippableComponent, IDragDrop { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - public const float StripDelay = 2f; - [ViewVariables] + [ViewVariables] private BoundUserInterface? UserInterface => Owner.GetUIOrNull(StrippingUiKey.Key); public override void Initialize() @@ -46,7 +42,7 @@ namespace Content.Server.GameObjects.Components.GUI Owner.EnsureComponent(); Owner.EnsureComponent(); Owner.EnsureComponent(); - + if (Owner.TryGetComponent(out CuffableComponent? cuffed)) { cuffed.OnCuffedStateChanged += UpdateSubscribed; @@ -104,7 +100,7 @@ namespace Content.Server.GameObjects.Components.GUI private Dictionary GetHandcuffs() { var dictionary = new Dictionary(); - + if (!Owner.TryGetComponent(out CuffableComponent? cuffed)) { return dictionary; @@ -173,13 +169,13 @@ namespace Content.Server.GameObjects.Components.GUI if (item == null) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("You aren't holding anything!")); + user.PopupMessageCursor(Loc.GetString("You aren't holding anything!")); return false; } if (!userHands.CanDrop(userHands.ActiveHand!)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("You can't drop that!")); + user.PopupMessageCursor(Loc.GetString("You can't drop that!")); return false; } @@ -188,13 +184,13 @@ namespace Content.Server.GameObjects.Components.GUI if (inventory.TryGetSlotItem(slot, out ItemComponent _)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} already {0:have} something there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} already {0:have} something there!", Owner)); return false; } if (!inventory.CanEquip(slot, item, false)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} cannot equip that there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} cannot equip that there!", Owner)); return false; } @@ -238,13 +234,13 @@ namespace Content.Server.GameObjects.Components.GUI if (item == null) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("You aren't holding anything!")); + user.PopupMessageCursor(Loc.GetString("You aren't holding anything!")); return false; } if (!userHands.CanDrop(userHands.ActiveHand!)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("You can't drop that!")); + user.PopupMessageCursor(Loc.GetString("You can't drop that!")); return false; } @@ -253,13 +249,13 @@ namespace Content.Server.GameObjects.Components.GUI if (hands.TryGetItem(hand, out var _)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} already {0:have} something there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} already {0:have} something there!", Owner)); return false; } if (!hands.CanPutInHand(item, hand, false)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} cannot put that there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} cannot put that there!", Owner)); return false; } @@ -304,13 +300,13 @@ namespace Content.Server.GameObjects.Components.GUI if (!inventory.TryGetSlotItem(slot, out ItemComponent itemToTake)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} {0:have} nothing there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} {0:have} nothing there!", Owner)); return false; } if (!inventory.CanUnequip(slot, false)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} cannot unequip that!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} cannot unequip that!", Owner)); return false; } @@ -355,13 +351,13 @@ namespace Content.Server.GameObjects.Components.GUI if (!hands.TryGetItem(hand, out var heldItem)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} {0:have} nothing there!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} {0:have} nothing there!", Owner)); return false; } if (!hands.CanDrop(hand, false)) { - _notifyManager.PopupMessageCursor(user, Loc.GetString("{0:They} cannot drop that!", Owner)); + user.PopupMessageCursor(Loc.GetString("{0:They} cannot drop that!", Owner)); return false; } diff --git a/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs b/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs index 3a766f985a..8ae70d4317 100644 --- a/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs +++ b/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs @@ -8,6 +8,7 @@ using Content.Server.Utility; using Content.Shared.GameObjects.Components.Gravity; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; @@ -111,9 +112,8 @@ namespace Content.Server.GameObjects.Components.Gravity breakable.FixAllDamage(); _intact = true; - var notifyManager = IoCManager.Resolve(); - - notifyManager.PopupMessage(Owner, eventArgs.User, Loc.GetString("You repair {0:theName} with {1:theName}", Owner, eventArgs.Using)); + Owner.PopupMessage(eventArgs.User, + Loc.GetString("You repair {0:theName} with {1:theName}", Owner, eventArgs.Using)); return true; } diff --git a/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs b/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs index 931b95288a..8383d5b157 100644 --- a/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs +++ b/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs @@ -2,11 +2,11 @@ using System; using System.Linq; using Content.Server.GameObjects.Components.Mobs; -using Content.Server.Interfaces; -using Content.Server.Mobs; +using Content.Server.GameObjects.EntitySystems; using Content.Server.Utility; using Content.Shared.GameObjects.Components.Instruments; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; @@ -15,6 +15,7 @@ using Robust.Server.Interfaces.Player; using Robust.Server.Player; using Robust.Shared.Enums; using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; @@ -36,7 +37,6 @@ namespace Content.Server.GameObjects.Components.Instruments IUse, IThrown { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; private static readonly TimeSpan OneSecAgo = TimeSpan.FromSeconds(-1); @@ -164,11 +164,11 @@ namespace Content.Server.GameObjects.Components.Instruments switch (_laggedBatches) { case (int) (MaxMidiLaggedBatches * (1 / 3d)) + 1: - _notifyManager.PopupMessage(Owner, InstrumentPlayer.AttachedEntity, + Owner.PopupMessage(InstrumentPlayer.AttachedEntity, "Your fingers are beginning to a cramp a little!"); break; case (int) (MaxMidiLaggedBatches * (2 / 3d)) + 1: - _notifyManager.PopupMessage(Owner, InstrumentPlayer.AttachedEntity, + Owner.PopupMessage(InstrumentPlayer.AttachedEntity, "Your fingers are seriously cramping up!"); break; } @@ -244,9 +244,12 @@ namespace Content.Server.GameObjects.Components.Instruments public void HandSelected(HandSelectedEventArgs eventArgs) { - var session = eventArgs.User?.GetComponent()?.playerSession; + if (eventArgs.User == null || !eventArgs.User.TryGetComponent(out BasicActorComponent? actor)) + return; - if (session == null) return; + var session = actor.playerSession; + + if (session.Status != SessionStatus.InGame) return; InstrumentPlayer = session; } @@ -323,12 +326,12 @@ namespace Content.Server.GameObjects.Components.Instruments } else { - StandingStateHelper.DropAllItemsInHands(mob, false); + EntitySystem.Get().DropAllItemsInHands(mob, false); } InstrumentPlayer = null; - _notifyManager.PopupMessage(Owner, mob, "Your fingers cramp up from playing!"); + Owner.PopupMessage(mob, "Your fingers cramp up from playing!"); } _timer += delta; diff --git a/Content.Server/GameObjects/Components/Interactable/ExpendableLightComponent.cs b/Content.Server/GameObjects/Components/Interactable/ExpendableLightComponent.cs new file mode 100644 index 0000000000..da34c87cb6 --- /dev/null +++ b/Content.Server/GameObjects/Components/Interactable/ExpendableLightComponent.cs @@ -0,0 +1,221 @@ + +using Content.Server.GameObjects.Components.Items.Clothing; +using Content.Server.GameObjects.Components.Items.Storage; +using Content.Server.GameObjects.Components.Sound; +using Content.Shared.GameObjects.Components; +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.EntitySystemMessages; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.ViewVariables; +using Robust.Shared.Audio; + +namespace Content.Server.GameObjects.Components.Interactable +{ + /// + /// Component that represents a handheld expendable light which can be activated and eventually dies over time. + /// + [RegisterComponent] + public class ExpendableLightComponent : SharedExpendableLightComponent, IUse + { + private static readonly AudioParams LoopedSoundParams = new AudioParams(0, 1, "Master", 62.5f, 1, AudioMixTarget.Stereo, true, 0.3f); + + /// + /// Status of light, whether or not it is emitting light. + /// + [ViewVariables] + public bool Activated => CurrentState == ExpendableLightState.Lit || CurrentState == ExpendableLightState.Fading; + + [ViewVariables] + private float _stateExpiryTime = default; + private AppearanceComponent _appearance = default; + + bool IUse.UseEntity(UseEntityEventArgs eventArgs) + { + return TryActivate(); + } + + public override void Initialize() + { + base.Initialize(); + + if (Owner.TryGetComponent(out var item)) + { + item.EquippedPrefix = "off"; + } + + CurrentState = ExpendableLightState.BrandNew; + Owner.EnsureComponent(); + Owner.TryGetComponent(out _appearance); + } + + /// + /// Enables the light if it is not active. Once active it cannot be turned off. + /// + private bool TryActivate() + { + if (!Activated) + { + if (Owner.TryGetComponent(out var item)) + { + item.EquippedPrefix = "on"; + } + + CurrentState = ExpendableLightState.Lit; + _stateExpiryTime = GlowDuration; + + UpdateSpriteAndSounds(Activated); + UpdateVisualizer(); + + return true; + } + + return false; + } + + private void UpdateVisualizer() + { + switch (CurrentState) + { + case ExpendableLightState.Lit: + _appearance.SetData(ExpendableLightVisuals.State, TurnOnBehaviourID); + break; + + case ExpendableLightState.Fading: + _appearance.SetData(ExpendableLightVisuals.State, FadeOutBehaviourID); + break; + + case ExpendableLightState.Dead: + _appearance.SetData(ExpendableLightVisuals.State, string.Empty); + break; + + default: + break; + } + } + + private void UpdateSpriteAndSounds(bool on) + { + if (Owner.TryGetComponent(out SpriteComponent sprite)) + { + switch (CurrentState) + { + case ExpendableLightState.Lit: + + if (LoopedSound != string.Empty && Owner.TryGetComponent(out var loopingSound)) + { + loopingSound.Play(LoopedSound, LoopedSoundParams); + } + + if (LitSound != string.Empty) + { + EntitySystem.Get().PlayFromEntity(LitSound, Owner); + } + + sprite.LayerSetVisible(1, true); + sprite.LayerSetState(2, IconStateLit); + sprite.LayerSetShader(2, "unshaded"); + break; + + case ExpendableLightState.Fading: + break; + + default: + case ExpendableLightState.Dead: + + if (DieSound != string.Empty) + { + EntitySystem.Get().PlayFromEntity(DieSound, Owner); + } + + if (LoopedSound != string.Empty && Owner.TryGetComponent(out var loopSound)) + { + loopSound.StopAllSounds(); + } + + sprite.LayerSetVisible(1, false); + sprite.LayerSetState(2, IconStateSpent); + sprite.LayerSetShader(2, "shaded"); + break; + } + } + + if (Owner.TryGetComponent(out ClothingComponent clothing)) + { + clothing.ClothingEquippedPrefix = on ? "Activated" : string.Empty; + } + } + + public void Update(float frameTime) + { + if (!Activated) return; + + _stateExpiryTime -= frameTime; + + if (_stateExpiryTime <= 0f) + { + switch (CurrentState) + { + case ExpendableLightState.Lit: + + CurrentState = ExpendableLightState.Fading; + _stateExpiryTime = FadeOutDuration; + + UpdateVisualizer(); + + break; + + default: + case ExpendableLightState.Fading: + + CurrentState = ExpendableLightState.Dead; + Owner.Name = SpentName; + Owner.Description = SpentDesc; + + UpdateSpriteAndSounds(Activated); + UpdateVisualizer(); + + if (Owner.TryGetComponent(out var item)) + { + item.EquippedPrefix = "off"; + } + + break; + } + } + } + + [Verb] + public sealed class ActivateVerb : Verb + { + protected override void GetData(IEntity user, ExpendableLightComponent component, VerbData data) + { + if (!ActionBlockerSystem.CanInteract(user)) + { + data.Visibility = VerbVisibility.Invisible; + return; + } + + if (component.CurrentState == ExpendableLightState.BrandNew) + { + data.Text = "Activate"; + data.Visibility = VerbVisibility.Visible; + } + else + { + data.Visibility = VerbVisibility.Invisible; + } + } + + protected override void Activate(IEntity user, ExpendableLightComponent component) + { + component.TryActivate(); + } + } + } +} diff --git a/Content.Server/GameObjects/Components/Interactable/HandheldLightComponent.cs b/Content.Server/GameObjects/Components/Interactable/HandheldLightComponent.cs index b2daa8e37c..588200c738 100644 --- a/Content.Server/GameObjects/Components/Interactable/HandheldLightComponent.cs +++ b/Content.Server/GameObjects/Components/Interactable/HandheldLightComponent.cs @@ -17,7 +17,6 @@ using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Utility; using Robust.Shared.ViewVariables; @@ -31,8 +30,6 @@ namespace Content.Server.GameObjects.Components.Interactable internal sealed class HandheldLightComponent : SharedHandheldLightComponent, IUse, IExamine, IInteractUsing, IMapInit { - [Dependency] private readonly ISharedNotifyManager _notifyManager = default!; - [ViewVariables(VVAccess.ReadWrite)] public float Wattage { get; set; } = 10; [ViewVariables] private ContainerSlot _cellContainer = default!; @@ -152,7 +149,7 @@ namespace Content.Server.GameObjects.Components.Interactable { EntitySystem.Get().PlayFromEntity("/Audio/Machines/button.ogg", Owner); - _notifyManager.PopupMessage(Owner, user, Loc.GetString("Cell missing...")); + Owner.PopupMessage(user, Loc.GetString("Cell missing...")); return; } @@ -162,7 +159,7 @@ namespace Content.Server.GameObjects.Components.Interactable if (Wattage > cell.CurrentCharge) { EntitySystem.Get().PlayFromEntity("/Audio/Machines/button.ogg", Owner); - _notifyManager.PopupMessage(Owner, user, Loc.GetString("Dead cell...")); + Owner.PopupMessage(user, Loc.GetString("Dead cell...")); return; } @@ -273,12 +270,12 @@ namespace Content.Server.GameObjects.Components.Interactable if (component.Cell == null) { - data.Text = "Eject cell (cell missing)"; + data.Text = Loc.GetString("Eject cell (cell missing)"); data.Visibility = VerbVisibility.Disabled; } else { - data.Text = "Eject cell"; + data.Text = Loc.GetString("Eject cell"); } } diff --git a/Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs b/Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs index 954c1ed639..d474db9f37 100644 --- a/Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs +++ b/Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Maps; +using Content.Shared.Utility; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; @@ -42,7 +43,7 @@ namespace Content.Server.GameObjects.Components.Interactable var coordinates = mapGrid.GridTileToLocal(tile.GridIndices); - if (!_entitySystemManager.GetEntitySystem().InRangeUnobstructed(user.Transform.MapPosition, coordinates.ToMap(_mapManager), ignoredEnt:user)) + if (!user.InRangeUnobstructed(coordinates, popup: true)) return; var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId]; @@ -52,12 +53,7 @@ namespace Content.Server.GameObjects.Components.Interactable if (_toolComponentNeeded && !await tool!.UseTool(user, null, 0f, ToolQuality.Prying)) return; - var underplating = _tileDefinitionManager["underplating"]; - mapGrid.SetTile(clickLocation, new Tile(underplating.TileId)); - - //Actually spawn the relevant tile item at the right position and give it some offset to the corner. - var tileItem = Owner.EntityManager.SpawnEntity(tileDef.ItemDropPrototypeName, coordinates); - tileItem.Transform.WorldPosition += (0.2f, 0.2f); + coordinates.PryTile(_mapManager, _tileDefinitionManager, Owner.EntityManager); } } } diff --git a/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs b/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs index 7f37eef2e5..68a347f8d5 100644 --- a/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs +++ b/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs @@ -5,13 +5,14 @@ using Content.Server.Atmos; using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameObjects; +using Content.Server.Utility; using Content.Shared.Chemistry; using Content.Shared.GameObjects; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Interfaces; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -30,7 +31,6 @@ namespace Content.Server.GameObjects.Components.Interactable public class WelderComponent : ToolComponent, IExamine, IUse, ISuicideAct, ISolutionChange { [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; public override string Name => "Welder"; public override uint? NetID => ContentNetIDs.WELDER; @@ -104,7 +104,7 @@ namespace Content.Server.GameObjects.Components.Interactable if (!CanWeld(DefaultFuelCost)) { - _notifyManager.PopupMessage(target, user, "Can't weld!"); + target.PopupMessage(user, "Can't weld!"); return false; } @@ -133,13 +133,13 @@ namespace Content.Server.GameObjects.Components.Interactable { if (!WelderLit) { - if(!silent) _notifyManager.PopupMessage(Owner, user, Loc.GetString("The welder is turned off!")); + if(!silent) Owner.PopupMessage(user, Loc.GetString("The welder is turned off!")); return false; } if (!CanWeld(value)) { - if(!silent) _notifyManager.PopupMessage(Owner, user, Loc.GetString("The welder does not have enough fuel for that!")); + if(!silent) Owner.PopupMessage(user, Loc.GetString("The welder does not have enough fuel for that!")); return false; } @@ -188,7 +188,7 @@ namespace Content.Server.GameObjects.Components.Interactable if (!CanLitWelder()) { - _notifyManager.PopupMessage(Owner, user, Loc.GetString("The welder has no fuel left!")); + Owner.PopupMessage(user, Loc.GetString("The welder has no fuel left!")); return false; } @@ -253,14 +253,31 @@ namespace Content.Server.GameObjects.Components.Interactable public SuicideKind Suicide(IEntity victim, IChatManager chat) { + string othersMessage; + string selfMessage; + if (TryWeld(5, victim, silent: true)) { PlaySoundCollection(WeldSoundCollection); - chat.EntityMe(victim, Loc.GetString("welds {0:their} every orifice closed! It looks like {0:theyre} trying to commit suicide!", victim)); + + othersMessage = + Loc.GetString( + "{0:theName} welds {0:their} every orifice closed! It looks like {0:theyre} trying to commit suicide!", + victim); + victim.PopupMessageOtherClients(othersMessage); + + selfMessage = Loc.GetString("You weld your every orifice closed!"); + victim.PopupMessage(selfMessage); + return SuicideKind.Heat; } - chat.EntityMe(victim, Loc.GetString("bashes {0:themselves} with the {1}!", victim, Owner.Name)); + othersMessage = Loc.GetString("{0:theName} bashes themselves with the unlit welding torch!", victim); + victim.PopupMessageOtherClients(othersMessage); + + selfMessage = Loc.GetString("You bash yourself with the unlit welding torch!"); + victim.PopupMessage(selfMessage); + return SuicideKind.Blunt; } diff --git a/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs b/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs index c8fe5b8b78..e0920a2773 100644 --- a/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Clothing/ClothingComponent.cs @@ -2,13 +2,12 @@ using System.Collections.Generic; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; -using Content.Server.Interfaces; using Content.Shared.GameObjects; using Content.Shared.GameObjects.Components.Items; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Serialization; using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines; @@ -20,8 +19,6 @@ namespace Content.Server.GameObjects.Components.Items.Clothing [ComponentReference(typeof(IItemComponent))] public class ClothingComponent : ItemComponent, IUse { - [Dependency] private readonly IServerNotifyManager _serverNotifyManager = default!; - public override string Name => "Clothing"; public override uint? NetID => ContentNetIDs.CLOTHING; @@ -112,7 +109,7 @@ namespace Content.Server.GameObjects.Components.Items.Clothing if (!inv.Equip(slot, this, true, out var reason)) { if (reason != null) - _serverNotifyManager.PopupMessage(Owner, user, reason); + Owner.PopupMessage(user, reason); return false; } diff --git a/Content.Server/GameObjects/Components/Items/FireExtinguisherComponent.cs b/Content.Server/GameObjects/Components/Items/FireExtinguisherComponent.cs new file mode 100644 index 0000000000..540a922a26 --- /dev/null +++ b/Content.Server/GameObjects/Components/Items/FireExtinguisherComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.Prototypes; + +namespace Content.Server.GameObjects.Components.Items +{ + [RegisterComponent] + public class FireExtinguisherComponent : Component + { + public override string Name => "FireExtinguisher"; + } +} diff --git a/Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs b/Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs index 8321016565..d39515349f 100644 --- a/Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs +++ b/Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs @@ -2,6 +2,7 @@ using Content.Server.Utility; using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Maps; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; @@ -35,7 +36,7 @@ namespace Content.Server.GameObjects.Components.Items public void AfterInteract(AfterInteractEventArgs eventArgs) { - if (!InteractionChecks.InRangeUnobstructed(eventArgs)) return; + if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return; if (!Owner.TryGetComponent(out StackComponent stack)) return; var attacked = eventArgs.Target; diff --git a/Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs b/Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs index 3cb63d1aa2..728d5a6a09 100644 --- a/Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs +++ b/Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs @@ -1,10 +1,9 @@ using System; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -15,8 +14,6 @@ namespace Content.Server.GameObjects.Components.Items.RCD [RegisterComponent] public class RCDAmmoComponent : Component, IAfterInteract, IExamine { - [Dependency] private IServerNotifyManager _serverNotifyManager = default!; - public override string Name => "RCDAmmo"; //How much ammo we refill @@ -43,17 +40,16 @@ namespace Content.Server.GameObjects.Components.Items.RCD if (rcdComponent.maxAmmo - rcdComponent._ammo < refillAmmo) { - _serverNotifyManager.PopupMessage(rcdComponent.Owner, eventArgs.User, "The RCD is full!"); + rcdComponent.Owner.PopupMessage(eventArgs.User, Loc.GetString("The RCD is full!")); return; } rcdComponent._ammo = Math.Min(rcdComponent.maxAmmo, rcdComponent._ammo + refillAmmo); - _serverNotifyManager.PopupMessage(rcdComponent.Owner, eventArgs.User, "You refill the RCD."); + rcdComponent.Owner.PopupMessage(eventArgs.User, Loc.GetString("You refill the RCD.")); //Deleting a held item causes a lot of errors hands.Drop(Owner, false); Owner.Delete(); - } } } diff --git a/Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs b/Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs index 40f2b36722..b685db4f10 100644 --- a/Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs +++ b/Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs @@ -1,11 +1,11 @@ using System; using System.Threading; using Content.Server.GameObjects.EntitySystems.DoAfter; -using Content.Server.Interfaces; -using Content.Server.Utility; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Maps; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; @@ -29,7 +29,6 @@ namespace Content.Server.GameObjects.Components.Items.RCD [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IServerEntityManager _serverEntityManager = default!; - [Dependency] private readonly IServerNotifyManager _serverNotifyManager = default!; public override string Name => "RCD"; private RcdMode _mode = 0; //What mode are we on? Can be floors, walls, deconstruct. @@ -85,12 +84,12 @@ namespace Content.Server.GameObjects.Components.Items.RCD int mode = (int) _mode; //Firstly, cast our RCDmode mode to an int (enums are backed by ints anyway by default) mode = (++mode) % _modes.Length; //Then, do a rollover on the value so it doesnt hit an invalid state _mode = (RcdMode) mode; //Finally, cast the newly acquired int mode to an RCDmode so we can use it. - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"The RCD is now set to {this._mode} mode."); //Prints an overhead message above the RCD + Owner.PopupMessage(eventArgs.User, Loc.GetString("The RCD is now set to {0} mode.", _mode)); //Prints an overhead message above the RCD } public void Examine(FormattedMessage message, bool inDetailsRange) { - message.AddMarkup(Loc.GetString("It's currently on {0} mode, and holds {1} charges.",_mode.ToString(), this._ammo)); + message.AddMarkup(Loc.GetString("It's currently on {0} mode, and holds {1} charges.",_mode.ToString(), _ammo)); } public async void AfterInteract(AfterInteractEventArgs eventArgs) @@ -158,7 +157,7 @@ namespace Content.Server.GameObjects.Components.Items.RCD //Less expensive checks first. Failing those ones, we need to check that the tile isn't obstructed. if (_ammo <= 0) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"The RCD is out of ammo!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("The RCD is out of ammo!")); return false; } @@ -168,7 +167,7 @@ namespace Content.Server.GameObjects.Components.Items.RCD } var coordinates = mapGrid.GridTileToLocal(tile.GridIndices); - if (coordinates == GridCoordinates.InvalidGrid || !InteractionChecks.InRangeUnobstructed(eventArgs)) + if (coordinates == GridCoordinates.InvalidGrid || !eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { return false; } @@ -179,7 +178,7 @@ namespace Content.Server.GameObjects.Components.Items.RCD case RcdMode.Floors: if (!tile.Tile.IsEmpty) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"You can only build a floor on space!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You can only build a floor on space!")); return false; } @@ -194,13 +193,13 @@ namespace Content.Server.GameObjects.Components.Items.RCD //They tried to decon a turf but the turf is blocked if (eventArgs.Target == null && tile.IsBlockedTurf(true)) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"That tile is obstructed!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("That tile is obstructed!")); return false; } //They tried to decon a non-turf but it's not in the whitelist if (eventArgs.Target != null && !eventArgs.Target.TryGetComponent(out RCDDeconstructWhitelist rcd_decon)) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"You can't deconstruct that!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You can't deconstruct that!")); return false; } @@ -209,25 +208,25 @@ namespace Content.Server.GameObjects.Components.Items.RCD case RcdMode.Walls: if (tile.Tile.IsEmpty) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"Cannot build a wall on space!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You cannot build a wall on space!")); return false; } if (tile.IsBlockedTurf(true)) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"That tile is obstructed!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("That tile is obstructed!")); return false; } return true; case RcdMode.Airlock: if (tile.Tile.IsEmpty) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"Cannot build an airlock on space!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("Cannot build an airlock on space!")); return false; } if (tile.IsBlockedTurf(true)) { - _serverNotifyManager.PopupMessage(Owner, eventArgs.User, $"That tile is obstructed!"); + Owner.PopupMessage(eventArgs.User, Loc.GetString("That tile is obstructed!")); return false; } return true; diff --git a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs index ab4c181253..2e319fa31b 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs @@ -4,10 +4,7 @@ using System.Threading.Tasks; using Content.Server.GameObjects.Components.Body; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Interactable; -using Content.Server.GameObjects.Components.Mobs; -using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Interactable; -using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Storage; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; @@ -35,6 +32,8 @@ namespace Content.Server.GameObjects.Components.Items.Storage [ComponentReference(typeof(IStorageComponent))] public class EntityStorageComponent : Component, IActivate, IStorageComponent, IInteractUsing, IDestroyAct, IActionBlocker, IExAct { + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override string Name => "EntityStorage"; private const float MaxSize = 1.0f; // maximum width or height of an entity allowed inside the storage. @@ -301,14 +300,13 @@ namespace Content.Server.GameObjects.Components.Items.Storage case RelayMovementEntityMessage msg: if (msg.Entity.HasComponent()) { - var timing = IoCManager.Resolve(); - if (timing.CurTime < + if (_gameTiming.CurTime < _lastInternalOpenAttempt + InternalOpenAttemptDelay) { break; } - _lastInternalOpenAttempt = timing.CurTime; + _lastInternalOpenAttempt = _gameTiming.CurTime; TryOpenStorage(msg.Entity); } break; @@ -428,7 +426,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage return; } - data.Text = component.Open ? "Close" : "Open"; + data.Text = Loc.GetString(component.Open ? "Close" : "Open"); } void IExAct.OnExplosion(ExplosionEventArgs eventArgs) diff --git a/Content.Server/GameObjects/Components/Items/Storage/Fill/CustodialClosetFill.cs b/Content.Server/GameObjects/Components/Items/Storage/Fill/CustodialClosetFill.cs index db89fb1798..2138b1a780 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/Fill/CustodialClosetFill.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/Fill/CustodialClosetFill.cs @@ -13,7 +13,6 @@ namespace Content.Server.GameObjects.Components.Items.Storage.Fill void IMapInit.MapInit() { var storage = Owner.GetComponent(); - var random = IoCManager.Resolve(); void Spawn(string prototype) { diff --git a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs index 93260ae1bb..265d925ad1 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs @@ -8,6 +8,7 @@ using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -15,6 +16,7 @@ using Robust.Shared.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Items.Storage @@ -95,9 +97,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage return false; } - var itemPos = Owner.Transform.MapPosition; - - return InteractionChecks.InRangeUnobstructed(user, itemPos, ignoredEnt: Owner, ignoreInsideBlocker:true); + return user.InRangeUnobstructed(Owner, ignoreInsideBlocker: true, popup: true); } public bool InteractHand(InteractHandEventArgs eventArgs) @@ -122,7 +122,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage return; } - data.Text = "Pick Up"; + data.Text = Loc.GetString("Pick Up"); } protected override void Activate(IEntity user, ItemComponent component) diff --git a/Content.Server/GameObjects/Components/Items/Storage/SecureEntityStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/SecureEntityStorageComponent.cs index dcdab4725b..8b7f3b939c 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/SecureEntityStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/SecureEntityStorageComponent.cs @@ -126,8 +126,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage { if (!reader.IsAllowed(user)) { - IoCManager.Resolve() - .PopupMessage(Owner, user, Loc.GetString("Access denied")); + Owner.PopupMessage(user, Loc.GetString("Access denied")); return true; } } @@ -146,7 +145,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage return; } - data.Text = component.Locked ? Loc.GetString("Unlock") : Loc.GetString("Lock"); + data.Text = Loc.GetString(component.Locked ? "Unlock" : "Lock"); } protected override void Activate(IEntity user, SecureEntityStorageComponent component) diff --git a/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs index 719c361083..6b8acac68a 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs @@ -11,6 +11,7 @@ using Content.Shared.GameObjects.Components.Storage; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.EntitySystemMessages; @@ -405,9 +406,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage break; } - var storagePosition = Owner.Transform.MapPosition; - - if (!InteractionChecks.InRangeUnobstructed(player, storagePosition)) + if (!player.InRangeUnobstructed(Owner, popup: true)) { break; } diff --git a/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs b/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs index 21ef4a521a..56258a27f7 100644 --- a/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs +++ b/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs @@ -12,7 +12,6 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameObjects; using Content.Server.Utility; @@ -43,9 +42,8 @@ namespace Content.Server.GameObjects.Components.Kitchen { [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly RecipeManager _recipeManager = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; -#region YAMLSERIALIZE + #region YAMLSERIALIZE private int _cookTimeDefault; private int _cookTimeMultiplier; //For upgrades and stuff I guess? private string _badRecipeName = ""; @@ -204,8 +202,7 @@ namespace Content.Server.GameObjects.Components.Kitchen { if (!Powered) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("It has no power!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("It has no power!")); return false; } @@ -213,7 +210,7 @@ namespace Content.Server.GameObjects.Components.Kitchen if (itemEntity == null) { - eventArgs.User.PopupMessage(eventArgs.User, Loc.GetString("You have no active hand!")); + eventArgs.User.PopupMessage(Loc.GetString("You have no active hand!")); return false; } @@ -234,8 +231,7 @@ namespace Content.Server.GameObjects.Components.Kitchen var realTransferAmount = ReagentUnit.Min(attackPourable.TransferAmount, solution.EmptyVolume); if (realTransferAmount <= 0) //Special message if container is full { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("Container is full")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("Container is full")); return false; } @@ -246,15 +242,14 @@ namespace Content.Server.GameObjects.Components.Kitchen return false; } - _notifyManager.PopupMessage(Owner.Transform.GridPosition, eventArgs.User, - Loc.GetString("Transferred {0}u", removedSolution.TotalVolume)); + Owner.PopupMessage(eventArgs.User, Loc.GetString("Transferred {0}u", removedSolution.TotalVolume)); return true; } if (!itemEntity.TryGetComponent(typeof(ItemComponent), out var food)) { - _notifyManager.PopupMessage(Owner, eventArgs.User, "That won't work!"); + Owner.PopupMessage(eventArgs.User, "That won't work!"); return false; } @@ -498,7 +493,13 @@ namespace Content.Server.GameObjects.Components.Kitchen headCount++; } } - chat.EntityMe(victim, Loc.GetPluralString("is trying to cook {0:their} head!", "is trying to cook {0:their} heads!", headCount, victim)); + + var othersMessage = Loc.GetString("{0:theName} is trying to cook {0:their} head!", victim); + victim.PopupMessageOtherClients(othersMessage); + + var selfMessage = Loc.GetString("You cook your head!"); + victim.PopupMessage(selfMessage); + _currentCookTimerTime = 10; ClickSound(); _uiDirty = true; diff --git a/Content.Server/GameObjects/Components/LightBehaviourComponent.cs b/Content.Server/GameObjects/Components/LightBehaviourComponent.cs new file mode 100644 index 0000000000..0ab3b8951c --- /dev/null +++ b/Content.Server/GameObjects/Components/LightBehaviourComponent.cs @@ -0,0 +1,15 @@ + +using Robust.Shared.GameObjects; +using Content.Shared.GameObjects.Components; + +namespace Content.Server.GameObjects.Components +{ + /// + /// A component which applies a specific behaviour to a PointLightComponent on its owner. + /// + [RegisterComponent] + public class LightBehaviourComponent : SharedLightBehaviourComponent + { + + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/ISignalReceiver.cs b/Content.Server/GameObjects/Components/MachineLinking/ISignalReceiver.cs new file mode 100644 index 0000000000..78e032606f --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/ISignalReceiver.cs @@ -0,0 +1,14 @@ +namespace Content.Server.GameObjects.Components.MachineLinking +{ + public interface ISignalReceiver + { + void TriggerSignal(SignalState state); + } + + public enum SignalState + { + On, + Off, + Toggle + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/SignalButtonComponent.cs b/Content.Server/GameObjects/Components/MachineLinking/SignalButtonComponent.cs new file mode 100644 index 0000000000..4fc80c5902 --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/SignalButtonComponent.cs @@ -0,0 +1,40 @@ +using Content.Shared.Interfaces; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; + +namespace Content.Server.GameObjects.Components.MachineLinking +{ + [RegisterComponent] + public class SignalButtonComponent : Component, IActivate, IInteractHand + { + public override string Name => "SignalButton"; + + public void Activate(ActivateEventArgs eventArgs) + { + TransmitSignal(eventArgs.User); + } + + public bool InteractHand(InteractHandEventArgs eventArgs) + { + TransmitSignal(eventArgs.User); + return true; + } + + private void TransmitSignal(IEntity user) + { + if (!Owner.TryGetComponent(out var transmitter)) + { + return; + } + + if (transmitter.TransmitSignal(user, SignalState.Toggle)) + { + // Since the button doesn't have an animation, I'm going to use a popup message + Owner.PopupMessage(user, Loc.GetString("Click.")); + } + } + + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/SignalLinkerComponent.cs b/Content.Server/GameObjects/Components/MachineLinking/SignalLinkerComponent.cs new file mode 100644 index 0000000000..9a0acd7222 --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/SignalLinkerComponent.cs @@ -0,0 +1,21 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.MachineLinking +{ + [RegisterComponent] + public class SignalLinkerComponent : Component + { + public override string Name => "SignalLinker"; + + [ViewVariables] + public SignalTransmitterComponent Link { get; set; } + + public override void Initialize() + { + base.Initialize(); + + Link = null; + } + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/SignalReceiverComponent.cs b/Content.Server/GameObjects/Components/MachineLinking/SignalReceiverComponent.cs new file mode 100644 index 0000000000..fcd03af914 --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/SignalReceiverComponent.cs @@ -0,0 +1,118 @@ +using Content.Server.GameObjects.Components.Interactable; +using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.Interfaces; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Content.Server.GameObjects.Components.MachineLinking +{ + [RegisterComponent] + public class SignalReceiverComponent : Component, IInteractUsing + { + [Dependency] private readonly IMapManager _mapManager = default!; + + public override string Name => "SignalReceiver"; + + private List _transmitters; + + public override void Initialize() + { + base.Initialize(); + + _transmitters = new List(); + } + + public void DistributeSignal(SignalState state) + { + foreach (var comp in Owner.GetAllComponents()) + { + comp.TriggerSignal(state); + } + } + + public void Subscribe(SignalTransmitterComponent transmitter) + { + if (_transmitters.Contains(transmitter)) + { + return; + } + + transmitter.Subscribe(this); + _transmitters.Add(transmitter); + } + + public void Unsubscribe(SignalTransmitterComponent transmitter) + { + transmitter.Unsubscribe(this); + _transmitters.Remove(transmitter); + } + + /// + /// Subscribes/Unsubscribes a transmitter to this component. Returns whether it was successful. + /// + /// + /// + /// + public bool Interact(IEntity user, SignalTransmitterComponent transmitter) + { + if (transmitter == null) + { + user.PopupMessage(Loc.GetString("Signal not set.")); + return false; + } + + if (_transmitters.Contains(transmitter)) + { + Unsubscribe(transmitter); + Owner.PopupMessage(user, Loc.GetString("Unlinked.")); + return true; + } + + if (transmitter.Range > 0 && !Owner.Transform.GridPosition.InRange(_mapManager, transmitter.Owner.Transform.GridPosition, transmitter.Range)) + { + Owner.PopupMessage(user, Loc.GetString("Out of range.")); + return false; + } + + Subscribe(transmitter); + Owner.PopupMessage(user, Loc.GetString("Linked!")); + return true; + } + + public async Task InteractUsing(InteractUsingEventArgs eventArgs) + { + if (!eventArgs.Using.TryGetComponent(out var tool)) + return false; + + if (tool.HasQuality(ToolQuality.Multitool) + && eventArgs.Using.TryGetComponent(out var linker)) + { + return Interact(eventArgs.User, linker.Link); + } + + return false; + } + + protected override void Shutdown() + { + base.Shutdown(); + + foreach (var transmitter in _transmitters) + { + if (transmitter.Deleted) + { + continue; + } + + transmitter.Unsubscribe(this); + } + _transmitters.Clear(); + } + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/SignalSwitchComponent.cs b/Content.Server/GameObjects/Components/MachineLinking/SignalSwitchComponent.cs new file mode 100644 index 0000000000..6ad3734f3c --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/SignalSwitchComponent.cs @@ -0,0 +1,87 @@ +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; +using Robust.Shared.Serialization; + +namespace Content.Server.GameObjects.Components.MachineLinking +{ + [RegisterComponent] + public class SignalSwitchComponent : Component, IInteractHand, IActivate + { + public override string Name => "SignalSwitch"; + + private bool _on; + + public override void Initialize() + { + base.Initialize(); + + UpdateSprite(); + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _on, "on", true); + } + + public void Activate(ActivateEventArgs eventArgs) + { + TransmitSignal(eventArgs.User); + } + + public bool InteractHand(InteractHandEventArgs eventArgs) + { + TransmitSignal(eventArgs.User); + return true; + } + + public void TransmitSignal(IEntity user) + { + _on = !_on; + + UpdateSprite(); + + if (!Owner.TryGetComponent(out var transmitter)) + { + return; + } + + transmitter.TransmitSignal(user, _on ? SignalState.On : SignalState.Off); + } + + private void UpdateSprite() + { + if (Owner.TryGetComponent(out var sprite)) + { + sprite.LayerSetState(0, _on ? "on" : "off"); + } + } + + [Verb] + private sealed class ToggleSwitchVerb : Verb + { + protected override void Activate(IEntity user, SignalSwitchComponent component) + { + component.TransmitSignal(user); + } + + protected override void GetData(IEntity user, SignalSwitchComponent component, VerbData data) + { + if (!ActionBlockerSystem.CanInteract(user)) + { + data.Visibility = VerbVisibility.Invisible; + return; + } + + data.Text = Loc.GetString("Toggle Switch"); + data.Visibility = VerbVisibility.Visible; + } + } + } +} diff --git a/Content.Server/GameObjects/Components/MachineLinking/SignalTransmitterComponent.cs b/Content.Server/GameObjects/Components/MachineLinking/SignalTransmitterComponent.cs new file mode 100644 index 0000000000..d2df05bc3d --- /dev/null +++ b/Content.Server/GameObjects/Components/MachineLinking/SignalTransmitterComponent.cs @@ -0,0 +1,166 @@ +using Content.Server.GameObjects.Components.Interactable; +using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.Interfaces; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Content.Server.GameObjects.Components.MachineLinking +{ + [RegisterComponent] + public class SignalTransmitterComponent : Component, IInteractUsing + { + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; + + public override string Name => "SignalTransmitter"; + + private List _unresolvedReceivers; + private List _receivers; + [ViewVariables] private float _range; + + /// + /// 0 is unlimited range + /// + public float Range { get => _range; private set => _range = value; } + + public override void Initialize() + { + base.Initialize(); + + _receivers = new List(); + + if (_unresolvedReceivers != null) + { + foreach (var receiver in _unresolvedReceivers) + { + receiver.Subscribe(this); + } + _unresolvedReceivers = null; + } + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _range, "range", 10); + if (serializer.Reading) + { + if (!serializer.TryReadDataField("signalReceivers", out List entityUids)) + { + return; + } + + _unresolvedReceivers = new List(); + foreach (var entityUid in entityUids) + { + if (!_entityManager.TryGetEntity(entityUid, out var entity) + || !entity.TryGetComponent(out var receiver)) + { + continue; + } + + _unresolvedReceivers.Add(receiver); + } + } + else if (serializer.Writing) + { + var entityList = new List(); + foreach (var receiver in _receivers) + { + if (receiver.Deleted) + { + continue; + } + + entityList.Add(receiver.Owner.Uid); + } + + serializer.DataWriteFunction("signalReceivers", null, () => entityList); + } + } + + public bool TransmitSignal(IEntity user, SignalState state) + { + if (_receivers.Count == 0) + { + Owner.PopupMessage(user, Loc.GetString("No receivers connected.")); + return false; + } + + foreach (var receiver in _receivers) + { + if (Range > 0 && !Owner.Transform.GridPosition.InRange(_mapManager, receiver.Owner.Transform.GridPosition, Range)) + { + continue; + } + + receiver.DistributeSignal(state); + } + return true; + } + + public void Subscribe(SignalReceiverComponent receiver) + { + if (_receivers.Contains(receiver)) + { + return; + } + + _receivers.Add(receiver); + } + + public void Unsubscribe(SignalReceiverComponent receiver) + { + _receivers.Remove(receiver); + } + + public SignalTransmitterComponent GetSignal(IEntity user) + { + if (user != null) + { + Owner.PopupMessage(user, Loc.GetString("Signal fetched.")); + } + + return this; + } + + public async Task InteractUsing(InteractUsingEventArgs eventArgs) + { + if (!eventArgs.Using.TryGetComponent(out var tool)) + return false; + + if (tool.HasQuality(ToolQuality.Multitool) + && eventArgs.Using.TryGetComponent(out var linker)) + { + linker.Link = GetSignal(eventArgs.User); + } + + return false; + } + + protected override void Shutdown() + { + base.Shutdown(); + + foreach (var receiver in _receivers) + { + if (receiver.Deleted) + { + continue; + } + + receiver.Unsubscribe(this); + } + _receivers.Clear(); + } + } +} diff --git a/Content.Server/GameObjects/Components/Medical/CloningPodComponent.cs b/Content.Server/GameObjects/Components/Medical/CloningPodComponent.cs new file mode 100644 index 0000000000..4eefd651e3 --- /dev/null +++ b/Content.Server/GameObjects/Components/Medical/CloningPodComponent.cs @@ -0,0 +1,235 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Content.Server.GameObjects.Components.Mobs; +using Content.Server.GameObjects.Components.Observer; +using Content.Server.GameObjects.Components.Power.ApcNetComponents; +using Content.Server.GameObjects.EntitySystems; +using Content.Server.Interfaces; +using Content.Server.Mobs; +using Content.Server.Utility; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Medical; +using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Preferences; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.Components.Container; +using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.Interfaces.GameObjects; +using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using Robust.Shared.Network; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Medical +{ + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + public class CloningPodComponent : SharedCloningPodComponent, IActivate + { + [Dependency] private readonly IServerPreferencesManager _prefsManager = null!; + [Dependency] private readonly IEntityManager _entityManager = null!; + [Dependency] private readonly IPlayerManager _playerManager = null!; + + [ViewVariables] + private bool Powered => !Owner.TryGetComponent(out PowerReceiverComponent? receiver) || receiver.Powered; + + [ViewVariables] + private BoundUserInterface? UserInterface => + Owner.GetUIOrNull(CloningPodUIKey.Key); + + private ContainerSlot _bodyContainer = default!; + private Mind? _capturedMind; + private CloningPodStatus _status; + private float _cloningProgress = 0; + private float _cloningTime; + + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref _cloningTime, "cloningTime", 10f); + } + + public override void Initialize() + { + base.Initialize(); + if (UserInterface != null) + { + UserInterface.OnReceiveMessage += OnUiReceiveMessage; + } + + _bodyContainer = ContainerManagerComponent.Ensure($"{Name}-bodyContainer", Owner); + + //TODO: write this so that it checks for a change in power events for GORE POD cases + var newState = GetUserInterfaceState(); + UserInterface?.SetState(newState); + + UpdateUserInterface(); + + Owner.EntityManager.EventBus.SubscribeEvent(EventSource.Local, this, + HandleGhostReturn); + } + + public void Update(float frametime) + { + if (_bodyContainer.ContainedEntity != null && + Powered) + { + _cloningProgress += frametime; + _cloningProgress = MathHelper.Clamp(_cloningProgress, 0f, _cloningTime); + } + + if (_cloningProgress >= _cloningTime && + _bodyContainer.ContainedEntity != null && + _capturedMind?.Session.AttachedEntity == _bodyContainer.ContainedEntity && + Powered) + { + _bodyContainer.Remove(_bodyContainer.ContainedEntity); + _capturedMind = null; + _cloningProgress = 0f; + + _status = CloningPodStatus.Idle; + UpdateAppearance(); + } + + UpdateUserInterface(); + } + + public override void OnRemove() + { + if (UserInterface != null) + { + UserInterface.OnReceiveMessage -= OnUiReceiveMessage; + } + + Owner.EntityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + + base.OnRemove(); + } + + private void UpdateUserInterface() + { + if (!Powered) return; + + UserInterface?.SetState(GetUserInterfaceState()); + } + + private CloningPodBoundUserInterfaceState GetUserInterfaceState() + { + return new CloningPodBoundUserInterfaceState(CloningSystem.getIdToUser(), _cloningProgress, + (_status == CloningPodStatus.Cloning)); + } + + private void UpdateAppearance() + { + if (Owner.TryGetComponent(out AppearanceComponent? appearance)) + { + appearance.SetData(CloningPodVisuals.Status, _status); + } + } + + public void Activate(ActivateEventArgs eventArgs) + { + if (!Powered || + !eventArgs.User.TryGetComponent(out IActorComponent? actor)) + { + return; + } + + UserInterface?.Open(actor.playerSession); + } + + private async void OnUiReceiveMessage(ServerBoundUserInterfaceMessage obj) + { + if (!(obj.Message is CloningPodUiButtonPressedMessage message)) return; + + switch (message.Button) + { + case UiButton.Clone: + + if (message.ScanId == null) return; + + if (_bodyContainer.ContainedEntity != null || + !CloningSystem.Minds.TryGetValue(message.ScanId.Value, out var mind)) + { + return; + } + + var dead = + mind.OwnedEntity.TryGetComponent(out var damageable) && + damageable.CurrentDamageState == DamageState.Dead; + if (!dead) return; + + + var mob = _entityManager.SpawnEntity("HumanMob_Content", Owner.Transform.MapPosition); + var client = _playerManager + .GetPlayersBy(x => x.SessionId == mind.SessionId).First(); + mob.GetComponent() + .UpdateFromProfile(GetPlayerProfileAsync(client.Name).Result); + mob.Name = GetPlayerProfileAsync(client.Name).Result.Name; + + _bodyContainer.Insert(mob); + _capturedMind = mind; + + Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, + new CloningStartedMessage(_capturedMind)); + _status = CloningPodStatus.NoMind; + UpdateAppearance(); + + break; + + case UiButton.Eject: + if (_bodyContainer.ContainedEntity == null || _cloningProgress < _cloningTime) break; + + _bodyContainer.Remove(_bodyContainer.ContainedEntity!); + _capturedMind = null; + _cloningProgress = 0f; + _status = CloningPodStatus.Idle; + UpdateAppearance(); + break; + + default: + throw new ArgumentOutOfRangeException(); + } + } + + public class CloningStartedMessage : EntitySystemMessage + { + public CloningStartedMessage(Mind capturedMind) + { + CapturedMind = capturedMind; + } + + public Mind CapturedMind { get; } + } + + + private async Task GetPlayerProfileAsync(string username) + { + return (HumanoidCharacterProfile) (await _prefsManager.GetPreferencesAsync(username)) + .SelectedCharacter; + } + + private void HandleGhostReturn(GhostComponent.GhostReturnMessage message) + { + if (message.Sender == _capturedMind) + { + //If the captured mind is in a ghost, we want to get rid of it. + _capturedMind.VisitingEntity?.Delete(); + + //Transfer the mind to the new mob + _capturedMind.TransferTo(_bodyContainer.ContainedEntity); + + _status = CloningPodStatus.Cloning; + UpdateAppearance(); + } + } + } +} diff --git a/Content.Server/GameObjects/Components/Medical/HealingComponent.cs b/Content.Server/GameObjects/Components/Medical/HealingComponent.cs index f89e4a5508..ea1eb95f89 100644 --- a/Content.Server/GameObjects/Components/Medical/HealingComponent.cs +++ b/Content.Server/GameObjects/Components/Medical/HealingComponent.cs @@ -1,9 +1,11 @@ using System.Collections.Generic; +using Content.Server.GameObjects.Components.Body; using Content.Server.GameObjects.Components.Stack; using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; @@ -32,7 +34,7 @@ namespace Content.Server.GameObjects.Components.Medical return; } - if (!eventArgs.Target.TryGetComponent(out IBodyManagerComponent body)) + if (!eventArgs.Target.TryGetComponent(out ISharedBodyManagerComponent body)) { return; } @@ -42,18 +44,10 @@ namespace Content.Server.GameObjects.Components.Medical return; } - if (eventArgs.User != eventArgs.Target) + if (eventArgs.User != eventArgs.Target && + !eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { - var interactionSystem = EntitySystem.Get(); - var from = eventArgs.User.Transform.MapPosition; - var to = eventArgs.Target.Transform.MapPosition; - bool Ignored(IEntity entity) => entity == eventArgs.User || entity == eventArgs.Target; - var inRange = interactionSystem.InRangeUnobstructed(from, to, predicate: Ignored); - - if (!inRange) - { - return; - } + return; } if (Owner.TryGetComponent(out StackComponent stack) && diff --git a/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs b/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs index cb2a11fb40..5a297b71c2 100644 --- a/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs +++ b/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs @@ -1,9 +1,14 @@ #nullable enable using System; using System.Collections.Generic; +using System.Linq; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; +using Content.Server.Players; using Content.Server.Utility; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Medical; using Content.Shared.GameObjects.EntitySystems; @@ -13,21 +18,24 @@ using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.Container; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.Interfaces.GameObjects; +using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Maths; -using Content.Shared.Damage; +using Robust.Shared.IoC; using Robust.Shared.Localization; +using Robust.Shared.Maths; using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Medical { [RegisterComponent] [ComponentReference(typeof(IActivate))] - public class MedicalScannerComponent : SharedMedicalScannerComponent, IActivate + public class MedicalScannerComponent : SharedMedicalScannerComponent, IActivate, IDragDropOn { private ContainerSlot _bodyContainer = default!; private readonly Vector2 _ejectOffset = new Vector2(-0.5f, 0f); + + [Dependency] private readonly IPlayerManager _playerManager = null!; public bool IsOccupied => _bodyContainer.ContainedEntity != null; [ViewVariables] @@ -68,13 +76,12 @@ namespace Content.Server.GameObjects.Components.Medical if (Owner.TryGetComponent(out AppearanceComponent? appearance)) { appearance?.SetData(MedicalScannerVisuals.Status, MedicalScannerStatus.Open); - }; + } return EmptyUIState; } - if (!body.TryGetComponent(out IDamageableComponent? damageable) || - damageable.CurrentDamageState == DamageState.Dead) + if (!body.TryGetComponent(out IDamageableComponent? damageable)) { return EmptyUIState; } @@ -82,7 +89,14 @@ namespace Content.Server.GameObjects.Components.Medical var classes = new Dictionary(damageable.DamageClasses); var types = new Dictionary(damageable.DamageTypes); - return new MedicalScannerBoundUserInterfaceState(body.Uid, classes, types, CloningSystem.HasUid(body.Uid)); + if (_bodyContainer.ContainedEntity?.Uid == null) + { + return new MedicalScannerBoundUserInterfaceState(body.Uid, classes, types, true); + } + + + return new MedicalScannerBoundUserInterfaceState(body.Uid, classes, types, + CloningSystem.HasDnaScan(_bodyContainer.ContainedEntity.GetComponent().Mind)); } private void UpdateUserInterface() @@ -207,22 +221,41 @@ namespace Content.Server.GameObjects.Components.Medical private void OnUiReceiveMessage(ServerBoundUserInterfaceMessage obj) { - if (!(obj.Message is UiButtonPressedMessage message)) - { - return; - } + if (!(obj.Message is UiButtonPressedMessage message)) return; switch (message.Button) { case UiButton.ScanDNA: if (_bodyContainer.ContainedEntity != null) { - CloningSystem.AddToScannedUids(_bodyContainer.ContainedEntity.Uid); + //TODO: Show a 'ERROR: Body is completely devoid of soul' if no Mind owns the entity. + CloningSystem.AddToDnaScans(_playerManager + .GetPlayersBy(playerSession => + { + var mindOwnedMob = playerSession.ContentData()?.Mind?.OwnedEntity; + + return mindOwnedMob != null && mindOwnedMob == + _bodyContainer.ContainedEntity; + }).Single() + .ContentData() + ?.Mind); } + break; default: throw new ArgumentOutOfRangeException(); } } + + public bool CanDragDropOn(DragDropEventArgs eventArgs) + { + return eventArgs.Dropped.HasComponent(); + } + + public bool DragDropOn(DragDropEventArgs eventArgs) + { + _bodyContainer.Insert(eventArgs.Dropped); + return true; + } } } diff --git a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs index b5f9eba7e1..9c199a2cd9 100644 --- a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs @@ -1,9 +1,16 @@ #nullable enable +using System; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Medical; using Content.Server.GameObjects.Components.Observer; using Content.Server.Interfaces.GameTicking; using Content.Server.Mobs; +using Content.Server.Utility; +using Content.Shared.GameObjects.Components; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.EntitySystems; +using Robust.Server.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; @@ -14,6 +21,7 @@ using Robust.Shared.Serialization; using Robust.Shared.Timers; using Robust.Shared.Utility; using Robust.Shared.ViewVariables; +using Serilog.Debugging; namespace Content.Server.GameObjects.Components.Mobs { @@ -50,6 +58,45 @@ namespace Content.Server.GameObjects.Components.Mobs set => _showExamineInfo = value; } + [ViewVariables] + private BoundUserInterface? UserInterface => + Owner.GetUIOrNull(SharedAcceptCloningComponent.AcceptCloningUiKey.Key); + + + public override void Initialize() + { + base.Initialize(); + Owner.EntityManager.EventBus.SubscribeEvent( + EventSource.Local, this, + HandleCloningStartedMessage); + + if (UserInterface != null) + { + UserInterface.OnReceiveMessage += OnUiAcceptCloningMessage; + } + } + + private void HandleCloningStartedMessage(CloningPodComponent.CloningStartedMessage ev) + { + if (ev.CapturedMind == Mind) + { + UserInterface?.Open(Mind.Session); + } + } + + private void OnUiAcceptCloningMessage(ServerBoundUserInterfaceMessage obj) + { + if (!(obj.Message is SharedAcceptCloningComponent.UiButtonPressedMessage message)) return; + Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new GhostComponent.GhostReturnMessage(Mind)); + } + + public override void OnRemove() + { + base.OnRemove(); + Owner.EntityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + if (UserInterface != null) UserInterface.OnReceiveMessage -= OnUiAcceptCloningMessage; + } + /// /// Don't call this unless you know what the hell you're doing. /// Use instead. @@ -133,13 +180,19 @@ namespace Content.Server.GameObjects.Components.Mobs if (!HasMind) { message.AddMarkup(!dead - ? $"[color=red]" + Loc.GetString("{0:They} {0:are} totally catatonic. The stresses of life in deep-space must have been too much for {0:them}. Any recovery is unlikely.", Owner) + "[/color]" + ? $"[color=red]" + + Loc.GetString( + "{0:They} {0:are} totally catatonic. The stresses of life in deep-space must have been too much for {0:them}. Any recovery is unlikely.", + Owner) + "[/color]" : $"[color=purple]" + Loc.GetString("{0:Their} soul has departed.", Owner) + "[/color]"); } else if (Mind?.Session == null) { - if(!dead) - message.AddMarkup("[color=yellow]" + Loc.GetString("{0:They} {0:have} a blank, absent-minded stare and appears completely unresponsive to anything. {0:They} may snap out of it soon.", Owner) + "[/color]"); + if (!dead) + message.AddMarkup("[color=yellow]" + + Loc.GetString( + "{0:They} {0:have} a blank, absent-minded stare and appears completely unresponsive to anything. {0:They} may snap out of it soon.", + Owner) + "[/color]"); } } } diff --git a/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs b/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs deleted file mode 100644 index beb3bfa2d3..0000000000 --- a/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs +++ /dev/null @@ -1,513 +0,0 @@ -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Body; -using Content.Server.GameObjects.Components.Damage; -using Content.Server.Mobs; -using Content.Shared.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Mobs; -using Content.Shared.GameObjects.EntitySystems; -using Robust.Server.GameObjects; -using Robust.Shared.GameObjects; -using Robust.Shared.GameObjects.Components; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.GameObjects.Components.Mobs -{ - /// - /// When attacked to an , this component will handle critical and death behaviors - /// for mobs. - /// Additionally, it handles sending effects to clients (such as blur effect for unconsciousness) and managing the - /// health HUD. - /// - [RegisterComponent] - internal class MobStateManagerComponent : Component, IOnHealthChangedBehavior, IActionBlocker - { - private readonly Dictionary _behavior = new Dictionary - { - {DamageState.Alive, new NormalState()}, - {DamageState.Critical, new CriticalState()}, - {DamageState.Dead, new DeadState()} - }; - - public override string Name => "MobStateManager"; - - private DamageState _currentDamageState; - - public IMobState CurrentMobState { get; private set; } = new NormalState(); - - bool IActionBlocker.CanInteract() - { - return CurrentMobState.CanInteract(); - } - - bool IActionBlocker.CanMove() - { - return CurrentMobState.CanMove(); - } - - bool IActionBlocker.CanUse() - { - return CurrentMobState.CanUse(); - } - - bool IActionBlocker.CanThrow() - { - return CurrentMobState.CanThrow(); - } - - bool IActionBlocker.CanSpeak() - { - return CurrentMobState.CanSpeak(); - } - - bool IActionBlocker.CanDrop() - { - return CurrentMobState.CanDrop(); - } - - bool IActionBlocker.CanPickup() - { - return CurrentMobState.CanPickup(); - } - - bool IActionBlocker.CanEmote() - { - return CurrentMobState.CanEmote(); - } - - bool IActionBlocker.CanAttack() - { - return CurrentMobState.CanAttack(); - } - - bool IActionBlocker.CanEquip() - { - return CurrentMobState.CanEquip(); - } - - bool IActionBlocker.CanUnequip() - { - return CurrentMobState.CanUnequip(); - } - - bool IActionBlocker.CanChangeDirection() - { - return CurrentMobState.CanChangeDirection(); - } - - public void OnHealthChanged(HealthChangedEventArgs e) - { - if (e.Damageable.CurrentDamageState != _currentDamageState) - { - _currentDamageState = e.Damageable.CurrentDamageState; - CurrentMobState.ExitState(Owner); - CurrentMobState = _behavior[_currentDamageState]; - CurrentMobState.EnterState(Owner); - } - - CurrentMobState.UpdateState(Owner); - } - - public override void Initialize() - { - base.Initialize(); - - _currentDamageState = DamageState.Alive; - CurrentMobState = _behavior[_currentDamageState]; - CurrentMobState.EnterState(Owner); - CurrentMobState.UpdateState(Owner); - } - - public override void OnRemove() - { - // TODO: Might want to add an OnRemove() to IMobState since those are where these components are being used - base.OnRemove(); - - if (Owner.TryGetComponent(out ServerStatusEffectsComponent status)) - { - status.RemoveStatusEffect(StatusEffect.Health); - } - - if (Owner.TryGetComponent(out ServerOverlayEffectsComponent overlay)) - { - overlay.ClearOverlays(); - } - } - } - - /// - /// Defines the blocking effects of an associated - /// (i.e. Normal, Critical, Dead) and what effects to apply upon entering or - /// exiting the state. - /// - public interface IMobState : IActionBlocker - { - /// - /// Called when this state is entered. - /// - void EnterState(IEntity entity); - - /// - /// Called when this state is left for a different state. - /// - void ExitState(IEntity entity); - - /// - /// Called when this state is updated. - /// - void UpdateState(IEntity entity); - } - - /// - /// The standard state an entity is in; no negative effects. - /// - public struct NormalState : IMobState - { - public void EnterState(IEntity entity) - { - if (entity.TryGetComponent(out AppearanceComponent appearance)) - { - appearance.SetData(DamageStateVisuals.State, DamageState.Alive); - } - - UpdateState(entity); - } - - public void ExitState(IEntity entity) { } - - public void UpdateState(IEntity entity) - { - if (!entity.TryGetComponent(out ServerStatusEffectsComponent status)) - { - return; - } - - if (!entity.TryGetComponent(out IDamageableComponent damageable)) - { - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/human0.png"); - return; - } - - // TODO - switch (damageable) - { - case RuinableComponent ruinable: - { - if (ruinable.DeadThreshold == null) - { - break; - } - - var modifier = (int) (ruinable.TotalDamage / (ruinable.DeadThreshold / 7f)); - - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); - - break; - } - case BodyManagerComponent body: - { - if (body.CriticalThreshold == null) - { - return; - } - - var modifier = (int) (body.TotalDamage / (body.CriticalThreshold / 7f)); - - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); - - break; - } - default: - { - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/human0.png"); - break; - } - } - } - - bool IActionBlocker.CanInteract() - { - return true; - } - - bool IActionBlocker.CanMove() - { - return true; - } - - bool IActionBlocker.CanUse() - { - return true; - } - - bool IActionBlocker.CanThrow() - { - return true; - } - - bool IActionBlocker.CanSpeak() - { - return true; - } - - bool IActionBlocker.CanDrop() - { - return true; - } - - bool IActionBlocker.CanPickup() - { - return true; - } - - bool IActionBlocker.CanEmote() - { - return true; - } - - bool IActionBlocker.CanAttack() - { - return true; - } - - bool IActionBlocker.CanEquip() - { - return true; - } - - bool IActionBlocker.CanUnequip() - { - return true; - } - - bool IActionBlocker.CanChangeDirection() - { - return true; - } - } - - /// - /// A state in which an entity is disabled from acting due to sufficient damage (considered unconscious). - /// - public struct CriticalState : IMobState - { - public void EnterState(IEntity entity) - { - if (entity.TryGetComponent(out AppearanceComponent appearance)) - { - appearance.SetData(DamageStateVisuals.State, DamageState.Critical); - } - - if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) - { - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/humancrit-0.png"); //Todo: combine humancrit-0 and humancrit-1 into a gif and display it - } - - if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) - { - overlay.AddOverlay(SharedOverlayID.GradientCircleMaskOverlay); - } - - if (entity.TryGetComponent(out StunnableComponent stun)) - { - stun.CancelAll(); - } - - StandingStateHelper.Down(entity); - } - - public void ExitState(IEntity entity) - { - StandingStateHelper.Standing(entity); - - if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) - { - overlay.ClearOverlays(); - } - } - - public void UpdateState(IEntity entity) - { - } - - bool IActionBlocker.CanInteract() - { - return false; - } - - bool IActionBlocker.CanMove() - { - return false; - } - - bool IActionBlocker.CanUse() - { - return false; - } - - bool IActionBlocker.CanThrow() - { - return false; - } - - bool IActionBlocker.CanSpeak() - { - return false; - } - - bool IActionBlocker.CanDrop() - { - return false; - } - - bool IActionBlocker.CanPickup() - { - return false; - } - - bool IActionBlocker.CanEmote() - { - return false; - } - - bool IActionBlocker.CanAttack() - { - return false; - } - - bool IActionBlocker.CanEquip() - { - return false; - } - - bool IActionBlocker.CanUnequip() - { - return false; - } - - bool IActionBlocker.CanChangeDirection() - { - return false; - } - } - - /// - /// The state representing a dead entity; allows for ghosting. - /// - public struct DeadState : IMobState - { - public void EnterState(IEntity entity) - { - if (entity.TryGetComponent(out AppearanceComponent appearance)) - { - appearance.SetData(DamageStateVisuals.State, DamageState.Dead); - } - - if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) - { - status.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/humandead.png"); - } - - if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlayComponent)) - { - overlayComponent.AddOverlay(SharedOverlayID.CircleMaskOverlay); - } - - if (entity.TryGetComponent(out StunnableComponent stun)) - { - stun.CancelAll(); - } - - StandingStateHelper.Down(entity); - - if (entity.TryGetComponent(out CollidableComponent collidable)) - { - collidable.CanCollide = false; - } - } - - public void ExitState(IEntity entity) - { - StandingStateHelper.Standing(entity); - - if (entity.TryGetComponent(out CollidableComponent collidable)) - { - collidable.CanCollide = true; - } - - if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) - { - overlay.ClearOverlays(); - } - } - - public void UpdateState(IEntity entity) - { - } - - bool IActionBlocker.CanInteract() - { - return false; - } - - bool IActionBlocker.CanMove() - { - return false; - } - - bool IActionBlocker.CanUse() - { - return false; - } - - bool IActionBlocker.CanThrow() - { - return false; - } - - bool IActionBlocker.CanSpeak() - { - return false; - } - - bool IActionBlocker.CanDrop() - { - return false; - } - - bool IActionBlocker.CanPickup() - { - return false; - } - - bool IActionBlocker.CanEmote() - { - return false; - } - - bool IActionBlocker.CanAttack() - { - return false; - } - - bool IActionBlocker.CanEquip() - { - return false; - } - - bool IActionBlocker.CanUnequip() - { - return false; - } - - bool IActionBlocker.CanChangeDirection() - { - return false; - } - } -} diff --git a/Content.Server/GameObjects/Components/Mobs/ServerStatusEffectsComponent.cs b/Content.Server/GameObjects/Components/Mobs/ServerStatusEffectsComponent.cs index 25ea510016..221246867e 100644 --- a/Content.Server/GameObjects/Components/Mobs/ServerStatusEffectsComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/ServerStatusEffectsComponent.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections.Generic; using Content.Server.GameObjects.Components.Buckle; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Movement; using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.Interfaces; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.Players; @@ -113,6 +114,9 @@ namespace Content.Server.GameObjects.Components.Mobs hands.StopPull(); break; + default: + player.PopupMessage(msg.Effect.ToString()); + break; } break; diff --git a/Content.Server/GameObjects/Components/Mobs/Speech/OwOAccentComponent.cs b/Content.Server/GameObjects/Components/Mobs/Speech/OwOAccentComponent.cs index 819e7c81cd..5b0aa232f0 100644 --- a/Content.Server/GameObjects/Components/Mobs/Speech/OwOAccentComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/Speech/OwOAccentComponent.cs @@ -9,12 +9,14 @@ namespace Content.Server.GameObjects.Components.Mobs.Speech [RegisterComponent] public class OwOAccentComponent : Component, IAccentComponent { + [Dependency] private readonly IRobustRandom _random; + public override string Name => "OwOAccent"; private static readonly IReadOnlyList Faces = new List{ " (・`ω´・)", " ;;w;;", " owo", " UwU", " >w<", " ^w^" }.AsReadOnly(); - private string RandomFace => IoCManager.Resolve().Pick(Faces); + private string RandomFace => _random.Pick(Faces); private static readonly Dictionary SpecialWords = new Dictionary { @@ -23,7 +25,7 @@ namespace Content.Server.GameObjects.Components.Mobs.Speech public string Accentuate(string message) { - foreach ((var word,var repl) in SpecialWords) + foreach (var (word, repl) in SpecialWords) { message = message.Replace(word, repl); } diff --git a/Content.Server/GameObjects/Components/Mobs/State/CriticalState.cs b/Content.Server/GameObjects/Components/Mobs/State/CriticalState.cs new file mode 100644 index 0000000000..4592a90f51 --- /dev/null +++ b/Content.Server/GameObjects/Components/Mobs/State/CriticalState.cs @@ -0,0 +1,51 @@ +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.GameObjects.Components.Mobs.State +{ + public class CriticalState : SharedCriticalState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Critical); + } + + if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/humancrit-0.png"); //Todo: combine humancrit-0 and humancrit-1 into a gif and display it + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.AddOverlay(SharedOverlayID.GradientCircleMaskOverlay); + } + + if (entity.TryGetComponent(out StunnableComponent stun)) + { + stun.CancelAll(); + } + + EntitySystem.Get().Down(entity); + } + + public override void ExitState(IEntity entity) + { + EntitySystem.Get().Standing(entity); + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + + public override void UpdateState(IEntity entity) { } + } +} diff --git a/Content.Server/GameObjects/Components/Mobs/State/DeadState.cs b/Content.Server/GameObjects/Components/Mobs/State/DeadState.cs new file mode 100644 index 0000000000..174fc68ef4 --- /dev/null +++ b/Content.Server/GameObjects/Components/Mobs/State/DeadState.cs @@ -0,0 +1,62 @@ +using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects.Components; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.GameObjects.Components.Mobs.State +{ + public class DeadState : SharedDeadState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Dead); + } + + if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/humandead.png"); + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlayComponent)) + { + overlayComponent.AddOverlay(SharedOverlayID.CircleMaskOverlay); + } + + if (entity.TryGetComponent(out StunnableComponent stun)) + { + stun.CancelAll(); + } + + EntitySystem.Get().Down(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = false; + } + } + + public override void ExitState(IEntity entity) + { + EntitySystem.Get().Standing(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = true; + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + + public override void UpdateState(IEntity entity) { } + } +} diff --git a/Content.Server/GameObjects/Components/Mobs/State/MobStateManager.cs b/Content.Server/GameObjects/Components/Mobs/State/MobStateManager.cs new file mode 100644 index 0000000000..c0e90dd9fa --- /dev/null +++ b/Content.Server/GameObjects/Components/Mobs/State/MobStateManager.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Shared.GameObjects; + +namespace Content.Server.GameObjects.Components.Mobs.State +{ + [RegisterComponent] + [ComponentReference(typeof(SharedMobStateManagerComponent))] + public class MobStateManagerComponent : SharedMobStateManagerComponent + { + private readonly Dictionary _behavior = new Dictionary + { + {DamageState.Alive, new NormalState()}, + {DamageState.Critical, new CriticalState()}, + {DamageState.Dead, new DeadState()} + }; + + private DamageState _currentDamageState; + + protected override IReadOnlyDictionary Behavior => _behavior; + + public override IMobState CurrentMobState { get; protected set; } + + public override DamageState CurrentDamageState + { + get => _currentDamageState; + protected set + { + if (_currentDamageState == value) + { + return; + } + + if (_currentDamageState != DamageState.Invalid) + { + CurrentMobState.ExitState(Owner); + } + + _currentDamageState = value; + CurrentMobState = Behavior[CurrentDamageState]; + CurrentMobState.EnterState(Owner); + + Dirty(); + } + } + + public override void OnRemove() + { + // TODO: Might want to add an OnRemove() to IMobState since those are where these components are being used + base.OnRemove(); + + if (Owner.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.RemoveStatusEffect(StatusEffect.Health); + } + + if (Owner.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + + public override ComponentState GetComponentState() + { + return new MobStateManagerComponentState(CurrentDamageState); + } + } +} diff --git a/Content.Server/GameObjects/Components/Mobs/State/NormalState.cs b/Content.Server/GameObjects/Components/Mobs/State/NormalState.cs new file mode 100644 index 0000000000..507139e8bc --- /dev/null +++ b/Content.Server/GameObjects/Components/Mobs/State/NormalState.cs @@ -0,0 +1,79 @@ +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Mobs.State; +using Robust.Server.GameObjects; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.GameObjects.Components.Mobs.State +{ + public class NormalState : SharedNormalState + { + public override void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out AppearanceComponent appearance)) + { + appearance.SetData(DamageStateVisuals.State, DamageState.Alive); + } + + UpdateState(entity); + } + + public override void ExitState(IEntity entity) { } + + public override void UpdateState(IEntity entity) + { + if (!entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + return; + } + + if (!entity.TryGetComponent(out IDamageableComponent damageable)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human0.png"); + return; + } + + // TODO + switch (damageable) + { + case RuinableComponent ruinable: + { + if (ruinable.DeadThreshold == null) + { + break; + } + + var modifier = (int) (ruinable.TotalDamage / (ruinable.DeadThreshold / 7f)); + + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); + + break; + } + case BodyManagerComponent body: + { + if (body.CriticalThreshold == null) + { + return; + } + + var modifier = (int) (body.TotalDamage / (body.CriticalThreshold / 7f)); + + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); + + break; + } + default: + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human0.png"); + break; + } + } + } + } +} diff --git a/Content.Server/GameObjects/Components/Mobs/StunnableComponent.cs b/Content.Server/GameObjects/Components/Mobs/StunnableComponent.cs index 82d42a098e..2e19baa7a1 100644 --- a/Content.Server/GameObjects/Components/Mobs/StunnableComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/StunnableComponent.cs @@ -1,7 +1,8 @@ -using Content.Server.Mobs; +using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Movement; using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; using Robust.Shared.Timers; @@ -16,7 +17,7 @@ namespace Content.Server.GameObjects.Components.Mobs protected override void OnKnockdown() { - StandingStateHelper.Down(Owner); + EntitySystem.Get().Down(Owner); } public void CancelAll() @@ -33,7 +34,7 @@ namespace Content.Server.GameObjects.Components.Mobs if (KnockedDown) { - StandingStateHelper.Standing(Owner); + EntitySystem.Get().Standing(Owner); } KnockdownTimer = 0f; @@ -58,7 +59,7 @@ namespace Content.Server.GameObjects.Components.Mobs if (KnockdownTimer <= 0f) { - StandingStateHelper.Standing(Owner); + EntitySystem.Get().Standing(Owner); KnockdownTimer = 0f; Dirty(); diff --git a/Content.Server/GameObjects/Components/Movement/AiControllerComponent.cs b/Content.Server/GameObjects/Components/Movement/AiControllerComponent.cs index a1d595062d..dc651ef36c 100644 --- a/Content.Server/GameObjects/Components/Movement/AiControllerComponent.cs +++ b/Content.Server/GameObjects/Components/Movement/AiControllerComponent.cs @@ -19,6 +19,9 @@ namespace Content.Server.GameObjects.Components.Movement [RegisterComponent, ComponentReference(typeof(IMoverComponent))] public class AiControllerComponent : Component, IMoverComponent { + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IGameTicker _gameTicker = default!; + private string? _logicName; private float _visionRadius; @@ -36,7 +39,7 @@ namespace Content.Server.GameObjects.Components.Movement } public AiLogicProcessor? Processor { get; set; } - + [ViewVariables(VVAccess.ReadWrite)] public string? StartingGearPrototype { get; set; } @@ -61,13 +64,13 @@ namespace Content.Server.GameObjects.Components.Movement protected override void Startup() { base.Startup(); - + if (StartingGearPrototype != null) { - var startingGear = IoCManager.Resolve().Index(StartingGearPrototype); - IoCManager.Resolve().EquipStartingGear(Owner, startingGear); + var startingGear = _prototypeManager.Index(StartingGearPrototype); + _gameTicker.EquipStartingGear(Owner, startingGear); } - + } /// @@ -77,7 +80,7 @@ namespace Content.Server.GameObjects.Components.Movement serializer.DataField(ref _logicName, "logic", null); serializer.DataReadWriteFunction( - "startingGear", + "startingGear", null, startingGear => StartingGearPrototype = startingGear, () => StartingGearPrototype); diff --git a/Content.Server/GameObjects/Components/Movement/ClimbableComponent.cs b/Content.Server/GameObjects/Components/Movement/ClimbableComponent.cs index f04b50cff2..aafe33baf4 100644 --- a/Content.Server/GameObjects/Components/Movement/ClimbableComponent.cs +++ b/Content.Server/GameObjects/Components/Movement/ClimbableComponent.cs @@ -1,4 +1,4 @@ -using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Body; using Content.Server.GameObjects.EntitySystems.DoAfter; using Content.Shared.GameObjects.Components.Movement; using Content.Shared.GameObjects.EntitySystems; @@ -17,6 +17,8 @@ using Robust.Shared.Maths; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using System; +using Content.Server.Utility; +using Content.Shared.Utility; namespace Content.Server.GameObjects.Components.Movement { @@ -71,7 +73,7 @@ namespace Content.Server.GameObjects.Components.Movement canVault = CanVault(eventArgs.User, eventArgs.Dropped, eventArgs.Target, out reason); if (!canVault) - eventArgs.User.PopupMessage(eventArgs.User, reason); + eventArgs.User.PopupMessage(reason); return canVault; } @@ -106,12 +108,7 @@ namespace Content.Server.GameObjects.Components.Movement return false; } - var userPosition = user.Transform.MapPosition; - var climbablePosition = target.Transform.MapPosition; - var interaction = EntitySystem.Get(); - bool Ignored(IEntity entity) => (entity == target || entity == user); - - if (!interaction.InRangeUnobstructed(userPosition, climbablePosition, _range, predicate: Ignored)) + if (!user.InRangeUnobstructed(target, _range)) { reason = Loc.GetString("You can't reach there!"); return false; @@ -143,14 +140,10 @@ namespace Content.Server.GameObjects.Components.Movement return false; } - var userPosition = user.Transform.MapPosition; - var otherUserPosition = dragged.Transform.MapPosition; - var climbablePosition = target.Transform.MapPosition; - var interaction = EntitySystem.Get(); - bool Ignored(IEntity entity) => (entity == target || entity == user || entity == dragged); + bool Ignored(IEntity entity) => entity == target || entity == user || entity == dragged; - if (!interaction.InRangeUnobstructed(userPosition, climbablePosition, _range, predicate: Ignored) || - !interaction.InRangeUnobstructed(userPosition, otherUserPosition, _range, predicate: Ignored)) + if (!user.InRangeUnobstructed(target, _range, predicate: Ignored) || + !user.InRangeUnobstructed(dragged, _range, predicate: Ignored)) { reason = Loc.GetString("You can't reach there!"); return false; @@ -207,8 +200,12 @@ namespace Content.Server.GameObjects.Components.Movement // we may potentially need additional logic since we're forcing a player onto a climbable // there's also the cases where the user might collide with the person they are forcing onto the climbable that i haven't accounted for - PopupMessageOtherClientsInRange(user, Loc.GetString("{0:theName} forces {1:theName} onto {2:theName}!", user, entityToMove, Owner), 15); - user.PopupMessage(user, Loc.GetString("You force {0:theName} onto {1:theName}!", entityToMove, Owner)); + var othersMessage = Loc.GetString("{0:theName} forces {1:theName} onto {2:theName}!", user, + entityToMove, Owner); + user.PopupMessageOtherClients(othersMessage); + + var selfMessage = Loc.GetString("You force {0:theName} onto {1:theName}!", entityToMove, Owner); + user.PopupMessage(selfMessage); } } @@ -243,25 +240,11 @@ namespace Content.Server.GameObjects.Components.Movement climbMode.TryMoveTo(user.Transform.WorldPosition, endPoint); - PopupMessageOtherClientsInRange(user, Loc.GetString("{0:theName} jumps onto {1:theName}!", user, Owner), 15); - user.PopupMessage(user, Loc.GetString("You jump onto {0:theName}!", Owner)); - } - } + var othersMessage = Loc.GetString("{0:theName} jumps onto {1:theName}!", user, Owner); + user.PopupMessageOtherClients(othersMessage); - private void PopupMessageOtherClientsInRange(IEntity source, string message, int maxReceiveDistance) - { - var viewers = _playerManager.GetPlayersInRange(source.Transform.GridPosition, maxReceiveDistance); - - foreach (var viewer in viewers) - { - var viewerEntity = viewer.AttachedEntity; - - if (viewerEntity == null || source == viewerEntity) - { - continue; - } - - source.PopupMessage(viewer.AttachedEntity, message); + var selfMessage = Loc.GetString("You jump onto {0:theName}!", Owner); + user.PopupMessage(selfMessage); } } diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs new file mode 100644 index 0000000000..93fcaae955 --- /dev/null +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs @@ -0,0 +1,152 @@ +using Content.Server.Explosions; +using Content.Server.GameObjects.Components.NodeContainer.Nodes; +using Content.Server.GameObjects.Components.Power.AME; +using Robust.Shared.GameObjects.Components.Transform; +using Robust.Shared.ViewVariables; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups +{ + /// + /// Node group class for handling the Antimatter Engine's console and parts. + /// + [NodeGroup(NodeGroupID.AMEngine)] + public class AMENodeGroup : BaseNodeGroup + { + /// + /// The AME controller which is currently in control of this node group. + /// This could be tracked a few different ways, but this is most convenient, + /// since any part connected to the node group can easily find the master. + /// + [ViewVariables] + private AMEControllerComponent _masterController; + + public AMEControllerComponent MasterController => _masterController; + + private List _cores = new List(); + + public int CoreCount => _cores.Count; + + protected override void OnAddNode(Node node) + { + base.OnAddNode(node); + if (_masterController == null) + { + node.Owner.TryGetComponent(out var controller); + _masterController = controller; + } + } + + protected override void OnRemoveNode(Node node) + { + base.OnRemoveNode(node); + RefreshAMENodes(_masterController); + if (_masterController != null && _masterController?.Owner == node.Owner) { _masterController = null; } + } + + public void RefreshAMENodes(AMEControllerComponent controller) + { + if(_masterController == null && controller != null) + { + _masterController = controller; + } + + if (_cores != null) { + foreach (AMEShieldComponent core in _cores) + { + core.UnsetCore(); + } + _cores.Clear(); + } + + //Check each shield node to see if it meets core criteria + foreach (Node node in Nodes) + { + if (!node.Owner.TryGetComponent(out var shield)) { continue; } + var nodeNeighbors = node.Owner + .GetComponent() + .GetCellsInSquareArea() + .Select(sgc => sgc.Owner) + .Where(entity => entity != node.Owner) + .Select(entity => entity.TryGetComponent(out var adjshield) ? adjshield : null) + .Where(adjshield => adjshield != null); + + if (nodeNeighbors.Count() >= 8) { _cores.Add(shield); } + } + + if (_cores == null) { return; } + + foreach (AMEShieldComponent core in _cores) + { + core.SetCore(); + } + } + + public void UpdateCoreVisuals(int injectionAmount, bool injecting) + { + + var injectionStrength = CoreCount > 0 ? injectionAmount / CoreCount : 0; + + foreach (AMEShieldComponent core in _cores) + { + core.UpdateCoreVisuals(injectionStrength, injecting); + } + } + + public int InjectFuel(int injectionAmount) + { + if(injectionAmount > 0 && CoreCount > 0) + { + var instability = 2 * (injectionAmount / CoreCount); + foreach(AMEShieldComponent core in _cores) + { + core.CoreIntegrity -= instability; + } + return CoreCount * injectionAmount * 15000; //2 core engine injecting 2 fuel per core = 60kW(?) + } + return 0; + } + + public int GetTotalStability() + { + if(CoreCount < 1) { return 100; } + var stability = 0; + + foreach(AMEShieldComponent core in _cores) + { + stability += core.CoreIntegrity; + } + + stability = stability / CoreCount; + + return stability; + } + + public void ExplodeCores() + { + if(_cores.Count < 1 || MasterController == null) { return; } + + var intensity = 0; + + /* + * todo: add an exact to the shielding and make this find the core closest to the controller + * so they chain explode, after helpers have been added to make it not cancer + */ + var epicenter = _cores.First(); + + foreach (AMEShieldComponent core in _cores) + { + intensity += MasterController.InjectionAmount; + } + + intensity = Math.Min(intensity, 8); + + ExplosionHelper.SpawnExplosion(epicenter.Owner.Transform.GridPosition, intensity / 2, intensity, intensity * 2, intensity * 3); + + } + + } +} diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs index 8e1d103c15..4b6a11a870 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs @@ -35,8 +35,6 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups [ViewVariables] private int TotalReceivers => _providerReceivers.SelectMany(kvp => kvp.Value).Count(); - private IEnumerable AvailableBatteries => _apcBatteries.Where(kvp => kvp.Key.MainBreakerEnabled).Select(kvp => kvp.Value); - public static readonly IApcNet NullNet = new NullApcNet(); #region IApcNet Methods @@ -88,8 +86,11 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups { var totalCharge = 0.0; var totalMaxCharge = 0; - foreach (var battery in AvailableBatteries) + foreach (var (apc, battery) in _apcBatteries) { + if (!apc.MainBreakerEnabled) + continue; + totalCharge += battery.CurrentCharge; totalMaxCharge += battery.MaxCharge; } @@ -102,8 +103,11 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups private bool TryUsePower(float neededCharge) { - foreach (var battery in AvailableBatteries) + foreach (var (apc, battery) in _apcBatteries) { + if (!apc.MainBreakerEnabled) + continue; + if (battery.TryUseCharge(neededCharge)) //simplification - all power needed must come from one battery { return true; diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/IPipeNet.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/IPipeNet.cs index 75f5f147b1..aa3ed5f326 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/IPipeNet.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/IPipeNet.cs @@ -27,15 +27,16 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups [ViewVariables] private readonly List _pipes = new List(); - [ViewVariables] - private IGridAtmosphereComponent _gridAtmos; + [ViewVariables] private AtmosphereSystem _atmosphereSystem; + + [ViewVariables] private IGridAtmosphereComponent GridAtmos => _atmosphereSystem.GetGridAtmosphere(GridId); public override void Initialize(Node sourceNode) { base.Initialize(sourceNode); - _gridAtmos = EntitySystem.Get() - .GetGridAtmosphere(GridId); - _gridAtmos?.AddPipeNet(this); + + _atmosphereSystem = EntitySystem.Get(); + GridAtmos?.AddPipeNet(this); } public void Update() @@ -88,7 +89,7 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups private void RemoveFromGridAtmos() { - _gridAtmos.RemovePipeNet(this); + GridAtmos?.RemovePipeNet(this); } private class NullPipeNet : IPipeNet diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs index 2133f67134..557035524f 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs @@ -62,6 +62,7 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups HVPower, MVPower, Apc, + AMEngine, Pipe, } } diff --git a/Content.Server/GameObjects/Components/NodeContainer/Nodes/PipeNode.cs b/Content.Server/GameObjects/Components/NodeContainer/Nodes/PipeNode.cs index b35d16280f..ddd2d57c9a 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/Nodes/PipeNode.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/Nodes/PipeNode.cs @@ -1,7 +1,8 @@ using Content.Server.Atmos; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.Interfaces; -using Content.Shared.Atmos; +using Content.Shared.GameObjects.Components.Atmos; +using Robust.Server.GameObjects; using Robust.Shared.GameObjects.Components.Transform; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Maths; @@ -23,6 +24,12 @@ namespace Content.Server.GameObjects.Components.NodeContainer.Nodes public PipeDirection PipeDirection => _pipeDirection; private PipeDirection _pipeDirection; + /// + /// Controls what visuals are applied in . + /// + public ConduitLayer ConduitLayer => _conduitLayer; + private ConduitLayer _conduitLayer; + [ViewVariables] private IPipeNet _pipeNet = PipeNet.NullNet; @@ -55,17 +62,24 @@ namespace Content.Server.GameObjects.Components.NodeContainer.Nodes [ViewVariables] public float Volume { get; private set; } + private AppearanceComponent _appearance; + + private PipeVisualState PipeVisualState => new PipeVisualState(PipeDirection, ConduitLayer); + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); serializer.DataField(ref _pipeDirection, "pipeDirection", PipeDirection.None); serializer.DataField(this, x => Volume, "volume", 10); + serializer.DataField(ref _conduitLayer, "conduitLayer", ConduitLayer.Two); } public override void Initialize(IEntity owner) { base.Initialize(owner); LocalAir = new GasMixture(Volume); + Owner.TryGetComponent(out _appearance); + UpdateAppearance(); } public void JoinPipeNet(IPipeNet pipeNet) @@ -128,6 +142,16 @@ namespace Content.Server.GameObjects.Components.NodeContainer.Nodes } } + private void UpdateAppearance() + { + var pipeVisualStates = Owner.GetComponent() + .Nodes + .OfType() + .Select(pipeNode => pipeNode.PipeVisualState) + .ToArray(); + _appearance?.SetData(PipeVisuals.VisualState, new PipeVisualStateSet(pipeVisualStates)); + } + private enum CardinalDirection { North = Direction.North, @@ -136,36 +160,4 @@ namespace Content.Server.GameObjects.Components.NodeContainer.Nodes West = Direction.West, } } - - public enum PipeDirection - { - None = 0, - - //Half of a pipe in a direction - North = 1 << 0, - South = 1 << 1, - West = 1 << 2, - East = 1 << 3, - - //Straight pipes - Longitudinal = North | South, - Lateral = West | East, - - //Bends - NWBend = North | West, - NEBend = North | East, - SWBend = South | West, - SEBend = South | East, - - //T-Junctions - TNorth = North | Lateral, - TSouth = South | Lateral, - TWest = West | Longitudinal, - TEast = East | Longitudinal, - - //Four way - FourWay = North | South | East | West, - - All = -1, - } } diff --git a/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs b/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs index 73e7efaf20..3a317ec1d4 100644 --- a/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs @@ -130,13 +130,13 @@ namespace Content.Server.GameObjects.Components.Nutrition if (!Opened) { - target.PopupMessage(target, Loc.GetString("Open it first!")); + target.PopupMessage(Loc.GetString("Open it first!")); return false; } if (_contents.CurrentVolume.Float() <= 0) { - target.PopupMessage(target, Loc.GetString("It's empty!")); + target.PopupMessage(Loc.GetString("It's empty!")); return false; } @@ -151,14 +151,14 @@ namespace Content.Server.GameObjects.Components.Nutrition { if (_useSound == null) return false; EntitySystem.Get().PlayFromEntity(_useSound, target, AudioParams.Default.WithVolume(-2f)); - target.PopupMessage(target, Loc.GetString("Slurp")); + target.PopupMessage(Loc.GetString("Slurp")); UpdateAppearance(); return true; } //Stomach was full or can't handle whatever solution we have. _contents.TryAddSolution(split); - target.PopupMessage(target, Loc.GetString("You've had enough {0}!", Owner.Name)); + target.PopupMessage(Loc.GetString("You've had enough {0}!", Owner.Name)); return false; } @@ -172,7 +172,7 @@ namespace Content.Server.GameObjects.Components.Nutrition Opened = true; var solution = component.SplitSolution(component.CurrentVolume); - SpillHelper.SpillAt(Owner, solution, "PuddleSmear"); + solution.SpillAt(Owner, "PuddleSmear"); EntitySystem.Get().PlayFromEntity(_burstSound, Owner, AudioParams.Default.WithVolume(-4)); diff --git a/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs b/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs index cec956d208..b346108d1e 100644 --- a/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs @@ -11,6 +11,7 @@ using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Utensil; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.Audio; using Robust.Shared.GameObjects; @@ -89,7 +90,7 @@ namespace Content.Server.GameObjects.Components.Nutrition { if (_utensilsNeeded != UtensilType.None) { - eventArgs.User.PopupMessage(eventArgs.User, Loc.GetString("You need to use a {0} to eat that!", _utensilsNeeded)); + eventArgs.User.PopupMessage(Loc.GetString("You need to use a {0} to eat that!", _utensilsNeeded)); return false; } @@ -121,7 +122,7 @@ namespace Content.Server.GameObjects.Components.Nutrition if (UsesRemaining <= 0) { - user.PopupMessage(user, Loc.GetString("{0:TheName} is empty!", Owner)); + user.PopupMessage(Loc.GetString("{0:TheName} is empty!", Owner)); return false; } @@ -162,7 +163,7 @@ namespace Content.Server.GameObjects.Components.Nutrition } } - if (!InteractionChecks.InRangeUnobstructed(user, trueTarget.Transform.MapPosition)) + if (!user.InRangeUnobstructed(trueTarget, popup: true)) { return false; } diff --git a/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs b/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs index 0633289de8..5e35835cc4 100644 --- a/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs @@ -6,7 +6,6 @@ using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Movement; using Content.Shared.GameObjects.Components.Nutrition; -using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; @@ -19,6 +18,8 @@ namespace Content.Server.GameObjects.Components.Nutrition [RegisterComponent] public sealed class HungerComponent : SharedHungerComponent { + [Dependency] private readonly IRobustRandom _random = default!; + // Base stuff [ViewVariables(VVAccess.ReadWrite)] public float BaseDecayRate @@ -68,15 +69,12 @@ namespace Content.Server.GameObjects.Components.Nutrition serializer.DataField(ref _baseDecayRate, "base_decay_rate", 0.1f); } - // for shared string dict, since we don't define these anywhere in content - [UsedImplicitly] - public static readonly string[] _hungerThresholdImages = + + public static readonly Dictionary HungerThresholdImages = new Dictionary { - "/Textures/Interface/StatusEffects/Hunger/Overfed.png", - "/Textures/Interface/StatusEffects/Hunger/Okay.png", - "/Textures/Interface/StatusEffects/Hunger/Peckish.png", - "/Textures/Interface/StatusEffects/Hunger/Starving.png", - "/Textures/Interface/StatusEffects/Hunger/Dead.png", + { HungerThreshold.Overfed, "/Textures/Interface/StatusEffects/Hunger/Overfed.png" }, + { HungerThreshold.Peckish, "/Textures/Interface/StatusEffects/Hunger/Peckish.png" }, + { HungerThreshold.Starving, "/Textures/Interface/StatusEffects/Hunger/Starving.png" }, }; public void HungerThresholdEffect(bool force = false) @@ -92,7 +90,16 @@ namespace Content.Server.GameObjects.Components.Nutrition // Update UI Owner.TryGetComponent(out ServerStatusEffectsComponent statusEffectsComponent); - statusEffectsComponent?.ChangeStatusEffectIcon(StatusEffect.Hunger, _hungerThresholdImages[ (int)_currentHungerThreshold ]); + + if (HungerThresholdImages.TryGetValue(_currentHungerThreshold, out var statusTexture)) + { + statusEffectsComponent?.ChangeStatusEffectIcon(StatusEffect.Hunger, statusTexture); + } + else + { + statusEffectsComponent?.RemoveStatusEffect(StatusEffect.Hunger); + } + switch (_currentHungerThreshold) { case HungerThreshold.Overfed: @@ -135,7 +142,7 @@ namespace Content.Server.GameObjects.Components.Nutrition { base.Startup(); // Similar functionality to SS13. Should also stagger people going to the chef. - _currentHunger = IoCManager.Resolve().Next( + _currentHunger = _random.Next( (int)_hungerThresholds[HungerThreshold.Peckish] + 10, (int)_hungerThresholds[HungerThreshold.Okay] - 1); _currentHungerThreshold = GetHungerThreshold(_currentHunger); diff --git a/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs b/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs index 379432e4f1..6dec3efe75 100644 --- a/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs @@ -6,7 +6,6 @@ using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Movement; using Content.Shared.GameObjects.Components.Nutrition; -using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; @@ -19,6 +18,8 @@ namespace Content.Server.GameObjects.Components.Nutrition [RegisterComponent] public sealed class ThirstComponent : SharedThirstComponent { + [Dependency] private readonly IRobustRandom _random = default!; + // Base stuff [ViewVariables(VVAccess.ReadWrite)] public float BaseDecayRate @@ -52,8 +53,7 @@ namespace Content.Server.GameObjects.Components.Nutrition private float _currentThirst; [ViewVariables(VVAccess.ReadOnly)] - public Dictionary ThirstThresholds => _thirstThresholds; - private readonly Dictionary _thirstThresholds = new Dictionary + public Dictionary ThirstThresholds { get; } = new Dictionary { {ThirstThreshold.OverHydrated, 600.0f}, {ThirstThreshold.Okay, 450.0f}, @@ -62,15 +62,11 @@ namespace Content.Server.GameObjects.Components.Nutrition {ThirstThreshold.Dead, 0.0f}, }; - // for shared string dict, since we don't define these anywhere in content - [UsedImplicitly] - public static readonly string[] _thirstThresholdImages = + public static readonly Dictionary ThirstThresholdImages = new Dictionary { - "/Textures/Interface/StatusEffects/Thirst/OverHydrated.png", - "/Textures/Interface/StatusEffects/Thirst/Okay.png", - "/Textures/Interface/StatusEffects/Thirst/Thirsty.png", - "/Textures/Interface/StatusEffects/Thirst/Parched.png", - "/Textures/Interface/StatusEffects/Thirst/Dead.png", + {ThirstThreshold.OverHydrated, "/Textures/Interface/StatusEffects/Thirst/OverHydrated.png"}, + {ThirstThreshold.Thirsty, "/Textures/Interface/StatusEffects/Thirst/Thirsty.png"}, + {ThirstThreshold.Parched, "/Textures/Interface/StatusEffects/Thirst/Parched.png"}, }; public override void ExposeData(ObjectSerializer serializer) @@ -92,8 +88,15 @@ namespace Content.Server.GameObjects.Components.Nutrition // Update UI Owner.TryGetComponent(out ServerStatusEffectsComponent statusEffectsComponent); - statusEffectsComponent?.ChangeStatusEffectIcon(StatusEffect.Thirst, "/Textures/Interface/StatusEffects/Thirst/" + - _currentThirstThreshold + ".png"); + + if (ThirstThresholdImages.TryGetValue(_currentThirstThreshold, out var statusTexture)) + { + statusEffectsComponent?.ChangeStatusEffectIcon(StatusEffect.Thirst, statusTexture); + } + else + { + statusEffectsComponent?.RemoveStatusEffect(StatusEffect.Thirst); + } switch (_currentThirstThreshold) { @@ -134,9 +137,9 @@ namespace Content.Server.GameObjects.Components.Nutrition protected override void Startup() { base.Startup(); - _currentThirst = IoCManager.Resolve().Next( - (int)_thirstThresholds[ThirstThreshold.Thirsty] + 10, - (int)_thirstThresholds[ThirstThreshold.Okay] - 1); + _currentThirst = _random.Next( + (int)ThirstThresholds[ThirstThreshold.Thirsty] + 10, + (int)ThirstThresholds[ThirstThreshold.Okay] - 1); _currentThirstThreshold = GetThirstThreshold(_currentThirst); _lastThirstThreshold = ThirstThreshold.Okay; // TODO: Potentially change this -> Used Okay because no effects. // TODO: Check all thresholds make sense and throw if they don't. @@ -148,7 +151,7 @@ namespace Content.Server.GameObjects.Components.Nutrition { ThirstThreshold result = ThirstThreshold.Dead; var value = ThirstThresholds[ThirstThreshold.OverHydrated]; - foreach (var threshold in _thirstThresholds) + foreach (var threshold in ThirstThresholds) { if (threshold.Value <= value && threshold.Value >= drink) { diff --git a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs index cb0c938419..10f3e8a6c6 100644 --- a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs @@ -1,4 +1,6 @@ -using Content.Server.Players; +using Content.Server.GameObjects.Components.Mobs; +using Content.Server.Mobs; +using Content.Server.Players; using Content.Shared.GameObjects.Components.Observer; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components; @@ -31,7 +33,7 @@ namespace Content.Server.GameObjects.Components.Observer { base.Initialize(); - Owner.EnsureComponent().Layer = (int)VisibilityFlags.Ghost; + Owner.EnsureComponent().Layer = (int) VisibilityFlags.Ghost; } public override ComponentState GetComponentState() => new GhostComponentState(CanReturnToBody); @@ -43,18 +45,19 @@ namespace Content.Server.GameObjects.Components.Observer switch (message) { case PlayerAttachedMsg msg: - msg.NewPlayer.VisibilityMask |= (int)VisibilityFlags.Ghost; + msg.NewPlayer.VisibilityMask |= (int) VisibilityFlags.Ghost; Dirty(); break; case PlayerDetachedMsg msg: - msg.OldPlayer.VisibilityMask &= ~(int)VisibilityFlags.Ghost; + msg.OldPlayer.VisibilityMask &= ~(int) VisibilityFlags.Ghost; break; default: break; } } - public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession session = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, + ICommonSession session = null) { base.HandleNetworkMessage(message, netChannel, session); @@ -67,10 +70,29 @@ namespace Content.Server.GameObjects.Components.Observer actor.playerSession.ContentData().Mind.UnVisit(); Owner.Delete(); } + + break; + case ReturnToCloneComponentMessage reenter: + + if (Owner.TryGetComponent(out VisitingMindComponent mind)) + { + Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, new GhostReturnMessage(mind.Mind)); + } + break; default: break; } } + + public class GhostReturnMessage : EntitySystemMessage + { + public GhostReturnMessage(Mind sender) + { + Sender = sender; + } + + public Mind Sender { get; } + } } } diff --git a/Content.Server/GameObjects/Components/Power/AME/AMEControllerComponent.cs b/Content.Server/GameObjects/Components/Power/AME/AMEControllerComponent.cs new file mode 100644 index 0000000000..f372ea3142 --- /dev/null +++ b/Content.Server/GameObjects/Components/Power/AME/AMEControllerComponent.cs @@ -0,0 +1,361 @@ +#nullable enable +using Content.Server.GameObjects.Components.GUI; +using Content.Server.GameObjects.Components.Items.Storage; +using Content.Server.GameObjects.Components.NodeContainer; +using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; +using Content.Server.GameObjects.Components.Power.ApcNetComponents; +using Content.Server.GameObjects.Components.Power.PowerNetComponents; +using Content.Server.Interfaces.GameObjects.Components.Items; +using Content.Server.Utility; +using Content.Shared.GameObjects.Components.Power.AME; +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.Components.Container; +using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; +using Robust.Shared.ViewVariables; +using System.Linq; +using System.Threading.Tasks; +using Content.Shared.Interfaces; + +namespace Content.Server.GameObjects.Components.Power.AME +{ + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + [ComponentReference(typeof(IInteractUsing))] + public class AMEControllerComponent : SharedAMEControllerComponent, IActivate, IInteractUsing + { + [ViewVariables] private BoundUserInterface? UserInterface => Owner.GetUIOrNull(AMEControllerUiKey.Key); + [ViewVariables] private bool _injecting; + [ViewVariables] public int InjectionAmount; + + private AppearanceComponent? _appearance; + private PowerSupplierComponent? _powerSupplier; + + private bool Powered => !Owner.TryGetComponent(out PowerReceiverComponent? receiver) || receiver.Powered; + + [ViewVariables] + private int _stability = 100; + + private ContainerSlot _jarSlot = default!; + [ViewVariables] private bool HasJar => _jarSlot.ContainedEntity != null; + + public override void Initialize() + { + base.Initialize(); + + if (UserInterface != null) + { + UserInterface.OnReceiveMessage += OnUiReceiveMessage; + } + + Owner.TryGetComponent(out _appearance); + + if (Owner.TryGetComponent(out PowerReceiverComponent? receiver)) + { + receiver.OnPowerStateChanged += OnPowerChanged; + } + + Owner.TryGetComponent(out _powerSupplier); + + _injecting = false; + InjectionAmount = 2; + _jarSlot = ContainerManagerComponent.Ensure($"{Name}-fuelJarContainer", Owner); + } + + internal void OnUpdate(float frameTime) + { + if(!_injecting) + { + return; + } + + var group = GetAMENodeGroup(); + + if (group == null) + { + return; + } + + _jarSlot.ContainedEntity.TryGetComponent(out var fuelJar); + if(fuelJar != null && _powerSupplier != null && fuelJar.FuelAmount > InjectionAmount) + { + _powerSupplier.SupplyRate = group.InjectFuel(InjectionAmount); + fuelJar.FuelAmount -= InjectionAmount; + InjectSound(); + UpdateUserInterface(); + } + + _stability = group.GetTotalStability(); + + UpdateDisplay(_stability); + + if(_stability <= 0) { group.ExplodeCores(); } + + } + + /// + /// Called when you click the owner entity with an empty hand. Opens the UI client-side if possible. + /// + /// Data relevant to the event such as the actor which triggered it. + void IActivate.Activate(ActivateEventArgs args) + { + if (!args.User.TryGetComponent(out IActorComponent? actor)) + { + return; + } + + if (!args.User.TryGetComponent(out IHandsComponent? hands)) + { + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); + return; + } + + var activeHandEntity = hands.GetActiveHand?.Owner; + if (activeHandEntity == null) + { + UserInterface?.Open(actor.playerSession); + } + } + + private void OnPowerChanged(object? sender, PowerStateEventArgs e) + { + UpdateUserInterface(); + } + + private AMEControllerBoundUserInterfaceState GetUserInterfaceState() + { + var jar = _jarSlot.ContainedEntity; + if (jar == null) + { + return new AMEControllerBoundUserInterfaceState(Powered, IsMasterController(), false, HasJar, 0, InjectionAmount, GetCoreCount()); + } + + var jarcomponent = jar.GetComponent(); + return new AMEControllerBoundUserInterfaceState(Powered, IsMasterController(), _injecting, HasJar, jarcomponent.FuelAmount, InjectionAmount, GetCoreCount()); + } + + /// + /// Checks whether the player entity is able to use the controller. + /// + /// The player entity. + /// Returns true if the entity can use the controller, and false if it cannot. + private bool PlayerCanUseController(IEntity playerEntity, bool needsPower = true) + { + //Need player entity to check if they are still able to use the dispenser + if (playerEntity == null) + return false; + //Check if player can interact in their current state + if (!ActionBlockerSystem.CanInteract(playerEntity) || !ActionBlockerSystem.CanUse(playerEntity)) + return false; + //Check if device is powered + if (needsPower && !Powered) + return false; + + return true; + } + + private void UpdateUserInterface() + { + var state = GetUserInterfaceState(); + UserInterface?.SetState(state); + } + + /// + /// Handles ui messages from the client. For things such as button presses + /// which interact with the world and require server action. + /// + /// A user interface message from the client. + private void OnUiReceiveMessage(ServerBoundUserInterfaceMessage obj) + { + if (obj.Session.AttachedEntity == null) + { + return; + } + + var msg = (UiButtonPressedMessage) obj.Message; + var needsPower = msg.Button switch + { + UiButton.Eject => false, + _ => true, + }; + + if (!PlayerCanUseController(obj.Session.AttachedEntity, needsPower)) + return; + + switch (msg.Button) + { + case UiButton.Eject: + TryEject(obj.Session.AttachedEntity); + break; + case UiButton.ToggleInjection: + ToggleInjection(); + break; + case UiButton.IncreaseFuel: + InjectionAmount += 2; + break; + case UiButton.DecreaseFuel: + InjectionAmount = InjectionAmount > 0 ? InjectionAmount -= 2 : 0; + break; + case UiButton.RefreshParts: + RefreshParts(); + break; + } + + GetAMENodeGroup()?.UpdateCoreVisuals(InjectionAmount, _injecting); + + UpdateUserInterface(); + ClickSound(); + } + + private void TryEject(IEntity user) + { + if (!HasJar || _injecting) + return; + + var jar = _jarSlot.ContainedEntity; + _jarSlot.Remove(_jarSlot.ContainedEntity); + UpdateUserInterface(); + + if (!user.TryGetComponent(out var hands) || !jar.TryGetComponent(out var item)) + return; + if (hands.CanPutInHand(item)) + hands.PutInHand(item); + } + + private void ToggleInjection() + { + if (!_injecting) + { + _appearance?.SetData(AMEControllerVisuals.DisplayState, "on"); + } + else + { + _appearance?.SetData(AMEControllerVisuals.DisplayState, "off"); + if (_powerSupplier != null) + { + _powerSupplier.SupplyRate = 0; + } + } + _injecting = !_injecting; + UpdateUserInterface(); + } + + + private void UpdateDisplay(int stability) + { + if(_appearance == null) { return; } + + _appearance.TryGetData(AMEControllerVisuals.DisplayState, out var state); + + var newState = "on"; + if (stability < 50) { newState = "critical"; } + if (stability < 10) { newState = "fuck"; } + + if (state != newState) + { + _appearance?.SetData(AMEControllerVisuals.DisplayState, newState); + } + + } + + private void RefreshParts() + { + GetAMENodeGroup()?.RefreshAMENodes(this); + UpdateUserInterface(); + } + + private AMENodeGroup? GetAMENodeGroup() + { + Owner.TryGetComponent(out NodeContainerComponent? nodeContainer); + + var engineNodeGroup = nodeContainer?.Nodes + .Select(node => node.NodeGroup) + .OfType() + .First(); + + return engineNodeGroup; + } + + private bool IsMasterController() + { + if(GetAMENodeGroup()?.MasterController == this) + { + return true; + } + + return false; + } + + private int GetCoreCount() + { + var coreCount = 0; + var group = GetAMENodeGroup(); + + if (group != null) + { + coreCount = group.CoreCount; + } + + return coreCount; + } + + + private void ClickSound() + { + + EntitySystem.Get().PlayFromEntity("/Audio/Machines/machine_switch.ogg", Owner, AudioParams.Default.WithVolume(-2f)); + + } + + private void InjectSound() + { + EntitySystem.Get().PlayFromEntity("/Audio/Effects/bang.ogg", Owner, AudioParams.Default.WithVolume(0f)); + } + + async Task IInteractUsing.InteractUsing(InteractUsingEventArgs args) + { + if (!args.User.TryGetComponent(out IHandsComponent? hands)) + { + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); + return true; + } + + if (hands.GetActiveHand == null) + { + Owner.PopupMessage(args.User, Loc.GetString("You have nothing on your hand.")); + return false; + } + + var activeHandEntity = hands.GetActiveHand.Owner; + if (activeHandEntity.TryGetComponent(out var fuelContainer)) + { + if (HasJar) + { + Owner.PopupMessage(args.User, Loc.GetString("The controller already has a jar loaded.")); + } + + else + { + _jarSlot.Insert(activeHandEntity); + Owner.PopupMessage(args.User, Loc.GetString("You insert the jar into the fuel slot.")); + UpdateUserInterface(); + } + } + else + { + Owner.PopupMessage(args.User, Loc.GetString("You can't put that in the controller...")); + } + + return true; + } + } + +} diff --git a/Content.Server/GameObjects/Components/Power/AME/AMEFuelContainerComponent.cs b/Content.Server/GameObjects/Components/Power/AME/AMEFuelContainerComponent.cs new file mode 100644 index 0000000000..af88584187 --- /dev/null +++ b/Content.Server/GameObjects/Components/Power/AME/AMEFuelContainerComponent.cs @@ -0,0 +1,45 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.ViewVariables; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Server.GameObjects.Components.Power.AME +{ + [RegisterComponent] + public class AMEFuelContainerComponent : Component + { + public override string Name => "AMEFuelContainer"; + + private int _fuelAmount; + private int _maxFuelAmount; + + /// + /// The amount of fuel in the jar. + /// + [ViewVariables(VVAccess.ReadWrite)] + public int FuelAmount + { + get => _fuelAmount; + set => _fuelAmount = value; + } + + /// + /// The maximum fuel capacity of the jar. + /// + [ViewVariables(VVAccess.ReadWrite)] + public int MaxFuelAmount + { + get => _maxFuelAmount; + set => _maxFuelAmount = value; + } + + public override void Initialize() + { + base.Initialize(); + _maxFuelAmount = 1000; + _fuelAmount = 1000; + } + + } +} diff --git a/Content.Server/GameObjects/Components/Power/AME/AMEPartComponent.cs b/Content.Server/GameObjects/Components/Power/AME/AMEPartComponent.cs new file mode 100644 index 0000000000..9c07e21943 --- /dev/null +++ b/Content.Server/GameObjects/Components/Power/AME/AMEPartComponent.cs @@ -0,0 +1,50 @@ +using Content.Server.GameObjects.Components.Interactable; +using Content.Server.Interfaces.GameObjects.Components.Items; +using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.Transform; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using System.Threading.Tasks; +using Content.Shared.Interfaces; + +namespace Content.Server.GameObjects.Components.Power.AME +{ + [RegisterComponent] + [ComponentReference(typeof(IInteractUsing))] + public class AMEPartComponent : Component, IInteractUsing + { + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IServerEntityManager _serverEntityManager = default!; + + public override string Name => "AMEPart"; + + async Task IInteractUsing.InteractUsing(InteractUsingEventArgs args) + { + if (!args.User.TryGetComponent(out IHandsComponent hands)) + { + Owner.PopupMessage(args.User, Loc.GetString("You have no hands.")); + return true; + } + + var activeHandEntity = hands.GetActiveHand.Owner; + if (activeHandEntity.TryGetComponent(out var multitool) && multitool.Qualities == ToolQuality.Multitool) + { + + var mapGrid = _mapManager.GetGrid(args.ClickLocation.GridID); + var tile = mapGrid.GetTileRef(args.ClickLocation); + var snapPos = mapGrid.SnapGridCellFor(args.ClickLocation, SnapGridOffset.Center); + + var ent = _serverEntityManager.SpawnEntity("AMEShielding", mapGrid.GridTileToLocal(snapPos)); + ent.Transform.LocalRotation = Owner.Transform.LocalRotation; + + Owner.Delete(); + } + + return true; + } + } +} diff --git a/Content.Server/GameObjects/Components/Power/AME/AMEShieldComponent.cs b/Content.Server/GameObjects/Components/Power/AME/AMEShieldComponent.cs new file mode 100644 index 0000000000..7ae88049df --- /dev/null +++ b/Content.Server/GameObjects/Components/Power/AME/AMEShieldComponent.cs @@ -0,0 +1,73 @@ +#nullable enable +using Content.Shared.GameObjects.Components.Power.AME; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.ViewVariables; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Server.GameObjects.Components.Power.AME +{ + [RegisterComponent] + public class AMEShieldComponent : SharedAMEShieldComponent + { + + private bool _isCore = false; + + [ViewVariables] + public int CoreIntegrity = 100; + + private AppearanceComponent? _appearance; + private PointLightComponent? _pointLight; + + public override void Initialize() + { + base.Initialize(); + Owner.TryGetComponent(out _appearance); + Owner.TryGetComponent(out _pointLight); + } + + internal void OnUpdate(float frameTime) + { + throw new NotImplementedException(); + } + + public void SetCore() + { + if(_isCore) { return; } + _isCore = true; + _appearance?.SetData(AMEShieldVisuals.Core, "isCore"); + } + + public void UnsetCore() + { + _isCore = false; + _appearance?.SetData(AMEShieldVisuals.Core, "isNotCore"); + } + + public void UpdateCoreVisuals(int injectionStrength, bool injecting) + { + if (!injecting) + { + _appearance?.SetData(AMEShieldVisuals.CoreState, "off"); + if (_pointLight != null) { _pointLight.Enabled = false; } + return; + } + + if (_pointLight != null) + { + _pointLight.Radius = Math.Clamp(injectionStrength, 1, 12); + _pointLight.Enabled = true; + } + + if (injectionStrength > 2) + { + _appearance?.SetData(AMEShieldVisuals.CoreState, "strong"); + return; + } + + _appearance?.SetData(AMEShieldVisuals.CoreState, "weak"); + } + } +} diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerProviderComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerProviderComponent.cs index 5541a2a875..b0fcd57588 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerProviderComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerProviderComponent.cs @@ -24,6 +24,9 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents [RegisterComponent] public class PowerProviderComponent : BaseApcNetComponent, IPowerProvider { + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IServerEntityManager _serverEntityManager; + public override string Name => "PowerProvider"; /// @@ -91,14 +94,13 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents private List FindAvailableReceivers() { - var mapManager = IoCManager.Resolve(); - var nearbyEntities = IoCManager.Resolve() + var nearbyEntities = _serverEntityManager .GetEntitiesInRange(Owner, PowerTransferRange); return nearbyEntities.Select(entity => entity.TryGetComponent(out var receiver) ? receiver : null) .Where(receiver => receiver != null) .Where(receiver => receiver.Connectable) .Where(receiver => receiver.NeedsProvider) - .Where(receiver => receiver.Owner.Transform.GridPosition.Distance(mapManager, Owner.Transform.GridPosition) < Math.Min(PowerTransferRange, receiver.PowerReceptionRange)) + .Where(receiver => receiver.Owner.Transform.GridPosition.Distance(_mapManager, Owner.Transform.GridPosition) < Math.Min(PowerTransferRange, receiver.PowerReceptionRange)) .ToList(); } diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverComponent.cs index 01f6dbd787..2402c6ea51 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverComponent.cs @@ -21,6 +21,9 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents [RegisterComponent] public class PowerReceiverComponent : Component, IExamine { + [Dependency] private readonly IServerEntityManager _serverEntityManager = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + public override string Name => "PowerReceiver"; public event EventHandler OnPowerStateChanged; @@ -116,16 +119,16 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents private bool TryFindAvailableProvider(out IPowerProvider foundProvider) { - var nearbyEntities = IoCManager.Resolve() + var nearbyEntities = _serverEntityManager .GetEntitiesInRange(Owner, PowerReceptionRange); - var mapManager = IoCManager.Resolve(); + foreach (var entity in nearbyEntities) { if (entity.TryGetComponent(out var provider)) { if (provider.Connectable) { - var distanceToProvider = provider.Owner.Transform.GridPosition.Distance(mapManager, Owner.Transform.GridPosition); + var distanceToProvider = provider.Owner.Transform.GridPosition.Distance(_mapManager, Owner.Transform.GridPosition); if (distanceToProvider < Math.Min(PowerReceptionRange, provider.PowerTransferRange)) { foundProvider = provider; diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/BaseCharger.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/BaseCharger.cs index e0f0f436ed..986b404aea 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/BaseCharger.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/BaseCharger.cs @@ -137,11 +137,13 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece if (component._container.ContainedEntity != null || handsComponent.GetActiveHand == null) { data.Visibility = VerbVisibility.Disabled; - data.Text = "Insert"; + data.Text = Loc.GetString("Insert"); return; } - data.Text = $"Insert {handsComponent.GetActiveHand.Owner.Name}"; + var heldItemName = Loc.GetString(handsComponent.GetActiveHand.Owner.Name); + + data.Text = Loc.GetString("Insert {0}", heldItemName); } protected override void Activate(IEntity user, BaseCharger component) @@ -173,12 +175,14 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece } if (component._container.ContainedEntity == null) { - data.Text = "Eject"; + data.Text = Loc.GetString("Eject"); data.Visibility = VerbVisibility.Disabled; return; } - data.Text = $"Eject {component._container.ContainedEntity.Name}"; + var containerItemName = Loc.GetString(component._container.ContainedEntity.Name); + + data.Text = Loc.GetString("Eject {0}", containerItemName); } protected override void Activate(IEntity user, BaseCharger component) diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs index 71befe71bc..4ac42d949e 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs @@ -4,7 +4,6 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.Damage; using Content.Shared.Interfaces.GameObjects.Components; @@ -21,6 +20,8 @@ using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; +using Content.Server.GameObjects.Components.MachineLinking; +using Content.Shared.Interfaces; namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerReceiverUsers { @@ -28,19 +29,18 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece /// Component that represents a wall light. It has a light bulb that can be replaced when broken. /// [RegisterComponent] - public class PoweredLightComponent : Component, IInteractHand, IInteractUsing, IMapInit + public class PoweredLightComponent : Component, IInteractHand, IInteractUsing, IMapInit, ISignalReceiver { - [Dependency] private IServerNotifyManager _notifyManager = default!; + [Dependency] private IGameTiming _gameTiming = default!; public override string Name => "PoweredLight"; private static readonly TimeSpan _thunkDelay = TimeSpan.FromSeconds(2); - private TimeSpan _lastThunk; + [ViewVariables] private bool _on; private LightBulbType BulbType = LightBulbType.Tube; - [ViewVariables] private ContainerSlot _lightBulbContainer; [ViewVariables] @@ -65,8 +65,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece case BeginDeconstructCompMsg msg: if (!msg.BlockDeconstruct && !(_lightBulbContainer.ContainedEntity is null)) { - var notifyManager = IoCManager.Resolve(); - notifyManager.PopupMessage(Owner, msg.User, "Remove the bulb."); + Owner.PopupMessage(msg.User, Loc.GetString("Remove the bulb.")); msg.BlockDeconstruct = true; } break; @@ -78,6 +77,23 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece return InsertBulb(eventArgs.Using); } + public void TriggerSignal(SignalState state) + { + switch (state) + { + case SignalState.On: + _on = true; + break; + case SignalState.Off: + _on = false; + break; + case SignalState.Toggle: + _on = !_on; + break; + } + UpdateLight(); + } + public bool InteractHand(InteractHandEventArgs eventArgs) { if (!eventArgs.User.TryGetComponent(out IDamageableComponent damageableComponent)) @@ -103,7 +119,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece void Burn() { - _notifyManager.PopupMessage(Owner, eventArgs.User, Loc.GetString("You burn your hand!")); + Owner.PopupMessage(eventArgs.User, Loc.GetString("You burn your hand!")); damageableComponent.ChangeDamage(DamageType.Heat, 20, false, Owner); var audioSystem = EntitySystem.Get(); audioSystem.PlayFromEntity("/Audio/Effects/lightburn.ogg", Owner); @@ -158,6 +174,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece public override void ExposeData(ObjectSerializer serializer) { serializer.DataField(ref BulbType, "bulb", LightBulbType.Tube); + serializer.DataField(ref _on, "on", true); } /// @@ -189,13 +206,13 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece switch (LightBulb.State) { case LightBulbState.Normal: - powerReceiver.Load = LightBulb.PowerUse; - if (powerReceiver.Powered) + if (powerReceiver.Powered && _on) { + powerReceiver.Load = LightBulb.PowerUse; sprite.LayerSetState(0, "on"); light.Enabled = true; light.Color = LightBulb.Color; - var time = IoCManager.Resolve().CurTime; + var time = _gameTiming.CurTime; if (time > _lastThunk + _thunkDelay) { _lastThunk = time; @@ -204,6 +221,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece } else { + powerReceiver.Load = 0; sprite.LayerSetState(0, "off"); light.Enabled = false; } diff --git a/Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs b/Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs index bed8295a06..5b79399c9d 100644 --- a/Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs +++ b/Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs @@ -1,6 +1,7 @@ using Content.Server.GameObjects.Components.Stack; using Content.Server.Utility; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.Transform; @@ -36,7 +37,7 @@ namespace Content.Server.GameObjects.Components.Power /// public void AfterInteract(AfterInteractEventArgs eventArgs) { - if (!InteractionChecks.InRangeUnobstructed(eventArgs)) return; + if (!eventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return; if(!_mapManager.TryGetGrid(eventArgs.ClickLocation.GridID, out var grid)) return; var snapPos = grid.SnapGridCellFor(eventArgs.ClickLocation, SnapGridOffset.Center); diff --git a/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs b/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs index 509de63d73..d3b56dde1b 100644 --- a/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs @@ -22,6 +22,8 @@ namespace Content.Server.GameObjects.Components.Projectiles [RegisterComponent] public class HitscanComponent : Component { + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override string Name => "Hitscan"; public CollisionGroup CollisionMask => (CollisionGroup) _collisionMask; private int _collisionMask; @@ -60,7 +62,7 @@ namespace Content.Server.GameObjects.Components.Projectiles public void FireEffects(IEntity user, float distance, Angle angle, IEntity hitEntity = null) { var effectSystem = EntitySystem.Get(); - _startTime = IoCManager.Resolve().CurTime; + _startTime = _gameTiming.CurTime; _deathTime = _startTime + TimeSpan.FromSeconds(1); var afterEffect = AfterEffects(user.Transform.GridPosition, angle, distance, 1.0f); diff --git a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs index d3395a5ca2..e9dd0df848 100644 --- a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs @@ -36,6 +36,8 @@ namespace Content.Server.GameObjects.Components.Projectiles private string _soundHit; private string _soundHitSpecies; + private bool _damagedEntity; + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); @@ -64,6 +66,11 @@ namespace Content.Server.GameObjects.Components.Projectiles /// void ICollideBehavior.CollideWith(IEntity entity) { + if (_damagedEntity) + { + return; + } + // This is so entities that shouldn't get a collision are ignored. if (entity.TryGetComponent(out ICollidableComponent collidable) && collidable.Hard == false) { @@ -91,6 +98,8 @@ namespace Content.Server.GameObjects.Components.Projectiles { damage.ChangeDamage(damageType, amount, false, shooter); } + + _damagedEntity = true; } if (!entity.Deleted && entity.TryGetComponent(out CameraRecoilComponent recoilComponent) diff --git a/Content.Server/GameObjects/Components/RadioComponent.cs b/Content.Server/GameObjects/Components/RadioComponent.cs index c2df969c05..2163ed3012 100644 --- a/Content.Server/GameObjects/Components/RadioComponent.cs +++ b/Content.Server/GameObjects/Components/RadioComponent.cs @@ -1,6 +1,7 @@ using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -13,7 +14,7 @@ namespace Content.Server.GameObjects.Components class RadioComponent : Component, IUse, IListen { [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; + [Dependency] private readonly IChatManager _chatManager = default!; public override string Name => "Radio"; @@ -51,8 +52,7 @@ namespace Content.Server.GameObjects.Components public void Speaker(string message) { - var chat = IoCManager.Resolve(); - chat.EntitySay(Owner, message); + _chatManager.EntitySay(Owner, message); } public bool UseEntity(UseEntityEventArgs eventArgs) @@ -60,11 +60,11 @@ namespace Content.Server.GameObjects.Components RadioOn = !RadioOn; if(RadioOn) { - _notifyManager.PopupMessage(Owner, eventArgs.User, "The radio is now on."); + Owner.PopupMessage(eventArgs.User, "The radio is now on."); } else { - _notifyManager.PopupMessage(Owner, eventArgs.User, "The radio is now off."); + Owner.PopupMessage(eventArgs.User, "The radio is now off."); } return true; } diff --git a/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs b/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs index 47285443dc..828ec9bb36 100644 --- a/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs +++ b/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs @@ -69,7 +69,7 @@ namespace Content.Server.GameObjects.Components.Recycling private bool CanGib(IEntity entity) { - return entity.HasComponent() && !_safe && Powered; + return entity.HasComponent() && !_safe && Powered; } private bool CanRecycle(IEntity entity, [MaybeNullWhen(false)] out ConstructionPrototype prototype) diff --git a/Content.Server/GameObjects/Components/Research/ProtolatheDatabaseComponent.cs b/Content.Server/GameObjects/Components/Research/ProtolatheDatabaseComponent.cs index 3067f03d5f..2179def87c 100644 --- a/Content.Server/GameObjects/Components/Research/ProtolatheDatabaseComponent.cs +++ b/Content.Server/GameObjects/Components/Research/ProtolatheDatabaseComponent.cs @@ -10,6 +10,8 @@ namespace Content.Server.GameObjects.Components.Research [ComponentReference(typeof(SharedLatheDatabaseComponent))] public class ProtolatheDatabaseComponent : SharedProtolatheDatabaseComponent { + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + public override string Name => "ProtolatheDatabase"; public override ComponentState GetComponentState() @@ -24,13 +26,11 @@ namespace Content.Server.GameObjects.Components.Research { if (!Owner.TryGetComponent(out TechnologyDatabaseComponent database)) return; - var prototypeManager = IoCManager.Resolve(); - foreach (var technology in database.Technologies) { foreach (var id in technology.UnlockedRecipes) { - var recipe = (LatheRecipePrototype)prototypeManager.Index(typeof(LatheRecipePrototype), id); + var recipe = (LatheRecipePrototype) _prototypeManager.Index(typeof(LatheRecipePrototype), id); UnlockRecipe(recipe); } } diff --git a/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs b/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs index 4a1adc57c1..e2136c29eb 100644 --- a/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs +++ b/Content.Server/GameObjects/Components/Research/ResearchConsoleComponent.cs @@ -57,8 +57,7 @@ namespace Content.Server.GameObjects.Components.Research switch (message.Message) { case ConsoleUnlockTechnologyMessage msg: - var protoMan = IoCManager.Resolve(); - if (!protoMan.TryIndex(msg.Id, out TechnologyPrototype tech)) break; + if (!_prototypeManager.TryIndex(msg.Id, out TechnologyPrototype tech)) break; if (client.Server == null) break; if (!client.Server.CanUnlockTechnology(tech)) break; if (client.Server.UnlockTechnology(tech)) diff --git a/Content.Server/GameObjects/Components/Rotatable/FlippableComponent.cs b/Content.Server/GameObjects/Components/Rotatable/FlippableComponent.cs index 43bd0ac6c2..4ebead529b 100644 --- a/Content.Server/GameObjects/Components/Rotatable/FlippableComponent.cs +++ b/Content.Server/GameObjects/Components/Rotatable/FlippableComponent.cs @@ -1,11 +1,10 @@ #nullable enable -using Content.Server.Interfaces; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; @@ -14,8 +13,6 @@ namespace Content.Server.GameObjects.Components.Rotatable [RegisterComponent] public class FlippableComponent : Component { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - public override string Name => "Flippable"; private string? _entity; @@ -25,7 +22,7 @@ namespace Content.Server.GameObjects.Components.Rotatable if (Owner.TryGetComponent(out ICollidableComponent? collidable) && collidable.Anchored) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, Loc.GetString("It's stuck.")); + Owner.PopupMessage(user, Loc.GetString("It's stuck.")); return; } diff --git a/Content.Server/GameObjects/Components/Rotatable/RotatableComponent.cs b/Content.Server/GameObjects/Components/Rotatable/RotatableComponent.cs index 564decbb9c..a3160b6fd8 100644 --- a/Content.Server/GameObjects/Components/Rotatable/RotatableComponent.cs +++ b/Content.Server/GameObjects/Components/Rotatable/RotatableComponent.cs @@ -1,10 +1,9 @@ -using Content.Server.Interfaces; -using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; +using Content.Shared.Interfaces; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; @@ -13,8 +12,6 @@ namespace Content.Server.GameObjects.Components.Rotatable [RegisterComponent] public class RotatableComponent : Component { - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; - public override string Name => "Rotatable"; private void TryRotate(IEntity user, Angle angle) @@ -23,7 +20,7 @@ namespace Content.Server.GameObjects.Components.Rotatable { if (collidable.Anchored) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, user, Loc.GetString("It's stuck.")); + Owner.PopupMessage(user, Loc.GetString("It's stuck.")); return; } } @@ -43,7 +40,7 @@ namespace Content.Server.GameObjects.Components.Rotatable } data.CategoryData = VerbCategories.Rotate; - data.Text = "Rotate clockwise"; + data.Text = Loc.GetString("Rotate clockwise"); data.IconTexture = "/Textures/Interface/VerbIcons/rotate_cw.svg.96dpi.png"; } @@ -65,7 +62,7 @@ namespace Content.Server.GameObjects.Components.Rotatable } data.CategoryData = VerbCategories.Rotate; - data.Text = "Rotate counter-clockwise"; + data.Text = Loc.GetString("Rotate counter-clockwise"); data.IconTexture = "/Textures/Interface/VerbIcons/rotate_ccw.svg.96dpi.png"; } diff --git a/Content.Server/GameObjects/Components/Stack/StackComponent.cs b/Content.Server/GameObjects/Components/Stack/StackComponent.cs index b6c5d37b9b..a32ee539e3 100644 --- a/Content.Server/GameObjects/Components/Stack/StackComponent.cs +++ b/Content.Server/GameObjects/Components/Stack/StackComponent.cs @@ -5,7 +5,6 @@ using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Map; using Robust.Shared.Timers; @@ -19,8 +18,6 @@ namespace Content.Server.GameObjects.Components.Stack [RegisterComponent] public class StackComponent : SharedStackComponent, IInteractUsing, IExamine { - [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager = default!; - private bool _throwIndividually = false; public override int Count @@ -82,20 +79,19 @@ namespace Content.Server.GameObjects.Components.Stack if (toTransfer > 0) { - _sharedNotifyManager.PopupMessage(popupPos, eventArgs.User, $"+{toTransfer}"); + popupPos.PopupMessage(eventArgs.User, $"+{toTransfer}"); if (stack.AvailableSpace == 0) { - - Timer.Spawn(300, () => _sharedNotifyManager.PopupMessage(popupPos, eventArgs.User, "Stack is now full.")); + Timer.Spawn(300, () => popupPos.PopupMessage(eventArgs.User, "Stack is now full.")); } + return true; } else if (toTransfer == 0 && stack.AvailableSpace == 0) { - _sharedNotifyManager.PopupMessage(popupPos, eventArgs.User, "Stack is already full."); + popupPos.PopupMessage(eventArgs.User, "Stack is already full."); } - } return false; diff --git a/Content.Server/GameObjects/Components/StationEvents/RadiationPulseComponent.cs b/Content.Server/GameObjects/Components/StationEvents/RadiationPulseComponent.cs index c0fd604f92..da755bf91d 100644 --- a/Content.Server/GameObjects/Components/StationEvents/RadiationPulseComponent.cs +++ b/Content.Server/GameObjects/Components/StationEvents/RadiationPulseComponent.cs @@ -15,12 +15,15 @@ namespace Content.Server.GameObjects.Components.StationEvents [RegisterComponent] public sealed class RadiationPulseComponent : SharedRadiationPulseComponent { + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IRobustRandom _random = default!; + private const float MinPulseLifespan = 0.8f; private const float MaxPulseLifespan = 2.5f; public float DPS => _dps; private float _dps; - + private TimeSpan _endTime; public override void ExposeData(ObjectSerializer serializer) @@ -33,15 +36,15 @@ namespace Content.Server.GameObjects.Components.StationEvents { base.Initialize(); - var currentTime = IoCManager.Resolve().CurTime; + var currentTime = _gameTiming.CurTime; var duration = TimeSpan.FromSeconds( - IoCManager.Resolve().NextFloat() * (MaxPulseLifespan - MinPulseLifespan) + + _random.NextFloat() * (MaxPulseLifespan - MinPulseLifespan) + MinPulseLifespan); _endTime = currentTime + duration; - - Timer.Spawn(duration, + + Timer.Spawn(duration, () => { if (!Owner.Deleted) @@ -59,4 +62,4 @@ namespace Content.Server.GameObjects.Components.StationEvents return new RadiationPulseMessage(_endTime); } } -} \ No newline at end of file +} diff --git a/Content.Server/GameObjects/Components/Strap/StrapComponent.cs b/Content.Server/GameObjects/Components/Strap/StrapComponent.cs index 420837f29e..aea6e759e2 100644 --- a/Content.Server/GameObjects/Components/Strap/StrapComponent.cs +++ b/Content.Server/GameObjects/Components/Strap/StrapComponent.cs @@ -4,9 +4,9 @@ using Content.Shared.GameObjects.Components.Strap; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; -using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Localization; using Robust.Shared.Serialization; @@ -202,20 +202,15 @@ namespace Content.Server.GameObjects.Components.Strap parent = parent.Parent; } - var userPosition = user.Transform.MapPosition; - var strapPosition = component.Owner.Transform.MapPosition; var range = SharedInteractionSystem.InteractionRange / 2; - var inRange = EntitySystem.Get() - .InRangeUnobstructed(userPosition, strapPosition, range, - predicate: entity => entity == user || entity == component.Owner); - if (!inRange) + if (!user.InRangeUnobstructed(component, range)) { return; } data.Visibility = VerbVisibility.Visible; - data.Text = buckle.BuckledTo == null ? Loc.GetString("Buckle") : Loc.GetString("Unbuckle"); + data.Text = Loc.GetString(buckle.BuckledTo == null ? "Buckle" : "Unbuckle"); } protected override void Activate(IEntity user, StrapComponent component) diff --git a/Content.Server/GameObjects/Components/Utensil/UtensilComponent.cs b/Content.Server/GameObjects/Components/Utensil/UtensilComponent.cs index b530ce5d22..8fadffc4d1 100644 --- a/Content.Server/GameObjects/Components/Utensil/UtensilComponent.cs +++ b/Content.Server/GameObjects/Components/Utensil/UtensilComponent.cs @@ -4,6 +4,7 @@ using Content.Server.GameObjects.Components.Nutrition; using Content.Server.Utility; using Content.Shared.GameObjects.Components.Utensil; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.Audio; using Robust.Shared.GameObjects; @@ -121,7 +122,7 @@ namespace Content.Server.GameObjects.Components.Utensil return; } - if (!InteractionChecks.InRangeUnobstructed(user, target.Transform.MapPosition)) + if (!user.InRangeUnobstructed(target, popup: true)) { return; } diff --git a/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs b/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs index 3fd2c7177a..363dbf98ac 100644 --- a/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs +++ b/Content.Server/GameObjects/Components/VendingMachines/VendingMachineComponent.cs @@ -32,6 +32,7 @@ namespace Content.Server.GameObjects.Components.VendingMachines public class VendingMachineComponent : SharedVendingMachineComponent, IActivate, IExamine, IBreakAct, IWires { [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; private bool _ejecting; private TimeSpan _animationDuration = TimeSpan.Zero; @@ -77,8 +78,7 @@ namespace Content.Server.GameObjects.Components.VendingMachines private void InitializeFromPrototype() { if (string.IsNullOrEmpty(_packPrototypeId)) { return; } - var prototypeManger = IoCManager.Resolve(); - if (!prototypeManger.TryIndex(_packPrototypeId, out VendingMachineInventoryPrototype packPrototype)) + if (!_prototypeManager.TryIndex(_packPrototypeId, out VendingMachineInventoryPrototype packPrototype)) { return; } diff --git a/Content.Server/GameObjects/Components/Weapon/FlashableComponent.cs b/Content.Server/GameObjects/Components/Weapon/FlashableComponent.cs index d94e9b87ae..4646c136c1 100644 --- a/Content.Server/GameObjects/Components/Weapon/FlashableComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/FlashableComponent.cs @@ -1,6 +1,6 @@ using System; -using Content.Server.Utility; using Content.Shared.GameObjects.Components.Weapons; +using Content.Shared.Utility; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -12,13 +12,14 @@ namespace Content.Server.GameObjects.Components.Weapon [RegisterComponent] public sealed class FlashableComponent : SharedFlashableComponent { + [Dependency] private readonly IGameTiming _gameTiming = default!; + private double _duration; private TimeSpan _lastFlash; public void Flash(double duration) { - var timing = IoCManager.Resolve(); - _lastFlash = timing.CurTime; + _lastFlash = _gameTiming.CurTime; _duration = duration; Dirty(); } @@ -32,7 +33,7 @@ namespace Content.Server.GameObjects.Components.Weapon { foreach (var entity in IoCManager.Resolve().GetEntitiesInRange(source.Transform.GridPosition, range)) { - if (!InteractionChecks.InRangeUnobstructed(source, entity.Transform.MapPosition, range, ignoredEnt:entity)) + if (!source.InRangeUnobstructed(entity, range, popup: true)) continue; if(entity.TryGetComponent(out FlashableComponent flashable)) diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/FlashComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/FlashComponent.cs index 104e20924d..580d1282ca 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/FlashComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/FlashComponent.cs @@ -23,7 +23,6 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee public class FlashComponent : MeleeWeaponComponent, IUse, IExamine { [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly ISharedNotifyManager _notifyManager = default!; public override string Name => "Flash"; @@ -101,7 +100,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee { sprite.LayerSetState(0, "burnt"); - _notifyManager.PopupMessage(Owner, user, Loc.GetString("The flash burns out!")); + Owner.PopupMessage(user, Loc.GetString("The flash burns out!")); } else if (!_flashing) { @@ -155,7 +154,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee if (entity != user) { - _notifyManager.PopupMessage(user, entity, Loc.GetString("{0:TheName} blinds you with {1:theName}", user, Owner)); + user.PopupMessage(entity, Loc.GetString("{0:TheName} blinds you with {1:theName}", user, Owner)); } } diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs index ce4a5bf376..ef2cf24729 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs @@ -17,6 +17,8 @@ using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using Content.Shared.Damage; using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects.EntitySystemMessages; namespace Content.Server.GameObjects.Components.Weapon.Melee { @@ -24,58 +26,54 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee public class MeleeWeaponComponent : Component, IAttack { [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; [Dependency] private readonly IPhysicsManager _physicsManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; public override string Name => "MeleeWeapon"; private TimeSpan _lastAttackTime; + private TimeSpan _cooldownEnd; - private int _damage; - private float _range; - private float _arcWidth; - private string _arc; private string _hitSound; - public float CooldownTime => _cooldownTime; - private float _cooldownTime = 1f; + private string _missSound; + public float ArcCooldownTime { get; private set; } = 1f; + public float CooldownTime { get; private set; } = 0.5f; [ViewVariables(VVAccess.ReadWrite)] - public string Arc - { - get => _arc; - set => _arc = value; - } + public string ClickArc { get; set; } [ViewVariables(VVAccess.ReadWrite)] - public float ArcWidth - { - get => _arcWidth; - set => _arcWidth = value; - } + public string Arc { get; set; } [ViewVariables(VVAccess.ReadWrite)] - public float Range - { - get => _range; - set => _range = value; - } + public float ArcWidth { get; set; } [ViewVariables(VVAccess.ReadWrite)] - public int Damage - { - get => _damage; - set => _damage = value; - } + public float Range { get; set; } + + [ViewVariables(VVAccess.ReadWrite)] + public int Damage { get; set; } + + [ViewVariables(VVAccess.ReadWrite)] + public DamageType DamageType { get; set; } + + [ViewVariables(VVAccess.ReadWrite)] + public bool ClickAttackEffect { get; set; } public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); - serializer.DataField(ref _damage, "damage", 5); - serializer.DataField(ref _range, "range", 1); - serializer.DataField(ref _arcWidth, "arcwidth", 90); - serializer.DataField(ref _arc, "arc", "default"); - serializer.DataField(ref _hitSound, "hitSound", "/Audio/Weapons/genhit1.ogg"); - serializer.DataField(ref _cooldownTime, "cooldownTime", 1f); + serializer.DataField(this, x => x.Damage, "damage", 5); + serializer.DataField(this, x => x.Range, "range", 1); + serializer.DataField(this, x => x.ArcWidth, "arcwidth", 90); + serializer.DataField(this, x => x.Arc, "arc", "default"); + serializer.DataField(this, x => x.ClickArc, "clickArc", "punch"); + serializer.DataField(this, x => x._hitSound, "hitSound", "/Audio/Weapons/genhit1.ogg"); + serializer.DataField(this, x => x._missSound, "hitSound", "/Audio/Weapons/punchmiss.ogg"); + serializer.DataField(this, x => x.ArcCooldownTime, "arcCooldownTime", 1f); + serializer.DataField(this, x => x.CooldownTime, "cooldownTime", 1f); + serializer.DataField(this, x => x.DamageType, "damageType", DamageType.Blunt); + serializer.DataField(this, x => x.ClickAttackEffect, "clickAttackEffect", true); } protected virtual bool OnHitEntities(IReadOnlyList entities, AttackEventArgs eventArgs) @@ -83,13 +81,15 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee return true; } - void IAttack.Attack(AttackEventArgs eventArgs) + bool IAttack.WideAttack(AttackEventArgs eventArgs) { - var curTime = IoCManager.Resolve().CurTime; - var span = curTime - _lastAttackTime; - if(span.TotalSeconds < _cooldownTime) { - return; - } + if (!eventArgs.WideAttack) return true; + + var curTime = _gameTiming.CurTime; + + if(curTime < _cooldownEnd) + return true; + var location = eventArgs.User.Transform.GridPosition; var angle = new Angle(eventArgs.ClickLocation.ToMapPos(_mapManager) - location.ToMapPos(_mapManager)); @@ -103,7 +103,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee } else { - audioSystem.PlayFromEntity("/Audio/Weapons/punchmiss.ogg", eventArgs.User); + audioSystem.PlayFromEntity(_missSound, eventArgs.User); } var hitEntities = new List(); @@ -114,26 +114,82 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee if (entity.TryGetComponent(out IDamageableComponent damageComponent)) { - damageComponent.ChangeDamage(DamageType.Blunt, Damage, false, Owner); + damageComponent.ChangeDamage(DamageType, Damage, false, Owner); hitEntities.Add(entity); } } - if(!OnHitEntities(hitEntities, eventArgs)) return; + if(!OnHitEntities(hitEntities, eventArgs)) return false; if (Arc != null) { - var sys = _entitySystemManager.GetEntitySystem(); - sys.SendAnimation(Arc, angle, eventArgs.User, hitEntities); + var sys = EntitySystem.Get(); + sys.SendAnimation(Arc, angle, eventArgs.User, Owner, hitEntities); } - _lastAttackTime = IoCManager.Resolve().CurTime; + _lastAttackTime = curTime; + _cooldownEnd = _lastAttackTime + TimeSpan.FromSeconds(ArcCooldownTime); if (Owner.TryGetComponent(out ItemCooldownComponent cooldown)) { cooldown.CooldownStart = _lastAttackTime; - cooldown.CooldownEnd = _lastAttackTime + TimeSpan.FromSeconds(_cooldownTime); + cooldown.CooldownEnd = _cooldownEnd; } + + return true; + } + + bool IAttack.ClickAttack(AttackEventArgs eventArgs) + { + if (eventArgs.WideAttack) return false; + + var curTime = _gameTiming.CurTime; + + if(curTime < _cooldownEnd || !eventArgs.Target.IsValid()) + return true; + + var target = eventArgs.TargetEntity; + + var location = eventArgs.User.Transform.GridPosition; + var angle = new Angle(eventArgs.ClickLocation.ToMapPos(_mapManager) - location.ToMapPos(_mapManager)); + + var audioSystem = EntitySystem.Get(); + if (target != null) + { + audioSystem.PlayFromEntity( _hitSound, target); + } + else + { + audioSystem.PlayFromEntity(_missSound, eventArgs.User); + return false; + } + + if (target.TryGetComponent(out IDamageableComponent damageComponent)) + { + damageComponent.ChangeDamage(DamageType, Damage, false, Owner); + } + + var targets = new[] {target}; + + if (!OnHitEntities(targets, eventArgs)) + return false; + + if (ClickArc != null) + { + var sys = EntitySystem.Get(); + sys.SendAnimation(ClickArc, angle, eventArgs.User, Owner, targets, ClickAttackEffect); + } + + _lastAttackTime = curTime; + _cooldownEnd = _lastAttackTime + TimeSpan.FromSeconds(CooldownTime); + + if (Owner.TryGetComponent(out ItemCooldownComponent cooldown)) + { + cooldown.CooldownStart = _lastAttackTime; + cooldown.CooldownEnd = _cooldownEnd; + } + + return true; } private HashSet ArcRayCast(Vector2 position, Angle angle, IEntity ignore) @@ -149,7 +205,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee for (var i = 0; i < increments; i++) { var castAngle = new Angle(baseAngle + increment * i); - var res = _physicsManager.IntersectRay(mapId, new CollisionRay(position, castAngle.ToVec(), 23), _range, ignore).FirstOrDefault(); + var res = _physicsManager.IntersectRay(mapId, new CollisionRay(position, castAngle.ToVec(), 23), Range, ignore).FirstOrDefault(); if (res.HitEntity != null) { resSet.Add(res.HitEntity); diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs index 6ede88e76a..18e3e5c764 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/StunbatonComponent.cs @@ -31,7 +31,6 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee public class StunbatonComponent : MeleeWeaponComponent, IUse, IExamine, IMapInit, IInteractUsing { [Dependency] private readonly IRobustRandom _robustRandom = default!; - [Dependency] private readonly ISharedNotifyManager _notifyManager = default!; public override string Name => "Stunbaton"; @@ -165,14 +164,14 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee { EntitySystem.Get().PlayAtCoords("/Audio/Machines/button.ogg", Owner.Transform.GridPosition, AudioHelpers.WithVariation(0.25f)); - _notifyManager.PopupMessage(Owner, user, Loc.GetString("Cell missing...")); + Owner.PopupMessage(user, Loc.GetString("Cell missing...")); return; } if (cell.CurrentCharge < EnergyPerUse) { EntitySystem.Get().PlayAtCoords("/Audio/Machines/button.ogg", Owner.Transform.GridPosition, AudioHelpers.WithVariation(0.25f)); - _notifyManager.PopupMessage(Owner, user, Loc.GetString("Dead cell...")); + Owner.PopupMessage(user, Loc.GetString("Dead cell...")); return; } @@ -269,12 +268,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee if (component.Cell == null) { - data.Text = "Eject cell (cell missing)"; + data.Text = Loc.GetString("Eject cell (cell missing)"); data.Visibility = VerbVisibility.Disabled; } else { - data.Text = "Eject cell"; + data.Text = Loc.GetString("Eject cell"); } } diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs index e97f95973b..1cb559aeaa 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs @@ -25,6 +25,8 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition [RegisterComponent] public class AmmoComponent : Component, IExamine { + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override string Name => "Ammo"; public BallisticCaliber Caliber => _caliber; private BallisticCaliber _caliber; @@ -128,14 +130,14 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition return entity; } - public void MuzzleFlash(GridCoordinates grid, Angle angle) + public void MuzzleFlash(IEntity entity, Angle angle) { if (_muzzleFlashSprite == null) { return; } - var time = IoCManager.Resolve().CurTime; + var time = _gameTiming.CurTime; var deathTime = time + TimeSpan.FromMilliseconds(200); // Offset the sprite so it actually looks like it's coming from the gun var offset = angle.ToVec().Normalized / 2; @@ -145,7 +147,8 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition EffectSprite = _muzzleFlashSprite, Born = time, DeathTime = deathTime, - Coordinates = grid.Translated(offset), + AttachedEntityUid = entity.Uid, + AttachedOffset = offset, //Rotated from east facing Rotation = (float) angle.Theta, Color = Vector4.Multiply(new Vector4(255, 255, 255, 255), 1.0f), diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs index 4f16ffc90a..0430263cd0 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs @@ -25,6 +25,8 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels [RegisterComponent] public sealed class RevolverBarrelComponent : ServerRangedBarrelComponent { + [Dependency] private readonly IRobustRandom _random = default!; + public override string Name => "RevolverBarrel"; public override uint? NetID => ContentNetIDs.REVOLVER_BARREL; @@ -176,7 +178,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels /// public void Spin() { - var random = IoCManager.Resolve().Next(_ammoSlots.Length - 1); + var random = _random.Next(_ammoSlots.Length - 1); _currentSlot = random; if (_soundSpin != null) { diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs index d81aa8115e..e6e6094dab 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs @@ -18,6 +18,7 @@ using Robust.Shared.Audio; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; using Robust.Shared.Map; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -302,12 +303,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels if (component.PowerCell == null) { - data.Text = "Eject cell (cell missing)"; + data.Text = Loc.GetString("Eject cell (cell missing)"); data.Visibility = VerbVisibility.Disabled; } else { - data.Text = "Eject cell"; + data.Text = Loc.GetString("Eject cell"); } } diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs index 454f165ee0..1ee780b0d9 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs @@ -260,7 +260,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels if (CanMuzzleFlash) { - ammoComponent.MuzzleFlash(Owner.Transform.GridPosition, angle); + ammoComponent.MuzzleFlash(Owner, angle); } if (ammoComponent.Caseless) diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs index 5c8370b7e8..f490be0c1a 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs @@ -32,6 +32,10 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged [RegisterComponent] public sealed class ServerRangedWeaponComponent : SharedRangedWeaponComponent, IHandSelected { + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IRobustRandom _random = default!; + private TimeSpan _lastFireTime; [ViewVariables(VVAccess.ReadWrite)] @@ -102,7 +106,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged if (msg.TargetGrid != GridId.Invalid) { // grid pos - if (!IoCManager.Resolve().TryGetGrid(msg.TargetGrid, out var grid)) + if (!_mapManager.TryGetGrid(msg.TargetGrid, out var grid)) { // Client sent us a message with an invalid grid. break; @@ -147,7 +151,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged return; } - var curTime = IoCManager.Resolve().CurTime; + var curTime = _gameTiming.CurTime; var span = curTime - _lastFireTime; if (span.TotalSeconds < 1 / _barrel.FireRate) { @@ -158,7 +162,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged if (ClumsyCheck && user.HasComponent() && - IoCManager.Resolve().Prob(ClumsyExplodeChance)) + _random.Prob(ClumsyExplodeChance)) { var soundSystem = EntitySystem.Get(); soundSystem.PlayAtCoords("/Audio/Items/bikehorn.ogg", @@ -178,7 +182,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged stun.Paralyze(3f); } - user.PopupMessage(user, Loc.GetString("The gun blows up in your face!")); + user.PopupMessage(Loc.GetString("The gun blows up in your face!")); Owner.Delete(); return; diff --git a/Content.Server/GameObjects/Components/WiresComponent.cs b/Content.Server/GameObjects/Components/WiresComponent.cs index 50ea153a2d..31edce94c6 100644 --- a/Content.Server/GameObjects/Components/WiresComponent.cs +++ b/Content.Server/GameObjects/Components/WiresComponent.cs @@ -6,13 +6,14 @@ using System.Threading.Tasks; using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.VendingMachines; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Utility; using Content.Shared.GameObjects.Components; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; @@ -35,7 +36,6 @@ namespace Content.Server.GameObjects.Components public class WiresComponent : SharedWiresComponent, IInteractUsing, IExamine, IMapInit { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; private AudioSystem _audioSystem = default!; @@ -383,15 +383,13 @@ namespace Content.Server.GameObjects.Components if (!player.TryGetComponent(out IHandsComponent? handsComponent)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, - Loc.GetString("You have no hands.")); + Owner.PopupMessage(player, Loc.GetString("You have no hands.")); return; } - if (!EntitySystem.Get().InRangeUnobstructed(player.Transform.MapPosition, Owner.Transform.MapPosition, ignoredEnt: Owner)) + if (!player.InRangeUnobstructed(Owner)) { - _notifyManager.PopupMessage(Owner.Transform.GridPosition, player, - Loc.GetString("You can't reach there!")); + Owner.PopupMessage(player, Loc.GetString("You can't reach there!")); return; } @@ -404,8 +402,7 @@ namespace Content.Server.GameObjects.Components case WiresAction.Cut: if (tool == null || !tool.HasQuality(ToolQuality.Cutting)) { - _notifyManager.PopupMessageCursor(player, - Loc.GetString("You need to hold a wirecutter in your hand!")); + player.PopupMessageCursor(Loc.GetString("You need to hold a wirecutter in your hand!")); return; } @@ -416,8 +413,7 @@ namespace Content.Server.GameObjects.Components case WiresAction.Mend: if (tool == null || !tool.HasQuality(ToolQuality.Cutting)) { - _notifyManager.PopupMessageCursor(player, - Loc.GetString("You need to hold a wirecutter in your hand!")); + player.PopupMessageCursor(Loc.GetString("You need to hold a wirecutter in your hand!")); return; } @@ -428,15 +424,13 @@ namespace Content.Server.GameObjects.Components case WiresAction.Pulse: if (tool == null || !tool.HasQuality(ToolQuality.Multitool)) { - _notifyManager.PopupMessageCursor(player, - Loc.GetString("You need to hold a multitool in your hand!")); + player.PopupMessageCursor(Loc.GetString("You need to hold a multitool in your hand!")); return; } if (wire.IsCut) { - _notifyManager.PopupMessageCursor(player, - Loc.GetString("You can't pulse a wire that's been cut!")); + player.PopupMessageCursor(Loc.GetString("You can't pulse a wire that's been cut!")); return; } diff --git a/Content.Server/GameObjects/EntitySystems/AI/Steering/AiSteeringSystem.cs b/Content.Server/GameObjects/EntitySystems/AI/Steering/AiSteeringSystem.cs index fbb36045ab..2d852011b0 100644 --- a/Content.Server/GameObjects/EntitySystems/AI/Steering/AiSteeringSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/AI/Steering/AiSteeringSystem.cs @@ -7,8 +7,8 @@ using Content.Server.GameObjects.Components.Movement; using Content.Server.GameObjects.EntitySystems.AI.Pathfinding; using Content.Server.GameObjects.EntitySystems.AI.Pathfinding.Pathfinders; using Content.Server.GameObjects.EntitySystems.JobQueues; -using Content.Server.Utility; using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Utility; using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects.Components; using Robust.Shared.GameObjects.Systems; @@ -281,7 +281,7 @@ namespace Content.Server.GameObjects.EntitySystems.AI.Steering if (targetDistance <= steeringRequest.ArrivalDistance && steeringRequest.TimeUntilInteractionCheck <= 0.0f) { if (!steeringRequest.RequiresInRangeUnobstructed || - InteractionChecks.InRangeUnobstructed(entity, steeringRequest.TargetMap, steeringRequest.ArrivalDistance, ignoredEnt: entity)) + entity.InRangeUnobstructed(steeringRequest.TargetMap, steeringRequest.ArrivalDistance, popup: true)) { // TODO: Need cruder LOS checks for ranged weaps controller.VelocityDir = Vector2.Zero; diff --git a/Content.Server/GameObjects/EntitySystems/AntimatterEngineSystem.cs b/Content.Server/GameObjects/EntitySystems/AntimatterEngineSystem.cs new file mode 100644 index 0000000000..0b29c0f3e7 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/AntimatterEngineSystem.cs @@ -0,0 +1,32 @@ +using Content.Server.GameObjects.Components.Power.AME; +using JetBrains.Annotations; +using Robust.Shared.GameObjects.Systems; + +namespace Content.Server.GameObjects.EntitySystems +{ + [UsedImplicitly] + public class AntimatterEngineSystem : EntitySystem + { + private float _accumulatedFrameTime; + + public override void Initialize() + { + base.Initialize(); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + _accumulatedFrameTime += frameTime; + if (_accumulatedFrameTime >= 10) + { + foreach (var comp in ComponentManager.EntityQuery()) + { + comp.OnUpdate(frameTime); + } + _accumulatedFrameTime -= 10; + } + + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/BarotraumaSystem.cs b/Content.Server/GameObjects/EntitySystems/BarotraumaSystem.cs index 2210afb488..d607c3d984 100644 --- a/Content.Server/GameObjects/EntitySystems/BarotraumaSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/BarotraumaSystem.cs @@ -7,7 +7,7 @@ namespace Content.Server.GameObjects.EntitySystems [UsedImplicitly] public class BarotraumaSystem : EntitySystem { - private const float TimePerUpdate = 0.5f; + private const float TimePerUpdate = 3f; private float _timer = 0f; diff --git a/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs b/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs index c46ffa7bb7..2fd492635f 100644 --- a/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Click/InteractionSystem.cs @@ -12,8 +12,8 @@ using Content.Shared.GameObjects.EntitySystemMessages; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Input; using Content.Shared.Interfaces.GameObjects.Components; -using Content.Shared.Physics; using Content.Shared.Physics.Pull; +using Content.Shared.Utility; using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Server.Interfaces.Player; @@ -71,7 +71,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click var interactionArgs = new DragDropEventArgs(performer, msg.DropLocation, dropped, target); // must be in range of both the target and the object they are drag / dropping - if (!InteractionChecks.InRangeUnobstructed(interactionArgs)) return; + if (!interactionArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) return; // trigger dragdrops on the dropped entity foreach (var dragDrop in dropped.GetAllComponents()) @@ -145,7 +145,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click // all activates should only fire when in range / unbostructed var activateEventArgs = new ActivateEventArgs {User = user, Target = used}; - if (InteractionChecks.InRangeUnobstructed(activateEventArgs)) + if (activateEventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { activateComp.Activate(activateEventArgs); } @@ -176,7 +176,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click if (userEntity.TryGetComponent(out CombatModeComponent combatMode) && combatMode.IsInCombatMode) { - DoAttack(userEntity, coords); + DoAttack(userEntity, coords, true); } return true; @@ -198,7 +198,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click if (entity.TryGetComponent(out CombatModeComponent combatMode) && combatMode.IsInCombatMode) { - DoAttack(entity, coords); + DoAttack(entity, coords, false); } else { @@ -229,7 +229,10 @@ namespace Content.Server.GameObjects.EntitySystems.Click return true; } - UserInteraction(userEntity, coords, uid); + if(userEntity.TryGetComponent(out CombatModeComponent combat) && combat.IsInCombatMode) + DoAttack(userEntity, coords, false, uid); + else + UserInteraction(userEntity, coords, uid); return true; } @@ -453,7 +456,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click }; // all AttackBys should only happen when in range / unobstructed, so no range check is needed - if (InteractionChecks.InRangeUnobstructed(attackByEventArgs)) + if (attackByEventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { foreach (var attackBy in attackBys) { @@ -501,8 +504,8 @@ namespace Content.Server.GameObjects.EntitySystems.Click var attackHands = attacked.GetAllComponents().ToList(); var attackHandEventArgs = new InteractHandEventArgs {User = user, Target = attacked}; - // all attackHands should only fire when in range / unbostructed - if (InteractionChecks.InRangeUnobstructed(attackHandEventArgs)) + // all attackHands should only fire when in range / unobstructed + if (attackHandEventArgs.InRangeUnobstructed(ignoreInsideBlocker: true, popup: true)) { foreach (var attackHand in attackHands) { @@ -790,7 +793,7 @@ namespace Content.Server.GameObjects.EntitySystems.Click } } - private void DoAttack(IEntity player, GridCoordinates coordinates) + private void DoAttack(IEntity player, GridCoordinates coordinates, bool wideAttack, EntityUid target = default) { // Verify player is on the same map as the entity he clicked on if (_mapManager.GetGrid(coordinates.GridID).ParentMapId != player.Transform.MapID) @@ -800,12 +803,13 @@ namespace Content.Server.GameObjects.EntitySystems.Click return; } - if (!ActionBlockerSystem.CanAttack(player)) + if (!ActionBlockerSystem.CanAttack(player) || + (!wideAttack && !InRangeUnobstructed(player.Transform.MapPosition, coordinates.ToMap(_mapManager), ignoreInsideBlocker:true))) { return; } - var eventArgs = new AttackEventArgs(player, coordinates); + var eventArgs = new AttackEventArgs(player, coordinates, wideAttack, target); // Verify player has a hand, and find what object he is currently holding in his active hand if (player.TryGetComponent(out var hands)) @@ -814,22 +818,20 @@ namespace Content.Server.GameObjects.EntitySystems.Click if (item != null) { - var attacked = false; foreach (var attackComponent in item.GetAllComponents()) { - attackComponent.Attack(eventArgs); - attacked = true; - } - if (attacked) - { - return; + if(wideAttack ? attackComponent.WideAttack(eventArgs) : attackComponent.ClickAttack(eventArgs)) + return; } } } foreach (var attackComponent in player.GetAllComponents()) { - attackComponent.Attack(eventArgs); + if (wideAttack) + attackComponent.WideAttack(eventArgs); + else + attackComponent.ClickAttack(eventArgs); } } } diff --git a/Content.Server/GameObjects/EntitySystems/CloningSystem.cs b/Content.Server/GameObjects/EntitySystems/CloningSystem.cs index 469c0f6157..e9bb60a850 100644 --- a/Content.Server/GameObjects/EntitySystems/CloningSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/CloningSystem.cs @@ -1,24 +1,42 @@ using System.Collections.Generic; +using System.Linq; +using Content.Server.GameObjects.Components.Medical; +using Content.Server.Mobs; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; +using Content.Shared.GameObjects.Components.Medical; +using Microsoft.AspNetCore.Server.Kestrel.Core; namespace Content.Server.GameObjects.EntitySystems { internal sealed class CloningSystem : EntitySystem { - public static List scannedUids = new List(); - - public static void AddToScannedUids(EntityUid uid) + public override void Update(float frameTime) { - if (!scannedUids.Contains(uid)) + foreach (var comp in ComponentManager.EntityQuery()) { - scannedUids.Add(uid); + comp.Update(frameTime); } } - public static bool HasUid(EntityUid uid) + public static Dictionary Minds = new Dictionary(); + + public static void AddToDnaScans(Mind mind) { - return scannedUids.Contains(uid); + if (!Minds.ContainsValue(mind)) + { + Minds.Add(Minds.Count(), mind); + } + } + + public static bool HasDnaScan(Mind mind) + { + return Minds.ContainsValue(mind); + } + + public static Dictionary getIdToUser() + { + return Minds.ToDictionary(m => m.Key, m => m.Value.CharacterName); } } } diff --git a/Content.Server/GameObjects/EntitySystems/ConstructionSystem.cs b/Content.Server/GameObjects/EntitySystems/ConstructionSystem.cs index e766994372..557a6e8bf7 100644 --- a/Content.Server/GameObjects/EntitySystems/ConstructionSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/ConstructionSystem.cs @@ -6,19 +6,18 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Stack; -using Content.Server.GameObjects.EntitySystems.Click; using Content.Server.Utility; using Content.Shared.Construction; using Content.Shared.GameObjects.Components; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Utility; using JetBrains.Annotations; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; -using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.Map; @@ -91,8 +90,7 @@ namespace Content.Server.GameObjects.EntitySystems if(targetEnt is null || handEnt is null) return; - var interaction = Get(); - if(!interaction.InRangeUnobstructed(handEnt.Transform.MapPosition, targetEnt.Transform.MapPosition, ignoredEnt: targetEnt, ignoreInsideBlocker: true)) + if (!handEnt.InRangeUnobstructed(targetEnt, ignoreInsideBlocker: true)) return; // Cannot deconstruct an entity with no prototype. @@ -246,8 +244,7 @@ namespace Content.Server.GameObjects.EntitySystems { var prototype = _prototypeManager.Index(prototypeName); - if (!InteractionChecks.InRangeUnobstructed(placingEnt, loc.ToMap(_mapManager), - ignoredEnt: placingEnt, ignoreInsideBlocker: prototype.CanBuildInImpassable)) + if (!placingEnt.InRangeUnobstructed(loc, ignoreInsideBlocker: prototype.CanBuildInImpassable, popup: true)) { return false; } @@ -377,7 +374,7 @@ namespace Content.Server.GameObjects.EntitySystems var constructPrototype = constructionComponent.Prototype; if (constructPrototype.CanBuildInImpassable == false) { - if (!InteractionChecks.InRangeUnobstructed(user, constructEntity.Transform.MapPosition)) + if (!user.InRangeUnobstructed(constructEntity, popup: true)) return false; } diff --git a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs index 2f45195624..7cf9bdb56d 100644 --- a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs +++ b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs @@ -1,7 +1,6 @@ #nullable enable using System; using System.Threading.Tasks; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Mobs; @@ -86,7 +85,16 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter if (IsFinished()) { - Tcs.SetResult(DoAfterStatus.Finished); + // Do the final checks here + if (!TryPostCheck()) + { + Tcs.SetResult(DoAfterStatus.Cancelled); + } + else + { + Tcs.SetResult(DoAfterStatus.Finished); + } + return; } @@ -98,6 +106,11 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter private bool IsCancelled() { + if (EventArgs.User.Deleted || EventArgs.Target?.Deleted == true) + { + return true; + } + //https://github.com/tgstation/tgstation/blob/1aa293ea337283a0191140a878eeba319221e5df/code/__HELPERS/mobs.dm if (EventArgs.CancelToken.IsCancellationRequested) { @@ -157,10 +170,15 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter } } } - + return false; } + private bool TryPostCheck() + { + return EventArgs.PostCheck?.Invoke() != false; + } + private bool IsFinished() { if (Elapsed <= EventArgs.Delay) diff --git a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterEventArgs.cs b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterEventArgs.cs index 7906c616eb..efc7d8d797 100644 --- a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterEventArgs.cs +++ b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterEventArgs.cs @@ -1,6 +1,10 @@ #nullable enable using System; using System.Threading; +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Physics; +using Content.Shared.Utility; +using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; // ReSharper disable UnassignedReadonlyField @@ -9,6 +13,18 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter { public sealed class DoAfterEventArgs { + // Premade checks + public Func GetInRangeUnobstructed(CollisionGroup collisionMask = CollisionGroup.MobMask) + { + if (Target == null) + { + throw new InvalidOperationException("Can't supply a null target to DoAfterEventArgs.GetInRangeUnobstructed"); + } + + bool Ignored(IEntity entity) => entity == User || entity == Target; + return () => User.InRangeUnobstructed(Target, collisionMask: collisionMask, predicate: Ignored); + } + /// /// The entity invoking do_after /// @@ -49,6 +65,14 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter public bool BreakOnDamage { get; set; } public bool BreakOnStun { get; set; } + /// + /// Requires a function call once at the end (like InRangeUnobstructed). + /// + /// + /// Anything that needs a pre-check should do it itself so no DoAfterState is ever sent to the client. + /// + public Func? PostCheck { get; set; } = null; + /// /// Additional conditions that need to be met. Return false to cancel. /// diff --git a/Content.Server/GameObjects/EntitySystems/ExpendableLightSystem.cs b/Content.Server/GameObjects/EntitySystems/ExpendableLightSystem.cs new file mode 100644 index 0000000000..70927c4975 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/ExpendableLightSystem.cs @@ -0,0 +1,18 @@ + +using JetBrains.Annotations; +using Robust.Shared.GameObjects.Systems; +using Content.Server.GameObjects.Components.Interactable; + +namespace Content.Server.GameObjects.EntitySystems +{ + public class ExpendableLightSystem : EntitySystem + { + public override void Update(float frameTime) + { + foreach (var light in ComponentManager.EntityQuery()) + { + light.Update(frameTime); + } + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/HandsSystem.cs b/Content.Server/GameObjects/EntitySystems/HandsSystem.cs index 68d95e7028..967335dcc5 100644 --- a/Content.Server/GameObjects/EntitySystems/HandsSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/HandsSystem.cs @@ -4,12 +4,12 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Stack; using Content.Server.GameObjects.EntitySystems.Click; -using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Server.Throw; using Content.Shared.GameObjects.Components.Inventory; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Input; +using Content.Shared.Interfaces; using JetBrains.Annotations; using Robust.Server.GameObjects.EntitySystemMessages; using Robust.Server.Interfaces.Player; @@ -28,7 +28,6 @@ namespace Content.Server.GameObjects.EntitySystems internal sealed class HandsSystem : EntitySystem { [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly IServerNotifyManager _notifyManager = default!; private const float ThrowForce = 1.5f; // Throwing force of mobs in Newtons @@ -125,7 +124,7 @@ namespace Content.Server.GameObjects.EntitySystems var entToDesiredDropCoords = coords.Position - entCoords; var targetLength = Math.Min(entToDesiredDropCoords.Length, SharedInteractionSystem.InteractionRange - 0.001f); // InteractionRange is reduced due to InRange not dealing with floating point error var newCoords = new GridCoordinates((entToDesiredDropCoords.Normalized * targetLength) + entCoords, coords.GridID); - var rayLength = Get().UnobstructedRayLength(ent.Transform.MapPosition, newCoords.ToMap(_mapManager), ignoredEnt: ent); + var rayLength = Get().UnobstructedDistance(ent.Transform.MapPosition, newCoords.ToMap(_mapManager), ignoredEnt: ent); handsComp.Drop(handsComp.ActiveHand, new GridCoordinates(entCoords + (entToDesiredDropCoords.Normalized * rayLength), coords.GridID)); @@ -202,9 +201,8 @@ namespace Content.Server.GameObjects.EntitySystems if (!inventoryComp.TryGetSlotItem(equipementSlot, out ItemComponent equipmentItem) || !equipmentItem.Owner.TryGetComponent(out var storageComponent)) { - _notifyManager.PopupMessage(plyEnt, plyEnt, - Loc.GetString("You have no {0} to take something out of!", - EquipmentSlotDefines.SlotNames[equipementSlot].ToLower())); + plyEnt.PopupMessage(Loc.GetString("You have no {0} to take something out of!", + EquipmentSlotDefines.SlotNames[equipementSlot].ToLower())); return; } @@ -218,9 +216,8 @@ namespace Content.Server.GameObjects.EntitySystems { if (storageComponent.StoredEntities.Count == 0) { - _notifyManager.PopupMessage(plyEnt, plyEnt, - Loc.GetString("There's nothing in your {0} to take out!", - EquipmentSlotDefines.SlotNames[equipementSlot].ToLower())); + plyEnt.PopupMessage(Loc.GetString("There's nothing in your {0} to take out!", + EquipmentSlotDefines.SlotNames[equipementSlot].ToLower())); } else { diff --git a/Content.Server/GameObjects/EntitySystems/MeleeWeaponSystem.cs b/Content.Server/GameObjects/EntitySystems/MeleeWeaponSystem.cs index 82ba72537a..0613f1ec58 100644 --- a/Content.Server/GameObjects/EntitySystems/MeleeWeaponSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/MeleeWeaponSystem.cs @@ -9,10 +9,10 @@ namespace Content.Server.GameObjects.EntitySystems { public sealed class MeleeWeaponSystem : EntitySystem { - public void SendAnimation(string arc, Angle angle, IEntity attacker, IEnumerable hits) + public void SendAnimation(string arc, Angle angle, IEntity attacker, IEntity source, IEnumerable hits, bool textureEffect = false) { - RaiseNetworkEvent(new MeleeWeaponSystemMessages.PlayMeleeWeaponAnimationMessage(arc, angle, attacker.Uid, - hits.Select(e => e.Uid).ToList())); + RaiseNetworkEvent(new MeleeWeaponSystemMessages.PlayMeleeWeaponAnimationMessage(arc, angle, attacker.Uid, source.Uid, + hits.Select(e => e.Uid).ToList(), textureEffect)); } } } diff --git a/Content.Server/GameObjects/EntitySystems/PointingSystem.cs b/Content.Server/GameObjects/EntitySystems/PointingSystem.cs index 26d34004f4..d271d0a052 100644 --- a/Content.Server/GameObjects/EntitySystems/PointingSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/PointingSystem.cs @@ -102,7 +102,7 @@ namespace Content.Server.GameObjects.EntitySystems if (!InRange(coords, player.Transform.GridPosition)) { - player.PopupMessage(player, Loc.GetString("You can't reach there!")); + player.PopupMessage(Loc.GetString("You can't reach there!")); return false; } diff --git a/Content.Server/GameObjects/EntitySystems/SignalLinkerSystem.cs b/Content.Server/GameObjects/EntitySystems/SignalLinkerSystem.cs new file mode 100644 index 0000000000..04e7fee928 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/SignalLinkerSystem.cs @@ -0,0 +1,140 @@ +using Content.Server.GameObjects.Components.MachineLinking; +using Robust.Server.Interfaces.Console; +using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Input; +using Robust.Shared.Input.Binding; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Map; +using Robust.Shared.Network; +using Robust.Shared.Players; +using System.Collections.Generic; + +namespace Content.Server.GameObjects.EntitySystems +{ + public class SignalLinkerSystem : EntitySystem + { + private Dictionary _transmitters; + + public override void Initialize() + { + base.Initialize(); + + _transmitters = new Dictionary(); + } + + public void SignalLinkerKeybind(NetSessionId id, bool? enable) + { + if (enable == null) + { + enable = !_transmitters.ContainsKey(id); + } + + if (enable == true) + { + if (_transmitters.ContainsKey(id)) + { + return; + } + + if (_transmitters.Count == 0) + { + CommandBinds.Builder + .Bind(EngineKeyFunctions.Use, new PointerInputCmdHandler(HandleUse)) + .Register(); + } + + _transmitters.Add(id, null); + + } + else if (enable == false) + { + if (!_transmitters.ContainsKey(id)) + { + return; + } + + _transmitters.Remove(id); + if (_transmitters.Count == 0) + { + CommandBinds.Unregister(); + } + } + } + + private bool HandleUse(ICommonSession session, GridCoordinates coords, EntityUid uid) + { + if (!_transmitters.TryGetValue(session.SessionId, out var signalTransmitter)) + { + return false; + } + + if (!EntityManager.TryGetEntity(uid, out var entity)) + { + return false; + } + + if (entity == null) + { + return false; + } + + if (entity.TryGetComponent(out var signalReceiver)) + { + if (signalReceiver.Interact(session.AttachedEntity, signalTransmitter)) + { + return true; + } + } + + if (entity.TryGetComponent(out var transmitter)) + { + _transmitters[session.SessionId] = transmitter.GetSignal(session.AttachedEntity); + + return true; + } + + return false; + } + + } + + public class SignalLinkerCommand : IClientCommand + { + public string Command => "signallink"; + + public string Description => "Turns on signal linker mode. Click a transmitter to tune that signal and then click on each receiver to tune them to the transmitter signal."; + + public string Help => "signallink (on/off)"; + + public void Execute(IConsoleShell shell, IPlayerSession player, string[] args) + { + bool? enable = null; + if (args.Length > 0) + { + if (args[0] == "on") + enable = true; + else if (args[0] == "off") + enable = false; + else if (bool.TryParse(args[0], out var boolean)) + enable = boolean; + else if (int.TryParse(args[0], out var num)) + { + if (num == 1) + enable = true; + else if (num == 0) + enable = false; + } + } + + if (!IoCManager.Resolve().TryGetEntitySystem(out var system)) + { + return; + } + + system.SignalLinkerKeybind(player.SessionId, enable); + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/StandingStateSystem.cs b/Content.Server/GameObjects/EntitySystems/StandingStateSystem.cs new file mode 100644 index 0000000000..49165efd87 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/StandingStateSystem.cs @@ -0,0 +1,65 @@ +using Content.Server.Interfaces.GameObjects.Components.Items; +using Content.Shared.Audio; +using Content.Shared.GameObjects.Components.Rotation; +using Content.Shared.GameObjects.EntitySystems; +using JetBrains.Annotations; +using Robust.Server.GameObjects; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.GameObjects.EntitySystems +{ + [UsedImplicitly] + public class StandingStateSystem : SharedStandingStateSystem + { + protected override bool OnDown(IEntity entity, bool playSound = true, bool dropItems = true, bool force = false) + { + if (!entity.TryGetComponent(out AppearanceComponent appearance)) + { + return false; + } + + var newState = RotationState.Horizontal; + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); + + if (newState != oldState) + { + appearance.SetData(RotationVisuals.RotationState, newState); + } + + if (playSound) + { + var file = AudioHelpers.GetRandomFileFromSoundCollection("bodyfall"); + Get().PlayFromEntity(file, entity, AudioHelpers.WithVariation(0.25f)); + } + + return true; + } + + protected override bool OnStand(IEntity entity) + { + if (!entity.TryGetComponent(out AppearanceComponent appearance)) return false; + + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); + var newState = RotationState.Vertical; + + if (newState == oldState) return false; + + appearance.SetData(RotationVisuals.RotationState, newState); + + return true; + } + + public override void DropAllItemsInHands(IEntity entity, bool doMobChecks = true) + { + base.DropAllItemsInHands(entity, doMobChecks); + + if (!entity.TryGetComponent(out IHandsComponent hands)) return; + + foreach (var heldItem in hands.GetAllHeldItems()) + { + hands.Drop(heldItem.Owner, doMobChecks); + } + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs b/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs index a40029da44..2f436c922a 100644 --- a/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs @@ -34,7 +34,7 @@ namespace Content.Server.GameObjects.EntitySystems.StationEvents public override void Initialize() { base.Initialize(); - _speciesQuery = new TypeEntityQuery(typeof(IBodyManagerComponent)); + _speciesQuery = new TypeEntityQuery(typeof(ISharedBodyManagerComponent)); } public override void Update(float frameTime) diff --git a/Content.Server/GameObjects/EntitySystems/StationEvents/StationEventSystem.cs b/Content.Server/GameObjects/EntitySystems/StationEvents/StationEventSystem.cs index dd02a67a76..6ff103b01b 100644 --- a/Content.Server/GameObjects/EntitySystems/StationEvents/StationEventSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/StationEvents/StationEventSystem.cs @@ -237,6 +237,7 @@ namespace Content.Server.GameObjects.EntitySystems.StationEvents else { CurrentEvent = stationEvent; + CurrentEvent.Startup(); } } diff --git a/Content.Server/GameObjects/EntitySystems/VerbSystem.cs b/Content.Server/GameObjects/EntitySystems/VerbSystem.cs index 6b625cdf25..c48909ad1d 100644 --- a/Content.Server/GameObjects/EntitySystems/VerbSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/VerbSystem.cs @@ -12,7 +12,7 @@ using static Content.Shared.GameObjects.EntitySystemMessages.VerbSystemMessages; namespace Content.Server.GameObjects.EntitySystems { - public class VerbSystem : EntitySystem + public class VerbSystem : SharedVerbSystem { [Dependency] private readonly IEntityManager _entityManager = default!; @@ -93,6 +93,11 @@ namespace Content.Server.GameObjects.EntitySystems return; } + if (!TryGetContextEntities(userEntity, entity.Transform.MapPosition, out var entities, true) || !entities.Contains(entity)) + { + return; + } + var data = new List(); //Get verbs, component dependent. foreach (var (component, verb) in VerbUtility.GetVerbs(entity)) diff --git a/Content.Server/GameTicking/GamePresets/PresetSuspicion.cs b/Content.Server/GameTicking/GamePresets/PresetSuspicion.cs index eb192dbea6..4569668edc 100644 --- a/Content.Server/GameTicking/GamePresets/PresetSuspicion.cs +++ b/Content.Server/GameTicking/GamePresets/PresetSuspicion.cs @@ -9,9 +9,14 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; using System.Collections.Generic; using System.Linq; +using Content.Server.GameObjects.Components.GUI; +using Content.Server.GameObjects.Components.Items.Storage; +using Content.Server.GameObjects.Components.PDA; using Content.Server.GameObjects.Components.Suspicion; using Content.Server.Mobs.Roles; using Content.Server.Mobs.Roles.Suspicion; +using Content.Shared.GameObjects.Components.Inventory; +using Content.Shared.GameObjects.Components.PDA; using Content.Shared.Roles; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.Configuration; @@ -32,6 +37,9 @@ namespace Content.Server.GameTicking.GamePresets public int MinTraitors { get; set; } public int PlayersPerTraitor { get; set; } + public int TraitorStartingBalance { get; set; } + + public override bool DisallowLateJoin => true; private static string TraitorID = "SuspicionTraitor"; @@ -42,6 +50,7 @@ namespace Content.Server.GameTicking.GamePresets cfg.RegisterCVar("game.suspicion_min_players", 5); cfg.RegisterCVar("game.suspicion_min_traitors", 2); cfg.RegisterCVar("game.suspicion_players_per_traitor", 5); + cfg.RegisterCVar("game.suspicion_starting_balance", 20); } public override bool Start(IReadOnlyList readyPlayers, bool force = false) @@ -49,6 +58,7 @@ namespace Content.Server.GameTicking.GamePresets MinPlayers = _cfg.GetCVar("game.suspicion_min_players"); MinTraitors = _cfg.GetCVar("game.suspicion_min_traitors"); PlayersPerTraitor = _cfg.GetCVar("game.suspicion_players_per_traitor"); + TraitorStartingBalance = _cfg.GetCVar("game.suspicion_starting_balance"); if (!force && readyPlayers.Count < MinPlayers) { @@ -109,6 +119,28 @@ namespace Content.Server.GameTicking.GamePresets var traitorRole = new SuspicionTraitorRole(mind, antagPrototype); mind.AddRole(traitorRole); traitors.Add(traitorRole); + // creadth: we need to create uplink for the antag. + // PDA should be in place already, so we just need to + // initiate uplink account. + var uplinkAccount = + new UplinkAccount(mind.OwnedEntity.Uid, + TraitorStartingBalance); + var inventory = mind.OwnedEntity.GetComponent(); + if (!inventory.TryGetSlotItem(EquipmentSlotDefines.Slots.IDCARD, out ItemComponent pdaItem)) + { + continue; + } + + var pda = pdaItem.Owner; + + var pdaComponent = pda.GetComponent(); + if (pdaComponent.IdSlotEmpty) + { + continue; + } + + pdaComponent.InitUplinkAccount(uplinkAccount); + } foreach (var player in list) @@ -127,6 +159,7 @@ namespace Content.Server.GameTicking.GamePresets return true; } + public override string ModeTitle => "Suspicion"; public override string Description => "Suspicion on the Space Station. There are traitors on board... Can you kill them before they kill you?"; } diff --git a/Content.Server/GameTicking/GameTicker.cs b/Content.Server/GameTicking/GameTicker.cs index 19383c0f37..54407dca9a 100644 --- a/Content.Server/GameTicking/GameTicker.cs +++ b/Content.Server/GameTicking/GameTicker.cs @@ -861,17 +861,6 @@ namespace Content.Server.GameTicking var accessTags = access.Tags; accessTags.UnionWith(jobPrototype.Access); pdaComponent.SetPDAOwner(characterName); - var mindComponent = mob.GetComponent(); - if (mindComponent.HasMind) //Redundancy checks. - { - if (mindComponent.Mind.AllRoles.Any(role => role.Antagonist)) //Give antags a new uplinkaccount. - { - var uplinkAccount = - new UplinkAccount(mob.Uid, - 20); //TODO: make me into a variable based on server pop or something. - pdaComponent.InitUplinkAccount(uplinkAccount); - } - } } private void AddManifestEntry(string characterName, string jobId) diff --git a/Content.Server/GlobalVerbs/ControlMobVerb.cs b/Content.Server/GlobalVerbs/ControlMobVerb.cs index 390094d763..48e226a855 100644 --- a/Content.Server/GlobalVerbs/ControlMobVerb.cs +++ b/Content.Server/GlobalVerbs/ControlMobVerb.cs @@ -6,6 +6,7 @@ using Robust.Server.Console; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; +using Robust.Shared.Localization; namespace Content.Server.GlobalVerbs { @@ -35,7 +36,7 @@ namespace Content.Server.GlobalVerbs if (groupController.CanCommand(player.playerSession, "controlmob")) { data.Visibility = VerbVisibility.Visible; - data.Text = "Control Mob"; + data.Text = Loc.GetString("Control Mob"); data.CategoryData = VerbCategories.Debug; } } diff --git a/Content.Server/GlobalVerbs/RejuvenateVerb.cs b/Content.Server/GlobalVerbs/RejuvenateVerb.cs index 8d49222da8..e7b949f6b8 100644 --- a/Content.Server/GlobalVerbs/RejuvenateVerb.cs +++ b/Content.Server/GlobalVerbs/RejuvenateVerb.cs @@ -6,6 +6,7 @@ using Robust.Server.Console; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; +using Robust.Shared.Localization; namespace Content.Server.GlobalVerbs { @@ -20,7 +21,7 @@ namespace Content.Server.GlobalVerbs public override void GetData(IEntity user, IEntity target, VerbData data) { - data.Text = "Rejuvenate"; + data.Text = Loc.GetString("Rejuvenate"); data.CategoryData = VerbCategories.Debug; data.Visibility = VerbVisibility.Invisible; diff --git a/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs b/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs index f261d6edc5..d18fe596ee 100644 --- a/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs +++ b/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs @@ -14,13 +14,13 @@ namespace Content.Server.Interfaces.GameObjects.Components.Interaction public class BodyPartAddedEventArgs : EventArgs { - public BodyPartAddedEventArgs(BodyPart part, string slotName) + public BodyPartAddedEventArgs(IBodyPart part, string slotName) { Part = part; SlotName = slotName; } - public BodyPart Part { get; } + public IBodyPart Part { get; } public string SlotName { get; } } @@ -36,13 +36,13 @@ namespace Content.Server.Interfaces.GameObjects.Components.Interaction public class BodyPartRemovedEventArgs : EventArgs { - public BodyPartRemovedEventArgs(BodyPart part, string slotName) + public BodyPartRemovedEventArgs(IBodyPart part, string slotName) { Part = part; SlotName = slotName; } - public BodyPart Part { get; } + public IBodyPart Part { get; } public string SlotName { get; } } diff --git a/Content.Server/Interfaces/GameObjects/ISuicideAct.cs b/Content.Server/Interfaces/GameObjects/ISuicideAct.cs index 78d0d9974f..a23353adac 100644 --- a/Content.Server/Interfaces/GameObjects/ISuicideAct.cs +++ b/Content.Server/Interfaces/GameObjects/ISuicideAct.cs @@ -14,12 +14,15 @@ namespace Content.Server.Interfaces.GameObjects //Damage type suicides Blunt, + Slash, Piercing, Heat, - Disintegration, - Cellular, - DNA, - Asphyxiation + Shock, + Cold, + Poison, + Radiation, + Asphyxiation, + Bloodloss } } diff --git a/Content.Server/Mobs/StandingStateHelper.cs b/Content.Server/Mobs/StandingStateHelper.cs deleted file mode 100644 index 3169b80503..0000000000 --- a/Content.Server/Mobs/StandingStateHelper.cs +++ /dev/null @@ -1,84 +0,0 @@ -using Content.Server.Interfaces.GameObjects.Components.Items; -using Content.Shared.Audio; -using Content.Shared.GameObjects.Components.Rotation; -using Content.Shared.GameObjects.EntitySystems; -using Robust.Server.GameObjects; -using Robust.Server.GameObjects.EntitySystems; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; - -namespace Content.Server.Mobs -{ - public static class StandingStateHelper - { - /// - /// Set's the mob standing state to down. - /// - /// The mob in question - /// Whether to play a sound when falling down or not - /// Whether to make the mob drop all the items on his hands - /// Whether or not to check if the entity can fall. - /// False if the mob was already downed or couldn't set the state - public static bool Down(IEntity entity, bool playSound = true, bool dropItems = true, bool force = false) - { - if (dropItems) - { - DropAllItemsInHands(entity, false); - } - - if (!force && !EffectBlockerSystem.CanFall(entity)) - { - return false; - } - - if (!entity.TryGetComponent(out AppearanceComponent appearance)) - { - return false; - } - - var newState = RotationState.Horizontal; - appearance.TryGetData(RotationVisuals.RotationState, out var oldState); - - if (newState != oldState) - { - appearance.SetData(RotationVisuals.RotationState, newState); - } - - if (playSound) - { - IoCManager.Resolve().GetEntitySystem() - .PlayFromEntity(AudioHelpers.GetRandomFileFromSoundCollection("bodyfall"), entity, AudioHelpers.WithVariation(0.25f)); - } - - return true; - } - - /// - /// Sets the mob's standing state to standing. - /// - /// The mob in question. - /// False if the mob was already standing or couldn't set the state - public static bool Standing(IEntity entity) - { - if (!entity.TryGetComponent(out AppearanceComponent appearance)) return false; - appearance.TryGetData(RotationVisuals.RotationState, out var oldState); - var newState = RotationState.Vertical; - if (newState == oldState) - return false; - - appearance.SetData(RotationVisuals.RotationState, newState); - - return true; - } - - public static void DropAllItemsInHands(IEntity entity, bool doMobChecks = true) - { - if (!entity.TryGetComponent(out IHandsComponent hands)) return; - - foreach (var heldItem in hands.GetAllHeldItems()) - { - hands.Drop(heldItem.Owner, doMobChecks); - } - } - } -} diff --git a/Content.Server/StationEvents/PowerGridCheck.cs b/Content.Server/StationEvents/PowerGridCheck.cs index 882fa61f7a..0bd41345a6 100644 --- a/Content.Server/StationEvents/PowerGridCheck.cs +++ b/Content.Server/StationEvents/PowerGridCheck.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Content.Server.GameObjects.Components.Power; using Content.Server.GameObjects.Components.Power.ApcNetComponents; @@ -32,9 +32,9 @@ namespace Content.Server.StationEvents private float _elapsedTime; private int _failDuration; - private Dictionary _powered = new Dictionary(); + private List _powered = new List(); - private readonly List _toPowerDown = new List(); + public override void Startup() { @@ -45,9 +45,10 @@ namespace Content.Server.StationEvents _failDuration = IoCManager.Resolve().Next(30, 120); var componentManager = IoCManager.Resolve(); - foreach (var component in componentManager.EntityQuery()) + foreach (PowerReceiverComponent component in componentManager.EntityQuery()) { component.PowerDisabled = true; + _powered.Add(component.Owner); } } @@ -56,13 +57,13 @@ namespace Content.Server.StationEvents base.Shutdown(); EntitySystem.Get().PlayGlobal("/Audio/Announcements/power_on.ogg"); - foreach (var (entity, powered) in _powered) + foreach (var entity in _powered) { if (entity.Deleted) continue; if (entity.TryGetComponent(out PowerReceiverComponent powerReceiverComponent)) { - powerReceiverComponent.PowerDisabled = powered; + powerReceiverComponent.PowerDisabled = false; } } @@ -86,4 +87,4 @@ namespace Content.Server.StationEvents Running = false; } } -} \ No newline at end of file +} diff --git a/Content.Server/Utility/InteractionChecks.cs b/Content.Server/Utility/InteractionChecks.cs deleted file mode 100644 index 1f5a452b74..0000000000 --- a/Content.Server/Utility/InteractionChecks.cs +++ /dev/null @@ -1,124 +0,0 @@ -using Content.Shared.GameObjects.EntitySystems; -using Content.Shared.Interfaces; -using Content.Shared.Interfaces.GameObjects.Components; -using Content.Shared.Physics; -using Robust.Shared.GameObjects.Systems; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Map; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using Robust.Shared.Map; - -namespace Content.Server.Utility -{ - /// - /// Convenient methods for checking for various conditions commonly needed - /// for interactions. - /// - public static class InteractionChecks - { - - /// - /// Default interaction check for targeted attack interaction types. - /// Same as , but defaults to ignore inside blockers - /// (making the check less restrictive). - /// Validates that attacker is in range of the attacked entity. Additionally shows a popup if - /// validation fails. - /// - public static bool InRangeUnobstructed(ITargetedInteractEventArgs eventArgs, bool ignoreInsideBlocker = true) - { - if (!EntitySystem.Get().InRangeUnobstructed(eventArgs.User.Transform.MapPosition, - eventArgs.Target.Transform.MapPosition, ignoredEnt: eventArgs.Target, ignoreInsideBlocker: ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - eventArgs.Target.PopupMessage(eventArgs.User, localizationManager.GetString("You can't reach there!")); - return false; - } - - return true; - } - - /// - /// Default interaction check for Drag drop interaction types. - /// Same as , but defaults to ignore inside blockers - /// (making the check less restrictive) and checks reachability of both the target and the dragged / dropped object. - /// Additionally shows a popup if validation fails. - /// - public static bool InRangeUnobstructed(DragDropEventArgs eventArgs, bool ignoreInsideBlocker = true) - { - if (!EntitySystem.Get().InRangeUnobstructed(eventArgs.User.Transform.MapPosition, - eventArgs.Target.Transform.MapPosition, ignoredEnt: eventArgs.Target, ignoreInsideBlocker: ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - eventArgs.Target.PopupMessage(eventArgs.User, localizationManager.GetString("You can't reach there!")); - return false; - } - if (!EntitySystem.Get().InRangeUnobstructed(eventArgs.User.Transform.MapPosition, - eventArgs.Dropped.Transform.MapPosition, ignoredEnt: eventArgs.Dropped, ignoreInsideBlocker: ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - eventArgs.Dropped.PopupMessage(eventArgs.User, localizationManager.GetString("You can't reach there!")); - return false; - } - - return true; - } - - /// - /// Default interaction check for after attack interaction types. - /// Same as , but defaults to ignore inside blockers - /// (making the check less restrictive). - /// Validates that attacker is in range of the attacked entity, if there is such an entity. - /// If there is no attacked entity, validates that they are in range of the clicked position. - /// Additionally shows a popup if validation fails. - /// - public static bool InRangeUnobstructed(AfterInteractEventArgs eventArgs, bool ignoreInsideBlocker = true) - { - if (eventArgs.Target != null) - { - if (!EntitySystem.Get().InRangeUnobstructed(eventArgs.User.Transform.MapPosition, - eventArgs.Target.Transform.MapPosition, ignoredEnt: eventArgs.Target, ignoreInsideBlocker: ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - eventArgs.Target.PopupMessage(eventArgs.User, localizationManager.GetString("You can't reach there!")); - return false; - } - } - else - { - if (!EntitySystem.Get().InRangeUnobstructed(eventArgs.User.Transform.MapPosition, - eventArgs.ClickLocation.ToMap(IoCManager.Resolve()), ignoredEnt: eventArgs.User, ignoreInsideBlocker: ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - eventArgs.User.PopupMessage(eventArgs.User, localizationManager.GetString("You can't reach there!")); - return false; - } - } - - - return true; - } - - /// - /// Convenient static alternative to , which also - /// shows a popup message if not in range. - /// - public static bool InRangeUnobstructed(IEntity user, MapCoordinates otherCoords, - float range = SharedInteractionSystem.InteractionRange, - int collisionMask = (int) CollisionGroup.Impassable, IEntity ignoredEnt = null, bool ignoreInsideBlocker = false) - { - var mapManager = IoCManager.Resolve(); - var interactionSystem = EntitySystem.Get(); - if (!interactionSystem.InRangeUnobstructed(user.Transform.MapPosition, otherCoords, range, collisionMask, - ignoredEnt, ignoreInsideBlocker)) - { - var localizationManager = IoCManager.Resolve(); - user.PopupMessage(user, localizationManager.GetString("You can't reach there!")); - - return false; - } - - return true; - } - } -} diff --git a/Content.Server/Utility/NotifyExtensions.cs b/Content.Server/Utility/NotifyExtensions.cs new file mode 100644 index 0000000000..c617c25cbd --- /dev/null +++ b/Content.Server/Utility/NotifyExtensions.cs @@ -0,0 +1,37 @@ +using Content.Shared.Interfaces; +using Robust.Server.Interfaces.Player; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; + +namespace Content.Server.Utility +{ + public static class NotifyExtensions + { + /// + /// Pops up a message for every player around to see, + /// except for itself. + /// + /// The entity on which to popup the message. + /// The message to show. + /// + /// The range in which to search for players, defaulting to one screen. + /// + public static void PopupMessageOtherClients(this IEntity source, string message, int range = 15) + { + var playerManager = IoCManager.Resolve(); + var viewers = playerManager.GetPlayersInRange(source.Transform.GridPosition, range); + + foreach (var viewer in viewers) + { + var viewerEntity = viewer.AttachedEntity; + + if (viewerEntity == null || source == viewerEntity) + { + continue; + } + + source.PopupMessage(viewer.AttachedEntity, message); + } + } + } +} diff --git a/Content.Shared/Body/Part/BodyPartPrototype.cs b/Content.Shared/Body/Part/BodyPartPrototype.cs index 7d6158dce3..dd3f64a544 100644 --- a/Content.Shared/Body/Part/BodyPartPrototype.cs +++ b/Content.Shared/Body/Part/BodyPartPrototype.cs @@ -33,6 +33,8 @@ namespace Content.Shared.Body.Part private string _rsiState; private int _size; private string _surgeryDataName; + private bool _isVital; + [ViewVariables] public string Name => _name; @@ -66,6 +68,8 @@ namespace Content.Shared.Body.Part [ViewVariables] public string ID => _id; + [ViewVariables] public bool IsVital => _isVital; + public virtual void LoadFrom(YamlMappingNode mapping) { var serializer = YamlObjectSerializer.NewReader(mapping); @@ -86,6 +90,7 @@ namespace Content.Shared.Body.Part serializer.DataField(ref _resistanceSetId, "resistances", string.Empty); serializer.DataField(ref _properties, "properties", new List()); serializer.DataField(ref _mechanisms, "mechanisms", new List()); + serializer.DataField(ref _isVital, "isVital", false); foreach (var property in _properties) { diff --git a/Content.Shared/Damage/DamageClass.cs b/Content.Shared/Damage/DamageClass.cs index 393b999486..406dc8bb73 100644 --- a/Content.Shared/Damage/DamageClass.cs +++ b/Content.Shared/Damage/DamageClass.cs @@ -12,7 +12,8 @@ namespace Content.Shared.Damage Brute, Burn, Toxin, - Airloss + Airloss, + Genetic } public static class DamageClassExtensions @@ -20,10 +21,11 @@ namespace Content.Shared.Damage private static readonly ImmutableDictionary> ClassToType = new Dictionary> { - {DamageClass.Brute, new List {DamageType.Blunt, DamageType.Piercing}}, - {DamageClass.Burn, new List {DamageType.Heat, DamageType.Disintegration}}, - {DamageClass.Toxin, new List {DamageType.Cellular, DamageType.DNA}}, - {DamageClass.Airloss, new List {DamageType.Asphyxiation}} + {DamageClass.Brute, new List {DamageType.Blunt, DamageType.Slash, DamageType.Piercing}}, + {DamageClass.Burn, new List {DamageType.Heat, DamageType.Shock, DamageType.Cold}}, + {DamageClass.Toxin, new List {DamageType.Poison, DamageType.Radiation}}, + {DamageClass.Airloss, new List {DamageType.Asphyxiation, DamageType.Bloodloss}}, + {DamageClass.Genetic, new List {DamageType.Cellular}} }.ToImmutableDictionary(); public static List ToTypes(this DamageClass @class) diff --git a/Content.Shared/Damage/DamageType.cs b/Content.Shared/Damage/DamageType.cs index 96cfb2eecb..0de82925f7 100644 --- a/Content.Shared/Damage/DamageType.cs +++ b/Content.Shared/Damage/DamageType.cs @@ -10,12 +10,16 @@ namespace Content.Shared.Damage public enum DamageType { Blunt, + Slash, Piercing, Heat, - Disintegration, - Cellular, - DNA, - Asphyxiation + Shock, + Cold, + Poison, + Radiation, + Asphyxiation, + Bloodloss, + Cellular } public static class DamageTypeExtensions @@ -25,12 +29,17 @@ namespace Content.Shared.Damage new Dictionary { {DamageType.Blunt, DamageClass.Brute}, + {DamageType.Slash, DamageClass.Brute}, {DamageType.Piercing, DamageClass.Brute}, {DamageType.Heat, DamageClass.Burn}, - {DamageType.Disintegration, DamageClass.Burn}, - {DamageType.Cellular, DamageClass.Toxin}, - {DamageType.DNA, DamageClass.Toxin}, - {DamageType.Asphyxiation, DamageClass.Airloss} + {DamageType.Shock, DamageClass.Burn}, + {DamageType.Cold, DamageClass.Burn}, + {DamageType.Poison, DamageClass.Toxin}, + {DamageType.Radiation, DamageClass.Toxin}, + {DamageType.Asphyxiation, DamageClass.Airloss}, + {DamageType.Bloodloss, DamageClass.Airloss}, + {DamageType.Cellular, DamageClass.Genetic } + }.ToImmutableDictionary(); public static DamageClass ToClass(this DamageType type) diff --git a/Content.Shared/GameObjects/Atmos/SharedPumpComponent.cs b/Content.Shared/GameObjects/Atmos/SharedPumpComponent.cs new file mode 100644 index 0000000000..8546d9d071 --- /dev/null +++ b/Content.Shared/GameObjects/Atmos/SharedPumpComponent.cs @@ -0,0 +1,31 @@ +using Content.Shared.GameObjects.Components.Atmos; +using Robust.Shared.Serialization; +using System; + +namespace Content.Shared.GameObjects.Atmos +{ + [Serializable, NetSerializable] + public enum PumpVisuals + { + VisualState + } + + [Serializable, NetSerializable] + public class PumpVisualState + { + public readonly PipeDirection InletDirection; + public readonly PipeDirection OutletDirection; + public readonly ConduitLayer InletConduitLayer; + public readonly ConduitLayer OutletConduitLayer; + public readonly bool PumpEnabled; + + public PumpVisualState(PipeDirection inletDirection, PipeDirection outletDirection, ConduitLayer inletConduitLayer, ConduitLayer outletConduitLayer, bool pumpEnabled) + { + InletDirection = inletDirection; + OutletDirection = outletDirection; + InletConduitLayer = inletConduitLayer; + OutletConduitLayer = outletConduitLayer; + PumpEnabled = pumpEnabled; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Atmos/SharedPipeComponent.cs b/Content.Shared/GameObjects/Components/Atmos/SharedPipeComponent.cs new file mode 100644 index 0000000000..f588dc44da --- /dev/null +++ b/Content.Shared/GameObjects/Components/Atmos/SharedPipeComponent.cs @@ -0,0 +1,74 @@ +using Robust.Shared.Serialization; +using System; + +namespace Content.Shared.GameObjects.Components.Atmos +{ + [Serializable, NetSerializable] + public enum PipeVisuals + { + VisualState + } + + [Serializable, NetSerializable] + public class PipeVisualStateSet + { + public readonly PipeVisualState[] PipeVisualStates; + + public PipeVisualStateSet(PipeVisualState[] pipeVisualStates) + { + PipeVisualStates = pipeVisualStates; + } + } + + [Serializable, NetSerializable] + public class PipeVisualState + { + public readonly PipeDirection PipeDirection; + public readonly ConduitLayer ConduitLayer; + + public PipeVisualState(PipeDirection pipeDirection, ConduitLayer conduitLayer) + { + PipeDirection = pipeDirection; + ConduitLayer = conduitLayer; + } + } + + public enum PipeDirection + { + None = 0, + + //Half of a pipe in a direction + North = 1 << 0, + South = 1 << 1, + West = 1 << 2, + East = 1 << 3, + + //Straight pipes + Longitudinal = North | South, + Lateral = West | East, + + //Bends + NWBend = North | West, + NEBend = North | East, + SWBend = South | West, + SEBend = South | East, + + //T-Junctions + TNorth = North | Lateral, + TSouth = South | Lateral, + TWest = West | Longitudinal, + TEast = East | Longitudinal, + + //Four way + Fourway = North | South | East | West, + + All = -1, + } + + public enum ConduitLayer + { + One = 1, + Two = 2, + Three = 3, + } +} diff --git a/Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs b/Content.Shared/GameObjects/Components/Body/ISharedBodyManagerComponent.cs similarity index 52% rename from Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs rename to Content.Shared/GameObjects/Components/Body/ISharedBodyManagerComponent.cs index bc3ee631f2..9a8c026460 100644 --- a/Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs +++ b/Content.Shared/GameObjects/Components/Body/ISharedBodyManagerComponent.cs @@ -1,9 +1,8 @@ using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.GameObjects.Components.Body { - public interface IBodyManagerComponent : IDamageableComponent + public interface ISharedBodyManagerComponent : IDamageableComponent { } } diff --git a/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs b/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs index d78b93320f..2cb0022e88 100644 --- a/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs +++ b/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs @@ -5,7 +5,7 @@ using Robust.Shared.Serialization; namespace Content.Shared.GameObjects.Components.Body { - public abstract class SharedBodyManagerComponent : DamageableComponent, IBodyManagerComponent + public abstract class SharedBodyManagerComponent : DamageableComponent, ISharedBodyManagerComponent { public override string Name => "BodyManager"; diff --git a/Content.Shared/GameObjects/Components/Damage/DamageFlag.cs b/Content.Shared/GameObjects/Components/Damage/DamageFlag.cs new file mode 100644 index 0000000000..537fed2391 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Damage/DamageFlag.cs @@ -0,0 +1,13 @@ +using System; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Damage +{ + [Flags] + [Serializable, NetSerializable] + public enum DamageFlag + { + None = 0, + Invulnerable = 1 << 0 + } +} diff --git a/Content.Shared/GameObjects/Components/Damage/DamageState.cs b/Content.Shared/GameObjects/Components/Damage/DamageState.cs index 7ec6a260b7..ab49364b6f 100644 --- a/Content.Shared/GameObjects/Components/Damage/DamageState.cs +++ b/Content.Shared/GameObjects/Components/Damage/DamageState.cs @@ -16,6 +16,7 @@ namespace Content.Shared.GameObjects.Components.Damage [Serializable, NetSerializable] public enum DamageState { + Invalid = 0, Alive, Critical, Dead diff --git a/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs b/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs index 8557e738df..551ffd026d 100644 --- a/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs +++ b/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs @@ -27,6 +27,8 @@ namespace Content.Shared.GameObjects.Components.Damage private DamageState _currentDamageState; + private DamageFlag _flags; + public event Action? HealthChangedEvent; /// @@ -79,6 +81,8 @@ namespace Content.Shared.GameObjects.Components.Damage { EnterState(value); } + + Dirty(); } } @@ -88,6 +92,36 @@ namespace Content.Shared.GameObjects.Components.Damage public IReadOnlyDictionary DamageTypes => Damage.DamageTypes; + public DamageFlag Flags + { + get => _flags; + private set + { + if (_flags == value) + { + return; + } + + _flags = value; + Dirty(); + } + } + + public void AddFlag(DamageFlag flag) + { + Flags |= flag; + } + + public bool HasFlag(DamageFlag flag) + { + return Flags.HasFlag(flag); + } + + public void RemoveFlag(DamageFlag flag) + { + Flags &= ~flag; + } + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); @@ -104,6 +138,35 @@ namespace Content.Shared.GameObjects.Components.Damage t => DeadThreshold = t == -1 ? (int?) null : t, () => DeadThreshold ?? -1); + serializer.DataReadWriteFunction( + "flags", + new List(), + flags => + { + var result = DamageFlag.None; + + foreach (var flag in flags) + { + result |= flag; + } + + Flags = result; + }, + () => + { + var writeFlags = new List(); + + foreach (var flag in (DamageFlag[]) Enum.GetValues(typeof(DamageFlag))) + { + if ((Flags & flag) == flag) + { + writeFlags.Add(flag); + } + } + + return writeFlags; + }); + if (serializer.Reading) { // Doesn't write to file, TODO? @@ -151,6 +214,11 @@ namespace Content.Shared.GameObjects.Components.Damage IEntity? source = null, HealthChangeParams? extraParams = null) { + if (amount > 0 && HasFlag(DamageFlag.Invulnerable)) + { + return false; + } + if (Damage.SupportsDamageType(type)) { var finalDamage = amount; @@ -171,6 +239,11 @@ namespace Content.Shared.GameObjects.Components.Damage IEntity? source = null, HealthChangeParams? extraParams = null) { + if (amount > 0 && HasFlag(DamageFlag.Invulnerable)) + { + return false; + } + if (Damage.SupportsDamageClass(@class)) { var types = @class.ToTypes(); @@ -250,6 +323,11 @@ namespace Content.Shared.GameObjects.Components.Damage public bool SetDamage(DamageType type, int newValue, IEntity? source = null, HealthChangeParams? extraParams = null) { + if (newValue >= TotalDamage && HasFlag(DamageFlag.Invulnerable)) + { + return false; + } + if (Damage.SupportsDamageType(type)) { Damage.SetDamageValue(type, newValue); @@ -289,17 +367,20 @@ namespace Content.Shared.GameObjects.Components.Damage protected virtual void OnHealthChanged(HealthChangedEventArgs e) { - if (DeadThreshold != -1 && TotalDamage > DeadThreshold) + if (CurrentDamageState != DamageState.Dead) { - CurrentDamageState = DamageState.Dead; - } - else if (CriticalThreshold != -1 && TotalDamage > CriticalThreshold) - { - CurrentDamageState = DamageState.Critical; - } - else - { - CurrentDamageState = DamageState.Alive; + if (DeadThreshold != -1 && TotalDamage > DeadThreshold) + { + CurrentDamageState = DamageState.Dead; + } + else if (CriticalThreshold != -1 && TotalDamage > CriticalThreshold) + { + CurrentDamageState = DamageState.Critical; + } + else + { + CurrentDamageState = DamageState.Alive; + } } Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, e); diff --git a/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs b/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs index f979d326c6..8c6891953d 100644 --- a/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs +++ b/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs @@ -45,6 +45,30 @@ namespace Content.Shared.GameObjects.Components.Damage /// IReadOnlyDictionary DamageTypes { get; } + /// + /// The damage flags on this component. + /// + DamageFlag Flags { get; } + + /// + /// Adds a flag to this component. + /// + /// The flag to add. + void AddFlag(DamageFlag flag); + + /// + /// Checks whether or not this component has a specific flag. + /// + /// The flag to check for. + /// True if it has the flag, false otherwise. + bool HasFlag(DamageFlag flag); + + /// + /// Removes a flag from this component. + /// + /// The flag to remove. + void RemoveFlag(DamageFlag flag); + /// /// Gets the amount of damage of a type. /// @@ -143,8 +167,8 @@ namespace Content.Shared.GameObjects.Components.Damage _ => throw new ArgumentOutOfRangeException() }; - ChangeDamage(DamageType.Piercing, damage, false, null); - ChangeDamage(DamageType.Heat, damage, false, null); + ChangeDamage(DamageType.Piercing, damage, false); + ChangeDamage(DamageType.Heat, damage, false); } } diff --git a/Content.Shared/GameObjects/Components/Doors/SharedDoorComponent.cs b/Content.Shared/GameObjects/Components/Doors/SharedDoorComponent.cs index 37f34ac70d..e9fbcb32d6 100644 --- a/Content.Shared/GameObjects/Components/Doors/SharedDoorComponent.cs +++ b/Content.Shared/GameObjects/Components/Doors/SharedDoorComponent.cs @@ -21,5 +21,6 @@ namespace Content.Shared.GameObjects.Components.Doors Open, Closing, Deny, + Welded, } } diff --git a/Content.Shared/GameObjects/Components/ExtinguisherCabinet.cs b/Content.Shared/GameObjects/Components/ExtinguisherCabinet.cs new file mode 100644 index 0000000000..c42e355f1e --- /dev/null +++ b/Content.Shared/GameObjects/Components/ExtinguisherCabinet.cs @@ -0,0 +1,12 @@ +using System; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components +{ + [Serializable, NetSerializable] + public enum ExtinguisherCabinetVisuals + { + IsOpen, + ContainsExtinguisher + } +} diff --git a/Content.Shared/GameObjects/Components/Medical/SharedCloningPodComponent.cs b/Content.Shared/GameObjects/Components/Medical/SharedCloningPodComponent.cs new file mode 100644 index 0000000000..6c0ed3f87e --- /dev/null +++ b/Content.Shared/GameObjects/Components/Medical/SharedCloningPodComponent.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Medical +{ + + public class SharedCloningPodComponent : Component + { + public override string Name => "CloningPod"; + + [Serializable, NetSerializable] + public class CloningPodBoundUserInterfaceState : BoundUserInterfaceState + { + public readonly Dictionary MindIdName; + public readonly float Progress; + public readonly bool MindPresent; + + public CloningPodBoundUserInterfaceState(Dictionary mindIdName, float progress, bool mindPresent) + { + MindIdName = mindIdName; + Progress = progress; + MindPresent = mindPresent; + } + } + + + [Serializable, NetSerializable] + public enum CloningPodUIKey + { + Key + } + + [Serializable, NetSerializable] + public enum CloningPodVisuals + { + Status + } + + [Serializable, NetSerializable] + public enum CloningPodStatus + { + Idle, + Cloning, + Gore, + NoMind + } + + [Serializable, NetSerializable] + public enum UiButton + { + Clone, + Eject + } + + [Serializable, NetSerializable] + public class CloningPodUiButtonPressedMessage : BoundUserInterfaceMessage + { + public readonly UiButton Button; + public readonly int? ScanId; + + public CloningPodUiButtonPressedMessage(UiButton button, int? scanId) + { + Button = button; + ScanId = scanId; + } + } + + } +} diff --git a/Content.Shared/GameObjects/Components/Mobs/State/IMobState.cs b/Content.Shared/GameObjects/Components/Mobs/State/IMobState.cs new file mode 100644 index 0000000000..f22265dd92 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Mobs/State/IMobState.cs @@ -0,0 +1,29 @@ +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Mobs.State +{ + /// + /// Defines the blocking effects of an associated + /// (i.e. Normal, Critical, Dead) and what effects to apply upon entering or + /// exiting the state. + /// + public interface IMobState : IActionBlocker + { + /// + /// Called when this state is entered. + /// + void EnterState(IEntity entity); + + /// + /// Called when this state is left for a different state. + /// + void ExitState(IEntity entity); + + /// + /// Called when this state is updated. + /// + void UpdateState(IEntity entity); + } +} diff --git a/Content.Shared/GameObjects/Components/Mobs/State/SharedCriticalState.cs b/Content.Shared/GameObjects/Components/Mobs/State/SharedCriticalState.cs new file mode 100644 index 0000000000..bd50cc36ca --- /dev/null +++ b/Content.Shared/GameObjects/Components/Mobs/State/SharedCriticalState.cs @@ -0,0 +1,76 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Mobs.State +{ + /// + /// A state in which an entity is disabled from acting due to sufficient damage (considered unconscious). + /// + public abstract class SharedCriticalState : IMobState + { + public abstract void EnterState(IEntity entity); + + public abstract void ExitState(IEntity entity); + + public abstract void UpdateState(IEntity entity); + + public bool CanInteract() + { + return false; + } + + public bool CanMove() + { + return false; + } + + public bool CanUse() + { + return false; + } + + public bool CanThrow() + { + return false; + } + + public bool CanSpeak() + { + return false; + } + + public bool CanDrop() + { + return false; + } + + public bool CanPickup() + { + return false; + } + + public bool CanEmote() + { + return false; + } + + public bool CanAttack() + { + return false; + } + + public bool CanEquip() + { + return false; + } + + public bool CanUnequip() + { + return false; + } + + public bool CanChangeDirection() + { + return false; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Mobs/State/SharedDeadState.cs b/Content.Shared/GameObjects/Components/Mobs/State/SharedDeadState.cs new file mode 100644 index 0000000000..6dc85a07cf --- /dev/null +++ b/Content.Shared/GameObjects/Components/Mobs/State/SharedDeadState.cs @@ -0,0 +1,73 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Mobs.State +{ + public abstract class SharedDeadState : IMobState + { + public abstract void EnterState(IEntity entity); + + public abstract void ExitState(IEntity entity); + + public abstract void UpdateState(IEntity entity); + + public bool CanInteract() + { + return false; + } + + public bool CanMove() + { + return false; + } + + public bool CanUse() + { + return false; + } + + public bool CanThrow() + { + return false; + } + + public bool CanSpeak() + { + return false; + } + + public bool CanDrop() + { + return false; + } + + public bool CanPickup() + { + return false; + } + + public bool CanEmote() + { + return false; + } + + public bool CanAttack() + { + return false; + } + + public bool CanEquip() + { + return false; + } + + public bool CanUnequip() + { + return false; + } + + public bool CanChangeDirection() + { + return false; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Mobs/State/SharedMobStateManagerComponent.cs b/Content.Shared/GameObjects/Components/Mobs/State/SharedMobStateManagerComponent.cs new file mode 100644 index 0000000000..091b7163ca --- /dev/null +++ b/Content.Shared/GameObjects/Components/Mobs/State/SharedMobStateManagerComponent.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Mobs.State +{ + /// + /// When attacked to an , this component will + /// handle critical and death behaviors for mobs. + /// Additionally, it handles sending effects to clients + /// (such as blur effect for unconsciousness) and managing the health HUD. + /// + public abstract class SharedMobStateManagerComponent : Component, IOnHealthChangedBehavior, IActionBlocker + { + public override string Name => "MobStateManager"; + + public override uint? NetID => ContentNetIDs.MOB_STATE_MANAGER; + + protected abstract IReadOnlyDictionary Behavior { get; } + + public virtual IMobState CurrentMobState { get; protected set; } + + public virtual DamageState CurrentDamageState { get; protected set; } + + public override void Initialize() + { + base.Initialize(); + + CurrentDamageState = DamageState.Alive; + CurrentMobState = Behavior[CurrentDamageState]; + CurrentMobState.EnterState(Owner); + CurrentMobState.UpdateState(Owner); + } + + bool IActionBlocker.CanInteract() + { + return CurrentMobState.CanInteract(); + } + + bool IActionBlocker.CanMove() + { + return CurrentMobState.CanMove(); + } + + bool IActionBlocker.CanUse() + { + return CurrentMobState.CanUse(); + } + + bool IActionBlocker.CanThrow() + { + return CurrentMobState.CanThrow(); + } + + bool IActionBlocker.CanSpeak() + { + return CurrentMobState.CanSpeak(); + } + + bool IActionBlocker.CanDrop() + { + return CurrentMobState.CanDrop(); + } + + bool IActionBlocker.CanPickup() + { + return CurrentMobState.CanPickup(); + } + + bool IActionBlocker.CanEmote() + { + return CurrentMobState.CanEmote(); + } + + bool IActionBlocker.CanAttack() + { + return CurrentMobState.CanAttack(); + } + + bool IActionBlocker.CanEquip() + { + return CurrentMobState.CanEquip(); + } + + bool IActionBlocker.CanUnequip() + { + return CurrentMobState.CanUnequip(); + } + + bool IActionBlocker.CanChangeDirection() + { + return CurrentMobState.CanChangeDirection(); + } + + public void OnHealthChanged(HealthChangedEventArgs e) + { + if (e.Damageable.CurrentDamageState != CurrentDamageState) + { + CurrentDamageState = e.Damageable.CurrentDamageState; + CurrentMobState.ExitState(Owner); + CurrentMobState = Behavior[CurrentDamageState]; + CurrentMobState.EnterState(Owner); + } + + CurrentMobState.UpdateState(Owner); + } + } + + [Serializable, NetSerializable] + public class MobStateManagerComponentState : ComponentState + { + public readonly DamageState DamageState; + + public MobStateManagerComponentState(DamageState damageState) : base(ContentNetIDs.MOB_STATE_MANAGER) + { + DamageState = damageState; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Mobs/State/SharedNormalState.cs b/Content.Shared/GameObjects/Components/Mobs/State/SharedNormalState.cs new file mode 100644 index 0000000000..6b68620834 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Mobs/State/SharedNormalState.cs @@ -0,0 +1,76 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Mobs.State +{ + /// + /// The standard state an entity is in; no negative effects. + /// + public abstract class SharedNormalState : IMobState + { + public abstract void EnterState(IEntity entity); + + public abstract void ExitState(IEntity entity); + + public abstract void UpdateState(IEntity entity); + + public bool CanInteract() + { + return true; + } + + public bool CanMove() + { + return true; + } + + public bool CanUse() + { + return true; + } + + public bool CanThrow() + { + return true; + } + + public bool CanSpeak() + { + return true; + } + + public bool CanDrop() + { + return true; + } + + public bool CanPickup() + { + return true; + } + + public bool CanEmote() + { + return true; + } + + public bool CanAttack() + { + return true; + } + + public bool CanEquip() + { + return true; + } + + public bool CanUnequip() + { + return true; + } + + public bool CanChangeDirection() + { + return true; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs b/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs index a3b3794d3e..de864025fc 100644 --- a/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs @@ -270,7 +270,7 @@ namespace Content.Shared.GameObjects.Components.Movement bool ICollideSpecial.PreventCollide(IPhysBody collidedWith) { // Don't collide with other mobs - return collidedWith.Entity.HasComponent(); + return collidedWith.Entity.HasComponent(); } [Serializable, NetSerializable] diff --git a/Content.Shared/GameObjects/Components/Movement/SharedSlipperyComponent.cs b/Content.Shared/GameObjects/Components/Movement/SharedSlipperyComponent.cs index 013b40e59e..d232ffaa50 100644 --- a/Content.Shared/GameObjects/Components/Movement/SharedSlipperyComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/SharedSlipperyComponent.cs @@ -44,9 +44,16 @@ namespace Content.Shared.GameObjects.Components.Movement [ViewVariables(VVAccess.ReadWrite)] private float RequiredSlipSpeed { get; set; } = 0f; + /// + /// Whether or not this component will try to slip entities. + /// + [ViewVariables(VVAccess.ReadWrite)] + public bool Slippery { get; set; } + private bool TrySlip(IEntity entity) { - if (ContainerHelpers.IsInContainer(Owner) + if (!Slippery + || ContainerHelpers.IsInContainer(Owner) || _slipped.Contains(entity.Uid) || !entity.TryGetComponent(out SharedStunnableComponent stun) || !entity.TryGetComponent(out ICollidableComponent otherBody) @@ -137,6 +144,7 @@ namespace Content.Shared.GameObjects.Components.Movement serializer.DataField(this, x => ParalyzeTime, "paralyzeTime", 3f); serializer.DataField(this, x => IntersectPercentage, "intersectPercentage", 0.3f); serializer.DataField(this, x => RequiredSlipSpeed, "requiredSlipSpeed", 0f); + serializer.DataField(this, x => x.Slippery, "slippery", true); } } } diff --git a/Content.Shared/GameObjects/Components/Observer/SharedGhostComponent.cs b/Content.Shared/GameObjects/Components/Observer/SharedGhostComponent.cs index 771c0b0b6f..e9a029271c 100644 --- a/Content.Shared/GameObjects/Components/Observer/SharedGhostComponent.cs +++ b/Content.Shared/GameObjects/Components/Observer/SharedGhostComponent.cs @@ -35,4 +35,11 @@ namespace Content.Shared.GameObjects.Components.Observer { public ReturnToBodyComponentMessage() => Directed = true; } + + + [Serializable, NetSerializable] + public class ReturnToCloneComponentMessage : ComponentMessage + { + public ReturnToCloneComponentMessage() => Directed = true; + } } diff --git a/Content.Shared/GameObjects/Components/Power/AME/SharedAMEControllerComponent.cs b/Content.Shared/GameObjects/Components/Power/AME/SharedAMEControllerComponent.cs new file mode 100644 index 0000000000..e89789e363 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Power/AME/SharedAMEControllerComponent.cs @@ -0,0 +1,69 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.Serialization; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Shared.GameObjects.Components.Power.AME +{ + public class SharedAMEControllerComponent : Component + { + public override string Name => "AMEController"; + + [Serializable, NetSerializable] + public class AMEControllerBoundUserInterfaceState : BoundUserInterfaceState + { + public readonly bool HasPower; + public readonly bool IsMaster; + public readonly bool Injecting; + public readonly bool HasFuelJar; + public readonly int FuelAmount; + public readonly int InjectionAmount; + public readonly int CoreCount; + + public AMEControllerBoundUserInterfaceState(bool hasPower, bool isMaster, bool injecting, bool hasFuelJar, int fuelAmount, int injectionAmount, int coreCount) + { + HasPower = hasPower; + IsMaster = isMaster; + Injecting = injecting; + HasFuelJar = hasFuelJar; + FuelAmount = fuelAmount; + InjectionAmount = injectionAmount; + CoreCount = coreCount; + } + } + + [Serializable, NetSerializable] + public class UiButtonPressedMessage : BoundUserInterfaceMessage + { + public readonly UiButton Button; + + public UiButtonPressedMessage(UiButton button) + { + Button = button; + } + } + + [Serializable, NetSerializable] + public enum AMEControllerUiKey + { + Key + } + + public enum UiButton + { + Eject, + ToggleInjection, + IncreaseFuel, + DecreaseFuel, + RefreshParts + } + + [Serializable, NetSerializable] + public enum AMEControllerVisuals + { + DisplayState, + } + } +} diff --git a/Content.Shared/GameObjects/Components/Power/AME/SharedAMEShieldComponent.cs b/Content.Shared/GameObjects/Components/Power/AME/SharedAMEShieldComponent.cs new file mode 100644 index 0000000000..f9af4d12ac --- /dev/null +++ b/Content.Shared/GameObjects/Components/Power/AME/SharedAMEShieldComponent.cs @@ -0,0 +1,27 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Shared.GameObjects.Components.Power.AME +{ + public class SharedAMEShieldComponent : Component + { + public override string Name => "AMEShield"; + + [Serializable, NetSerializable] + public enum AMEShieldVisuals + { + Core, + CoreState + } + + public enum AMECoreState + { + Off, + Weak, + Strong + } + } +} diff --git a/Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs b/Content.Shared/GameObjects/Components/Rotation/SharedRotationComponent.cs similarity index 93% rename from Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs rename to Content.Shared/GameObjects/Components/Rotation/SharedRotationComponent.cs index 150ed62a30..acdb33b7db 100644 --- a/Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs +++ b/Content.Shared/GameObjects/Components/Rotation/SharedRotationComponent.cs @@ -1,5 +1,4 @@ using System; -using Robust.Shared.GameObjects; using Robust.Shared.Serialization; namespace Content.Shared.GameObjects.Components.Rotation diff --git a/Content.Shared/GameObjects/Components/SharedAcceptCloningComponent.cs b/Content.Shared/GameObjects/Components/SharedAcceptCloningComponent.cs new file mode 100644 index 0000000000..94383004c5 --- /dev/null +++ b/Content.Shared/GameObjects/Components/SharedAcceptCloningComponent.cs @@ -0,0 +1,36 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components.UserInterface; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components +{ + public class SharedAcceptCloningComponent : Component + { + public override string Name => "AcceptCloning"; + + [Serializable, NetSerializable] + public enum AcceptCloningUiKey + { + Key + } + + [Serializable, NetSerializable] + public enum UiButton + { + Accept + } + + [Serializable, NetSerializable] + public class UiButtonPressedMessage : BoundUserInterfaceMessage + { + public readonly UiButton Button; + + public UiButtonPressedMessage(UiButton button) + { + Button = button; + } + } + + } +} diff --git a/Content.Shared/GameObjects/Components/SharedExpendableLightComponent.cs b/Content.Shared/GameObjects/Components/SharedExpendableLightComponent.cs new file mode 100644 index 0000000000..5db6ad8f9b --- /dev/null +++ b/Content.Shared/GameObjects/Components/SharedExpendableLightComponent.cs @@ -0,0 +1,80 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Shared.GameObjects.Components +{ + [Serializable, NetSerializable] + public enum ExpendableLightVisuals + { + State + } + + [Serializable, NetSerializable] + public enum ExpendableLightState + { + BrandNew, + Lit, + Fading, + Dead + } + + public abstract class SharedExpendableLightComponent: Component + { + public sealed override string Name => "ExpendableLight"; + + [ViewVariables(VVAccess.ReadOnly)] + protected ExpendableLightState CurrentState { get; set; } + + [ViewVariables] + protected string TurnOnBehaviourID { get; set; } + + [ViewVariables] + protected string FadeOutBehaviourID { get; set; } + + [ViewVariables] + protected float GlowDuration { get; set; } + + [ViewVariables] + protected float FadeOutDuration { get; set; } + + [ViewVariables] + protected string SpentDesc { get; set; } + + [ViewVariables] + protected string SpentName { get; set; } + + [ViewVariables] + protected string IconStateSpent { get; set; } + + [ViewVariables] + protected string IconStateLit { get; set; } + + [ViewVariables] + protected string LitSound { get; set; } + + [ViewVariables] + protected string LoopedSound { get; set; } + + [ViewVariables] + protected string DieSound { get; set; } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(this, x => TurnOnBehaviourID, "turnOnBehaviourID", string.Empty); + serializer.DataField(this, x => FadeOutBehaviourID, "fadeOutBehaviourID", string.Empty); + serializer.DataField(this, x => GlowDuration, "glowDuration", 60 * 15f); + serializer.DataField(this, x => FadeOutDuration, "fadeOutDuration", 60 * 5f); + serializer.DataField(this, x => SpentName, "spentName", string.Empty); + serializer.DataField(this, x => SpentDesc, "spentDesc", string.Empty); + serializer.DataField(this, x => IconStateLit, "iconStateOn", string.Empty); + serializer.DataField(this, x => IconStateSpent, "iconStateSpent", string.Empty); + serializer.DataField(this, x => LitSound, "litSound", string.Empty); + serializer.DataField(this, x => LoopedSound, "loopedSound", string.Empty); + serializer.DataField(this, x => DieSound, "dieSound", string.Empty); + } + } +} diff --git a/Content.Shared/GameObjects/Components/SharedLightBehaviourComponent.cs b/Content.Shared/GameObjects/Components/SharedLightBehaviourComponent.cs new file mode 100644 index 0000000000..9965cced26 --- /dev/null +++ b/Content.Shared/GameObjects/Components/SharedLightBehaviourComponent.cs @@ -0,0 +1,13 @@ + +using Robust.Shared.GameObjects; + +namespace Content.Shared.GameObjects.Components +{ + /// + /// A component which applies a specific behaviour to a PointLightComponent on its owner. + /// + public class SharedLightBehaviourComponent : Component + { + public override string Name => "LightBehaviour"; + } +} diff --git a/Content.Shared/GameObjects/ContentNetIDs.cs b/Content.Shared/GameObjects/ContentNetIDs.cs index 3f127c68c4..6210936e41 100644 --- a/Content.Shared/GameObjects/ContentNetIDs.cs +++ b/Content.Shared/GameObjects/ContentNetIDs.cs @@ -72,6 +72,8 @@ public const uint HANDCUFFS = 1066; public const uint BATTERY_BARREL = 1067; public const uint SUSPICION_ROLE = 1068; + public const uint ROTATION = 1069; + public const uint MOB_STATE_MANAGER = 1070; // Net IDs for integration tests. public const uint PREDICTION_TEST = 10001; diff --git a/Content.Shared/GameObjects/EntitySystemMessages/MeleeWeaponSystemMessages.cs b/Content.Shared/GameObjects/EntitySystemMessages/MeleeWeaponSystemMessages.cs index 989defae06..2f1bd231fa 100644 --- a/Content.Shared/GameObjects/EntitySystemMessages/MeleeWeaponSystemMessages.cs +++ b/Content.Shared/GameObjects/EntitySystemMessages/MeleeWeaponSystemMessages.cs @@ -11,18 +11,22 @@ namespace Content.Shared.GameObjects.EntitySystemMessages [Serializable, NetSerializable] public sealed class PlayMeleeWeaponAnimationMessage : EntitySystemMessage { - public PlayMeleeWeaponAnimationMessage(string arcPrototype, Angle angle, EntityUid attacker, List hits) + public PlayMeleeWeaponAnimationMessage(string arcPrototype, Angle angle, EntityUid attacker, EntityUid source, List hits, bool textureEffect = false) { ArcPrototype = arcPrototype; Angle = angle; Attacker = attacker; + Source = source; Hits = hits; + TextureEffect = textureEffect; } public string ArcPrototype { get; } public Angle Angle { get; } public EntityUid Attacker { get; } + public EntityUid Source { get; } public List Hits { get; } + public bool TextureEffect { get; } } } } diff --git a/Content.Shared/GameObjects/EntitySystems/ExamineSystemShared.cs b/Content.Shared/GameObjects/EntitySystems/ExamineSystemShared.cs index 71e0190d8d..d8eaea3172 100644 --- a/Content.Shared/GameObjects/EntitySystems/ExamineSystemShared.cs +++ b/Content.Shared/GameObjects/EntitySystems/ExamineSystemShared.cs @@ -1,11 +1,13 @@ using System; using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.Utility; using JetBrains.Annotations; using Robust.Shared.Containers; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Maths; using Robust.Shared.Utility; +using static Content.Shared.GameObjects.EntitySystems.SharedInteractionSystem; namespace Content.Shared.GameObjects.EntitySystems { @@ -26,11 +28,8 @@ namespace Content.Shared.GameObjects.EntitySystems private static bool IsInDetailsRange(IEntity examiner, IEntity entity) { - return Get() - .InRangeUnobstructed(examiner.Transform.MapPosition, entity.Transform.MapPosition, - ExamineDetailsRange, predicate: entity0 => entity0 == examiner || entity0 == entity, - ignoreInsideBlocker: true) && - examiner.IsInSameOrNoContainer(entity); + return examiner.InRangeUnobstructed(entity, ExamineDetailsRange, ignoreInsideBlocker: true) && + examiner.IsInSameOrNoContainer(entity); } [Pure] @@ -51,16 +50,14 @@ namespace Content.Shared.GameObjects.EntitySystems return false; } - Func predicate = entity => entity == examiner || entity == examined; + Ignored predicate = entity => entity == examiner || entity == examined; if (ContainerHelpers.TryGetContainer(examiner, out var container)) { predicate += entity => entity == container.Owner; } - return Get() - .InRangeUnobstructed(examiner.Transform.MapPosition, examined.Transform.MapPosition, - ExamineRange, predicate: predicate, ignoreInsideBlocker:true); + return examiner.InRangeUnobstructed(examined, ExamineRange, predicate: predicate, ignoreInsideBlocker: true); } public static FormattedMessage GetExamineText(IEntity entity, IEntity examiner) diff --git a/Content.Shared/GameObjects/EntitySystems/SharedInteractionSystem.cs b/Content.Shared/GameObjects/EntitySystems/SharedInteractionSystem.cs index 610b414c65..87bff6af83 100644 --- a/Content.Shared/GameObjects/EntitySystems/SharedInteractionSystem.cs +++ b/Content.Shared/GameObjects/EntitySystems/SharedInteractionSystem.cs @@ -1,11 +1,14 @@ -using System; -using System.Linq; +using System.Linq; +using Content.Shared.Interfaces; +using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Physics; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Physics; using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Map; using Robust.Shared.Maths; @@ -18,98 +21,516 @@ namespace Content.Shared.GameObjects.EntitySystems public class SharedInteractionSystem : EntitySystem { [Dependency] private readonly IPhysicsManager _physicsManager = default!; + [Dependency] private readonly IMapManager _mapManager = default!; public const float InteractionRange = 2; public const float InteractionRangeSquared = InteractionRange * InteractionRange; + public delegate bool Ignored(IEntity entity); + /// /// Traces a ray from coords to otherCoords and returns the length /// of the vector between coords and the ray's first hit. /// - /// Set of coordinates to use. - /// Other set of coordinates to use. + /// Set of coordinates to use. + /// Other set of coordinates to use. /// the mask to check for collisions - /// A predicate to check whether to ignore an entity or not. If it returns true, it will be ignored. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// /// Length of resulting ray. - public float UnobstructedRayLength(MapCoordinates coords, MapCoordinates otherCoords, - int collisionMask = (int) CollisionGroup.Impassable, Func predicate = null) + public float UnobstructedDistance( + MapCoordinates origin, + MapCoordinates other, + int collisionMask = (int) CollisionGroup.Impassable, + Ignored predicate = null) { - var dir = otherCoords.Position - coords.Position; + var dir = other.Position - origin.Position; if (dir.LengthSquared.Equals(0f)) return 0f; - var ray = new CollisionRay(coords.Position, dir.Normalized, collisionMask); - var rayResults = _physicsManager.IntersectRayWithPredicate(coords.MapId, ray, dir.Length, predicate, returnOnFirstHit: false).ToList(); + predicate ??= _ => false; + var ray = new CollisionRay(origin.Position, dir.Normalized, collisionMask); + var rayResults = _physicsManager.IntersectRayWithPredicate(origin.MapId, ray, dir.Length, predicate.Invoke, false).ToList(); if (rayResults.Count == 0) return dir.Length; - return (rayResults[0].HitPos - coords.Position).Length; + return (rayResults[0].HitPos - origin.Position).Length; } /// /// Traces a ray from coords to otherCoords and returns the length /// of the vector between coords and the ray's first hit. /// - /// Set of coordinates to use. - /// Other set of coordinates to use. - /// the mask to check for collisions - /// the entity to be ignored when checking for collisions. + /// Set of coordinates to use. + /// Other set of coordinates to use. + /// The mask to check for collisions + /// + /// The entity to be ignored when checking for collisions. + /// /// Length of resulting ray. - public float UnobstructedRayLength(MapCoordinates coords, MapCoordinates otherCoords, - int collisionMask = (int) CollisionGroup.Impassable, IEntity ignoredEnt = null) => - UnobstructedRayLength(coords, otherCoords, collisionMask, - ignoredEnt == null ? null : (Func) (entity => ignoredEnt == entity)); + public float UnobstructedDistance( + MapCoordinates origin, + MapCoordinates other, + int collisionMask = (int) CollisionGroup.Impassable, + IEntity ignoredEnt = null) + { + var predicate = ignoredEnt == null + ? null + : (Ignored) (e => e == ignoredEnt); + + return UnobstructedDistance(origin, other, collisionMask, predicate); + } /// /// Checks that these coordinates are within a certain distance without any /// entity that matches the collision mask obstructing them. /// If the is zero or negative, - /// this method will only check if nothing obstructs the two sets of coordinates.. + /// this method will only check if nothing obstructs the two sets + /// of coordinates. /// - /// Set of coordinates to use. - /// Other set of coordinates to use. - /// maximum distance between the two sets of coordinates. - /// the mask to check for collisions - /// A predicate to check whether to ignore an entity or not. If it returns true, it will be ignored. - /// if true and the coordinates are inside the obstruction, ignores the obstruction and - /// considers the interaction unobstructed. Therefore, setting this to true makes this check more permissive, such - /// as allowing an interaction to occur inside something impassable (like a wall). The default, false, - /// makes the check more restrictive. - /// True if the two points are within a given range without being obstructed. - public bool InRangeUnobstructed(MapCoordinates coords, MapCoordinates otherCoords, float range = InteractionRange, - int collisionMask = (int)CollisionGroup.Impassable, Func predicate = null, bool ignoreInsideBlocker = false) + /// Set of coordinates to use. + /// Other set of coordinates to use. + /// + /// Maximum distance between the two sets of coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and or are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + MapCoordinates origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) { - if (!coords.InRange(otherCoords, range)) - return false; + if (!origin.InRange(other, range)) return false; - var dir = otherCoords.Position - coords.Position; + var dir = other.Position - origin.Position; if (dir.LengthSquared.Equals(0f)) return true; if (range > 0f && !(dir.LengthSquared <= range * range)) return false; - var ray = new CollisionRay(coords.Position, dir.Normalized, collisionMask); - var rayResults = _physicsManager.IntersectRayWithPredicate(coords.MapId, ray, dir.Length, predicate, returnOnFirstHit: false).ToList(); - return rayResults.Count == 0 || (ignoreInsideBlocker && rayResults.Count > 0 && (rayResults[0].HitPos - otherCoords.Position).Length < 1f); + predicate ??= _ => false; + + var ray = new CollisionRay(origin.Position, dir.Normalized, (int) collisionMask); + var rayResults = _physicsManager.IntersectRayWithPredicate(origin.MapId, ray, dir.Length, predicate.Invoke, false).ToList(); + + if (rayResults.Count == 0) return true; + + if (!ignoreInsideBlocker) return false; + + if (rayResults.Count <= 0) return false; + + return (rayResults[0].HitPos - other.Position).Length < 1f; } /// - /// Checks that these coordinates are within a certain distance without any + /// Checks that two entities are within a certain distance without any /// entity that matches the collision mask obstructing them. /// If the is zero or negative, - /// this method will only check if nothing obstructs the two sets of coordinates.. + /// this method will only check if nothing obstructs the two entities. /// - /// Set of coordinates to use. - /// Other set of coordinates to use. - /// maximum distance between the two sets of coordinates. - /// the mask to check for collisions - /// the entity to be ignored when checking for collisions. - /// if true and the coordinates are inside the obstruction, ignores the obstruction and - /// considers the interaction unobstructed. Therefore, setting this to true makes this check more permissive, such - /// as allowing an interaction to occur inside something impassable (like a wall). The default, false, - /// makes the check more restrictive. - /// True if the two points are within a given range without being obstructed. - public bool InRangeUnobstructed(MapCoordinates coords, MapCoordinates otherCoords, float range = InteractionRange, - int collisionMask = (int)CollisionGroup.Impassable, IEntity ignoredEnt = null, bool ignoreInsideBlocker = false) => - InRangeUnobstructed(coords, otherCoords, range, collisionMask, - ignoredEnt == null ? null : (Func)(entity => ignoredEnt == entity), ignoreInsideBlocker); + /// The first entity to use. + /// Other entity to use. + /// + /// Maximum distance between the two entities. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and or are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the origin entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + IEntity origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originPosition = origin.Transform.MapPosition; + var otherPosition = other.Transform.MapPosition; + predicate ??= e => e == origin || e == other; + + var inRange = InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, predicate, ignoreInsideBlocker); + + if (!inRange && popup) + { + var message = Loc.GetString("You can't reach there!"); + origin.PopupMessage(message); + } + + return inRange; + } + + /// + /// Checks that an entity and a component are within a certain + /// distance without any entity that matches the collision mask + /// obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The entity to use. + /// The component to use. + /// + /// Maximum distance between the entity and component. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and or are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the origin entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + IEntity origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originPosition = origin.Transform.MapPosition; + var otherPosition = other.Owner.Transform.MapPosition; + predicate ??= e => e == origin || e == other.Owner; + + var inRange = InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, predicate, ignoreInsideBlocker); + + if (!inRange && popup) + { + var message = Loc.GetString("You can't reach there!"); + origin.PopupMessage(message); + } + + return inRange; + } + + /// + /// Checks that an entity and a set of grid coordinates are within a certain + /// distance without any entity that matches the collision mask + /// obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The entity to use. + /// The grid coordinates to use. + /// + /// Maximum distance between the two entity and set of grid coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and or are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the origin entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + IEntity origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originPosition = origin.Transform.MapPosition; + var otherPosition = other.ToMap(_mapManager); + predicate ??= e => e == origin; + + var inRange = InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, predicate, ignoreInsideBlocker); + + if (!inRange && popup) + { + var message = Loc.GetString("You can't reach there!"); + origin.PopupMessage(message); + } + + return inRange; + } + + /// + /// Checks that an entity and a set of map coordinates are within a certain + /// distance without any entity that matches the collision mask + /// obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The entity to use. + /// The map coordinates to use. + /// + /// Maximum distance between the two entity and set of map coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and or are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the origin entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + IEntity origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originPosition = origin.Transform.MapPosition; + predicate ??= e => e == origin; + + var inRange = InRangeUnobstructed(originPosition, other, range, collisionMask, predicate, ignoreInsideBlocker); + + if (!inRange && popup) + { + var message = Loc.GetString("You can't reach there!"); + origin.PopupMessage(message); + } + + return inRange; + } + + /// + /// Checks that the user and target of a + /// are within a certain + /// distance without any entity that matches the collision mask + /// obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The event args to use. + /// + /// Maximum distance between the two entity and set of map coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and both the user and target are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the user entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + ITargetedInteractEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var origin = args.User; + var other = args.Target; + + return InRangeUnobstructed(origin, other, range, collisionMask, predicate, ignoreInsideBlocker, popup); + } + + /// + /// Checks that the user of a is within a + /// certain distance of the target and dropped entities without any entity + /// that matches the collision mask obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The event args to use. + /// + /// Maximum distance between the two entity and set of map coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and both the user and target are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the user entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + DragDropEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var user = args.User; + var dropped = args.Dropped; + var target = args.Target; + + if (!InRangeUnobstructed(user, target, range, collisionMask, predicate, ignoreInsideBlocker)) + { + if (popup) + { + var message = Loc.GetString("You can't reach there!"); + target.PopupMessage(user, message); + } + + return false; + } + + if (!InRangeUnobstructed(user, dropped, range, collisionMask, predicate, ignoreInsideBlocker)) + { + if (popup) + { + var message = Loc.GetString("You can't reach there!"); + dropped.PopupMessage(user, message); + } + + return false; + } + + return true; + } + + /// + /// Checks that the user and target of a + /// are within a certain distance + /// without any entity that matches the collision mask obstructing them. + /// If the is zero or negative, + /// this method will only check if nothing obstructs the entity and component. + /// + /// The event args to use. + /// + /// Maximum distance between the two entity and set of map coordinates. + /// + /// The mask to check for collisions. + /// + /// A predicate to check whether to ignore an entity or not. + /// If it returns true, it will be ignored. + /// + /// + /// If true and both the user and target are inside + /// the obstruction, ignores the obstruction and considers the interaction + /// unobstructed. + /// Therefore, setting this to true makes this check more permissive, + /// such as allowing an interaction to occur inside something impassable + /// (like a wall). The default, false, makes the check more restrictive. + /// + /// + /// Whether or not to popup a feedback message on the user entity for + /// it to see. + /// + /// + /// True if the two points are within a given range without being obstructed. + /// + public bool InRangeUnobstructed( + AfterInteractEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var user = args.User; + var target = args.Target; + predicate ??= e => e == user; + + MapCoordinates otherPosition; + + if (target == null) + { + otherPosition = args.ClickLocation.ToMap(_mapManager); + } + else + { + otherPosition = target.Transform.MapPosition; + predicate += e => e == target; + } + + return InRangeUnobstructed(user, otherPosition, range, collisionMask, predicate, ignoreInsideBlocker, popup); + } } } diff --git a/Content.Shared/GameObjects/EntitySystems/SharedStandingStateSystem.cs b/Content.Shared/GameObjects/EntitySystems/SharedStandingStateSystem.cs new file mode 100644 index 0000000000..9526b5414a --- /dev/null +++ b/Content.Shared/GameObjects/EntitySystems/SharedStandingStateSystem.cs @@ -0,0 +1,50 @@ +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.EntitySystems +{ + public abstract class SharedStandingStateSystem : EntitySystem + { + protected abstract bool OnDown(IEntity entity, bool playSound = true, bool dropItems = true, + bool force = false); + + protected abstract bool OnStand(IEntity entity); + + /// + /// Set's the mob standing state to down. + /// + /// The mob in question + /// Whether to play a sound when falling down or not + /// Whether to make the mob drop all the items on his hands + /// Whether or not to check if the entity can fall. + /// False if the mob was already downed or couldn't set the state + public bool Down(IEntity entity, bool playSound = true, bool dropItems = true, bool force = false) + { + if (dropItems) + { + DropAllItemsInHands(entity, false); + } + + if (!force && !EffectBlockerSystem.CanFall(entity)) + { + return false; + } + + return OnDown(entity, playSound, dropItems, force); + } + + /// + /// Sets the mob's standing state to standing. + /// + /// The mob in question. + /// False if the mob was already standing or couldn't set the state + public bool Standing(IEntity entity) + { + return OnStand(entity); + } + + public virtual void DropAllItemsInHands(IEntity entity, bool doMobChecks = true) + { + } + } +} diff --git a/Content.Shared/GameObjects/Verbs/SharedVerbSystem.cs b/Content.Shared/GameObjects/Verbs/SharedVerbSystem.cs new file mode 100644 index 0000000000..82c5a940e2 --- /dev/null +++ b/Content.Shared/GameObjects/Verbs/SharedVerbSystem.cs @@ -0,0 +1,60 @@ +#nullable enable +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Shared.Physics; +using Content.Shared.Utility; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Maths; + +namespace Content.Shared.GameObjects.Verbs +{ + public class SharedVerbSystem : EntitySystem + { + /// + /// Get all of the entities relevant for the contextmenu + /// + /// + /// + /// + /// Whether we should slightly extend out the ignored range for the ray predicated + /// + protected bool TryGetContextEntities(IEntity player, MapCoordinates targetPos, [NotNullWhen(true)] out List? contextEntities, bool buffer = false) + { + contextEntities = null; + var length = buffer ? 1.0f: 0.5f; + + var entities = EntityManager.GetEntitiesIntersecting(targetPos.MapId, + Box2.CenteredAround(targetPos.Position, (length, length))).ToList(); + + if (entities.Count == 0) + { + return false; + } + + // Check if we have LOS to the clicked-location, otherwise no popup. + var vectorDiff = player.Transform.MapPosition.Position - targetPos.Position; + var distance = vectorDiff.Length + 0.01f; + bool Ignored(IEntity entity) + { + return entities.Contains(entity) || + entity == player || + !entity.TryGetComponent(out OccluderComponent? occluder) || + !occluder.Enabled; + } + + var result = player.InRangeUnobstructed(targetPos, distance, CollisionGroup.Opaque, Ignored); + + if (!result) + { + return false; + } + + contextEntities = entities; + return true; + } + } +} diff --git a/Content.Shared/GameObjects/Verbs/VerbUtility.cs b/Content.Shared/GameObjects/Verbs/VerbUtility.cs index a876f7c11b..4a2bb756e0 100644 --- a/Content.Shared/GameObjects/Verbs/VerbUtility.cs +++ b/Content.Shared/GameObjects/Verbs/VerbUtility.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Reflection; using Robust.Shared.Containers; using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; using Robust.Shared.Utility; namespace Content.Shared.GameObjects.Verbs @@ -16,6 +17,8 @@ namespace Content.Shared.GameObjects.Verbs // This works for now though. public static IEnumerable<(IComponent, Verb)> GetVerbs(IEntity entity) { + var typeFactory = IoCManager.Resolve(); + foreach (var component in entity.GetAllComponents()) { var type = component.GetType(); @@ -26,7 +29,7 @@ namespace Content.Shared.GameObjects.Verbs continue; } - var verb = (Verb)Activator.CreateInstance(nestedType); + var verb = typeFactory.CreateInstance(nestedType); yield return (component, verb); } } @@ -38,6 +41,8 @@ namespace Content.Shared.GameObjects.Verbs /// The assembly to search for global verbs in. public static IEnumerable GetGlobalVerbs(Assembly assembly) { + var typeFactory = IoCManager.Resolve(); + foreach (Type type in assembly.GetTypes()) { if (Attribute.IsDefined(type, typeof(GlobalVerbAttribute))) @@ -46,7 +51,7 @@ namespace Content.Shared.GameObjects.Verbs { continue; } - yield return (GlobalVerb)Activator.CreateInstance(type); + yield return typeFactory.CreateInstance(type); } } } diff --git a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IAttack.cs b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IAttack.cs index cf2950a519..0a1a310405 100644 --- a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IAttack.cs +++ b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IAttack.cs @@ -1,5 +1,9 @@ -using System; +#nullable enable +using System; +using Content.Shared.GameObjects.Components.Research; +using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; using Robust.Shared.Map; namespace Content.Shared.Interfaces.GameObjects.Components @@ -9,18 +13,29 @@ namespace Content.Shared.Interfaces.GameObjects.Components /// public interface IAttack { - void Attack(AttackEventArgs eventArgs); + // Redirects to ClickAttack by default. + bool WideAttack(AttackEventArgs eventArgs) => ClickAttack(eventArgs); + bool ClickAttack(AttackEventArgs eventArgs); } public class AttackEventArgs : EventArgs { - public AttackEventArgs(IEntity user, GridCoordinates clickLocation) + public AttackEventArgs(IEntity user, GridCoordinates clickLocation, bool wideAttack, EntityUid target = default) { User = user; ClickLocation = clickLocation; + WideAttack = wideAttack; + Target = target; + + IEntity? targetEntity = null; + IoCManager.Resolve()?.TryGetEntity(Target, out targetEntity); + TargetEntity = targetEntity; } public IEntity User { get; } public GridCoordinates ClickLocation { get; } + public bool WideAttack { get; } + public EntityUid Target { get; } + public IEntity? TargetEntity { get; } } } diff --git a/Content.Shared/Interfaces/ISharedNotifyManager.cs b/Content.Shared/Interfaces/ISharedNotifyManager.cs index 2dde0e7b50..3948945d74 100644 --- a/Content.Shared/Interfaces/ISharedNotifyManager.cs +++ b/Content.Shared/Interfaces/ISharedNotifyManager.cs @@ -33,11 +33,54 @@ namespace Content.Shared.Interfaces void PopupMessageCursor(IEntity viewer, string message); } - public static class NotifyManagerExt + public static class SharedNotifyExtensions { + /// + /// Pops up a message at the location of for + /// alone to see. + /// + /// The entity above which the message will appear. + /// The entity that will see the message. + /// The message to show. public static void PopupMessage(this IEntity source, IEntity viewer, string message) { - IoCManager.Resolve().PopupMessage(source, viewer, message); + var notifyManager = IoCManager.Resolve(); + notifyManager.PopupMessage(source, viewer, message); + } + + /// + /// Pops up a message at the given entity's location for it alone to see. + /// + /// The entity that will see the message. + /// The message to be seen. + public static void PopupMessage(this IEntity viewer, string message) + { + viewer.PopupMessage(viewer, message); + } + + /// + /// Makes a string of text float up from a location on a grid. + /// + /// Location on a grid that the message floats up from. + /// The client attached entity that the message is being sent to. + /// Text contents of the message. + public static void PopupMessage(this GridCoordinates coordinates, IEntity viewer, string message) + { + var notifyManager = IoCManager.Resolve(); + notifyManager.PopupMessage(coordinates, viewer, message); + } + + /// + /// Makes a string of text float up from a client's cursor. + /// + /// + /// The client attached entity that the message is being sent to. + /// + /// Text contents of the message. + public static void PopupMessageCursor(this IEntity viewer, string message) + { + var notifyManager = IoCManager.Resolve(); + notifyManager.PopupMessageCursor(viewer, message); } } } diff --git a/Content.Shared/Maps/TurfHelpers.cs b/Content.Shared/Maps/TurfHelpers.cs index 1b1a8695f8..c8a0c5772b 100644 --- a/Content.Shared/Maps/TurfHelpers.cs +++ b/Content.Shared/Maps/TurfHelpers.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; +using System.Diagnostics.CodeAnalysis; using Content.Shared.Physics; +using Content.Shared.Utility; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Physics; @@ -61,6 +63,59 @@ namespace Content.Shared.Maps return tile; } + public static bool TryGetTileRef(this GridCoordinates coordinates, [NotNullWhen(true)] out TileRef? turf) + { + return (turf = coordinates.GetTileRef()) != null; + } + + public static bool PryTile(this GridCoordinates coordinates, + IMapManager? mapManager = null, ITileDefinitionManager? tileDefinitionManager = null, IEntityManager? entityManager = null) + { + mapManager ??= IoCManager.Resolve(); + + return coordinates.ToMapIndices(mapManager).PryTile(coordinates.GridID); + } + + public static bool PryTile(this MapIndices indices, GridId gridId, + IMapManager? mapManager = null, ITileDefinitionManager? tileDefinitionManager = null, IEntityManager? entityManager = null) + { + mapManager ??= IoCManager.Resolve(); + var grid = mapManager.GetGrid(gridId); + var tileRef = grid.GetTileRef(indices); + return tileRef.PryTile(mapManager, tileDefinitionManager, entityManager); + } + + public static bool PryTile(this TileRef tileRef, + IMapManager? mapManager = null, ITileDefinitionManager? tileDefinitionManager = null, IEntityManager? entityManager = null) + { + var tile = tileRef.Tile; + var indices = tileRef.GridIndices; + + // If the arguments are null, resolve the needed dependencies. + mapManager ??= IoCManager.Resolve(); + tileDefinitionManager ??= IoCManager.Resolve(); + entityManager ??= IoCManager.Resolve(); + + if (tile.IsEmpty) return false; + + var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.TypeId]; + + if (!tileDef.CanCrowbar) return false; + + var mapGrid = mapManager.GetGrid(tileRef.GridIndex); + + var plating = tileDefinitionManager[tileDef.BaseTurfs[^1]]; + + mapGrid.SetTile(tileRef.GridIndices, new Tile(plating.TileId)); + + var half = mapGrid.TileSize / 2f; + + //Actually spawn the relevant tile item at the right position and give it some random offset. + var tileItem = entityManager.SpawnEntity(tileDef.ItemDropPrototypeName, indices.ToGridCoordinates(mapManager, tileRef.GridIndex).Offset(new Vector2(half, half))); + tileItem.RandomOffset(0.25f); + return true; + } + /// /// Helper that returns all entities in a turf. /// @@ -121,6 +176,11 @@ namespace Content.Shared.Maps return false; } + public static GridCoordinates GridPosition(this TileRef turf) + { + return new GridCoordinates(turf.X, turf.Y, turf.GridIndex); + } + /// /// Creates a box the size of a tile, at the same position in the world as the tile. /// diff --git a/Content.Shared/Utility/SharedDirectionExtensions.cs b/Content.Shared/Utility/SharedDirectionExtensions.cs new file mode 100644 index 0000000000..c33a482b86 --- /dev/null +++ b/Content.Shared/Utility/SharedDirectionExtensions.cs @@ -0,0 +1,89 @@ +using System.Collections.Generic; +using Content.Shared.Maps; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Map; +using Robust.Shared.Maths; + +namespace Content.Shared.Utility +{ + public static class SharedDirectionExtensions + { + /// + /// Gets random directions until none are left + /// + /// An enumerable of the directions. + public static IEnumerable RandomDirections() + { + var directions = new[] + { + Direction.East, + Direction.SouthEast, + Direction.South, + Direction.SouthWest, + Direction.West, + Direction.NorthWest, + Direction.North, + Direction.NorthEast, + }; + + var robustRandom = IoCManager.Resolve(); + var n = directions.Length; + + while (n > 1) + { + n--; + var k = robustRandom.Next(n + 1); + var value = directions[k]; + directions[k] = directions[n]; + directions[n] = value; + } + + foreach (var direction in directions) + { + yield return direction; + } + } + + /// + /// Gets tiles in random directions from the given one. + /// + /// An enumerable of the adjacent tiles. + public static IEnumerable AdjacentTilesRandom(this TileRef tile, bool ignoreSpace = false) + { + return tile.GridPosition().AdjacentTilesRandom(ignoreSpace); + } + + /// + /// Gets tiles in random directions from the given one. + /// + /// An enumerable of the adjacent tiles. + public static IEnumerable AdjacentTilesRandom(this GridCoordinates coordinates, bool ignoreSpace = false) + { + var mapManager = IoCManager.Resolve(); + + foreach (var direction in RandomDirections()) + { + var adjacent = coordinates.Offset(direction).GetTileRef(); + + if (adjacent == null) + { + continue; + } + + if (ignoreSpace && adjacent.Value.Tile.IsEmpty) + { + continue; + } + + yield return adjacent.Value; + } + } + + public static GridCoordinates Offset(this GridCoordinates coordinates, Direction direction) + { + return coordinates.Offset(direction.ToVec()); + } + } +} diff --git a/Content.Shared/Utility/SharedEntityExtensions.cs b/Content.Shared/Utility/SharedEntityExtensions.cs new file mode 100644 index 0000000000..8ad47700e2 --- /dev/null +++ b/Content.Shared/Utility/SharedEntityExtensions.cs @@ -0,0 +1,41 @@ +using System; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Maths; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Shared.Utility +{ + public static class SharedEntityExtensions + { + public static void RandomOffset(this IEntity entity, float minX, float maxX, float minY, float maxY) + { + DebugTools.AssertNotNull(entity); + DebugTools.Assert(minX <= maxX, $"Minimum X value ({minX}) must be smaller than or equal to the maximum X value ({maxX})"); + DebugTools.Assert(minY <= maxY, $"Minimum Y value ({minY}) must be smaller than or equal to the maximum Y value ({maxY})"); + + var random = IoCManager.Resolve(); + var randomX = random.NextFloat() * (maxX - minX) + minX; + var randomY = random.NextFloat() * (maxY - minY) + minY; + var offset = new Vector2(randomX, randomY); + + entity.Transform.LocalPosition += offset; + } + + public static void RandomOffset(this IEntity entity, float min, float max) + { + DebugTools.AssertNotNull(entity); + DebugTools.Assert(min <= max, $"Minimum value ({min}) must be smaller than or equal to the maximum value ({max})"); + + entity.RandomOffset(min, max, min, max); + } + + public static void RandomOffset(this IEntity entity, float value) + { + value = Math.Abs(value); + entity.RandomOffset(-value, value); + } + } +} diff --git a/Content.Shared/Utility/SharedRangeExtensions.cs b/Content.Shared/Utility/SharedRangeExtensions.cs new file mode 100644 index 0000000000..326d2adfeb --- /dev/null +++ b/Content.Shared/Utility/SharedRangeExtensions.cs @@ -0,0 +1,432 @@ +using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.Interfaces.GameObjects.Components; +using Content.Shared.Physics; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.GameObjects.Components; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.IoC; +using Robust.Shared.Map; +using static Content.Shared.GameObjects.EntitySystems.SharedInteractionSystem; + +namespace Content.Shared.Utility +{ + public static class SharedRangeExtensions + { + private static SharedInteractionSystem SharedInteractionSystem => EntitySystem.Get(); + + #region Entities + public static bool InRangeUnobstructed( + this IEntity origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(origin, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IEntity origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(origin, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IEntity origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var otherEntity = other.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(origin, otherEntity, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IEntity origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(origin, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IEntity origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(origin, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + #endregion + + #region Components + public static bool InRangeUnobstructed( + this IComponent origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IComponent origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IComponent origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + var otherEntity = other.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, otherEntity, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IComponent origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IComponent origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + #endregion + + #region Containers + public static bool InRangeUnobstructed( + this IContainer origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this IContainer origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IContainer origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + var otherEntity = other.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, otherEntity, range, collisionMask, + predicate, ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IContainer origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this IContainer origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + var originEntity = origin.Owner; + + return SharedInteractionSystem.InRangeUnobstructed(originEntity, other, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + #endregion + + #region GridCoordinates + public static bool InRangeUnobstructed( + this GridCoordinates origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var originPosition = origin.ToMap(mapManager); + var otherPosition = other.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, + predicate, ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this GridCoordinates origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var originPosition = origin.ToMap(mapManager); + var otherPosition = other.Owner.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, + predicate, ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this GridCoordinates origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var originPosition = origin.ToMap(mapManager); + var otherPosition = other.Owner.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, + predicate, ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this GridCoordinates origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var originPosition = origin.ToMap(mapManager); + var otherPosition = other.ToMap(mapManager); + + return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask, + predicate, ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this GridCoordinates origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var originPosition = origin.ToMap(mapManager); + + return SharedInteractionSystem.InRangeUnobstructed(originPosition, other, range, collisionMask, predicate, + ignoreInsideBlocker); + } + #endregion + + #region MapCoordinates + public static bool InRangeUnobstructed( + this MapCoordinates origin, + IEntity other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var otherPosition = other.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(origin, otherPosition, range, collisionMask, predicate, + ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this MapCoordinates origin, + IComponent other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var otherPosition = other.Owner.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(origin, otherPosition, range, collisionMask, predicate, + ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this MapCoordinates origin, + IContainer other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var otherPosition = other.Owner.Transform.MapPosition; + + return SharedInteractionSystem.InRangeUnobstructed(origin, otherPosition, range, collisionMask, predicate, + ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this MapCoordinates origin, + GridCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + var mapManager = IoCManager.Resolve(); + var otherPosition = other.ToMap(mapManager); + + return SharedInteractionSystem.InRangeUnobstructed(origin, otherPosition, range, collisionMask, predicate, + ignoreInsideBlocker); + } + + public static bool InRangeUnobstructed( + this MapCoordinates origin, + MapCoordinates other, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false) + { + return SharedInteractionSystem.InRangeUnobstructed(origin, other, range, collisionMask, predicate, + ignoreInsideBlocker); + } + #endregion + + #region EventArgs + public static bool InRangeUnobstructed( + this ITargetedInteractEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(args, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this DragDropEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(args, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + + public static bool InRangeUnobstructed( + this AfterInteractEventArgs args, + float range = InteractionRange, + CollisionGroup collisionMask = CollisionGroup.Impassable, + Ignored predicate = null, + bool ignoreInsideBlocker = false, + bool popup = false) + { + return SharedInteractionSystem.InRangeUnobstructed(args, range, collisionMask, predicate, + ignoreInsideBlocker, popup); + } + #endregion + } +} diff --git a/Content.Shared/Utility/TemperatureHelpers.cs b/Content.Shared/Utility/TemperatureHelpers.cs index 1d4e61ca48..660af760fd 100644 --- a/Content.Shared/Utility/TemperatureHelpers.cs +++ b/Content.Shared/Utility/TemperatureHelpers.cs @@ -9,9 +9,31 @@ namespace Content.Shared.Utility return celsius + PhysicalConstants.ZERO_CELCIUS; } + public static float CelsiusToFahrenheit(float celsius) + { + return celsius * 9 / 5 + 32; + } + public static float KelvinToCelsius(float kelvin) { return kelvin - PhysicalConstants.ZERO_CELCIUS; } + + public static float KelvinToFahrenheit(float kelvin) + { + var celsius = KelvinToCelsius(kelvin); + return CelsiusToFahrenheit(celsius); + } + + public static float FahrenheitToCelsius(float fahrenheit) + { + return (fahrenheit - 32) * 5 / 9; + } + + public static float FahrenheitToKelvin(float fahrenheit) + { + var celsius = FahrenheitToCelsius(fahrenheit); + return CelsiusToKelvin(celsius); + } } } diff --git a/Resources/Audio/Items/Flare/flare_burn.ogg b/Resources/Audio/Items/Flare/flare_burn.ogg new file mode 100644 index 0000000000..ea20d8d1f1 Binary files /dev/null and b/Resources/Audio/Items/Flare/flare_burn.ogg differ diff --git a/Resources/Audio/Items/Flare/flare_on.ogg b/Resources/Audio/Items/Flare/flare_on.ogg new file mode 100644 index 0000000000..f855723f47 Binary files /dev/null and b/Resources/Audio/Items/Flare/flare_on.ogg differ diff --git a/Resources/Groups/groups.yml b/Resources/Groups/groups.yml index e7120fce27..8762c7c671 100644 --- a/Resources/Groups/groups.yml +++ b/Resources/Groups/groups.yml @@ -101,6 +101,12 @@ - addaccent - readyall - factions + - signallink + - adddamageflag + - removedamageflag + - godmode + - deleteewi + - hurt CanViewVar: true CanAdminPlace: true CanAdminMenu: true @@ -195,6 +201,12 @@ - addaccent - readyall - factions + - signallink + - adddamageflag + - removedamageflag + - godmode + - deleteewi + - hurt CanViewVar: true CanAdminPlace: true CanScript: true diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 146f642c62..2b0fa6bbe4 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -84,7 +84,7 @@ grids: - ind: "1,0" tiles: OwAAADsAAAA7AAAAPgAAAD0AAAA6AAAAOgAAADoAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADsAAAA7AAAAOwAAAD4AAAA9AAAAPQAAADoAAAA6AAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAADoAAAA+AAAAPgAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA+AAAAOgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAPQAAAD0AAAA9AAAAPgAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOgAAAD0AAAA6AAAAPQAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA6AAAAOgAAADoAAAA6AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOgAAADoAAAA6AAAAPgAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADoAAAA6AAAAOgAAAD4AAAA4AAAAOAAAAD4AAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA9AAAAPQAAAD0AAAA+AAAAOAAAADgAAAA6AAAAPgAAAD4AAAA+AAAAOgAAAD4AAAA6AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA4AAAAOgAAAD4AAAAAAAAAPgAAADoAAAA+AAAAOgAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAPgAAAA== - ind: "0,1" - tiles: PgAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA+AAAAPQAAADoAAAA+AAAAOgAAADoAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD0AAAA6AAAAPgAAAAAAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA9AAAAOgAAAD4AAAAAAAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA+AAAAPQAAADoAAAA+AAAAAAAAADoAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOgAAAD0AAAA6AAAAPgAAAAAAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA6AAAAOgAAAD4AAAAAAAAAPgAAAD4AAAA4AAAAPgAAADgAAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAAAAAADIAAAA+AAAAOAAAADgAAAA4AAAAPgAAADwAAAA8AAAAPAAAADwAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADgAAAA4AAAAOAAAAD4AAAA8AAAAPAAAADwAAAA8AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADIAAAA4AAAAOAAAADgAAAA4AAAAPAAAADwAAAA8AAAAPAAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAA+AAAAOAAAADgAAAA4AAAAPgAAADwAAAA8AAAAPAAAADwAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAPgAAADgAAAA4AAAAOAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: PgAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA+AAAAPQAAADoAAAA+AAAAOgAAADoAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD0AAAA6AAAAPgAAAAAAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA9AAAAOgAAAD4AAAAAAAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA+AAAAPQAAADoAAAA+AAAAAAAAADoAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOgAAAD0AAAA6AAAAPgAAAAAAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA6AAAAOgAAAD4AAAAAAAAAPgAAAD4AAAA4AAAAPgAAADgAAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAOgAAAD4AAAA+AAAAAAAAADIAAAA+AAAAOAAAADgAAAA4AAAAPgAAADwAAAA8AAAAPAAAADwAAAA+AAAAOgAAADoAAAA6AAAAPgAAAAAAAAAyAAAAMgAAADgAAAA4AAAAOAAAAD4AAAA8AAAAPAAAADwAAAA8AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAAAAAAAMgAAADIAAAA4AAAAOAAAADgAAAA4AAAAPAAAADwAAAA8AAAAPAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAAAAAADIAAAA+AAAAOAAAADgAAAA4AAAAPgAAADwAAAA8AAAAPAAAADwAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAPgAAADgAAAA4AAAAOAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: "-2,0" tiles: PgAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA4AAAAOAAAAD4AAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAOgAAAD0AAAA+AAAAOAAAADgAAAA4AAAAPgAAAD4AAAA4AAAAOAAAAD4AAAA+AAAAOAAAADgAAAA+AAAAPQAAAD0AAAA6AAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA4AAAAPgAAAD0AAAA6AAAAOgAAAD4AAAA4AAAAOAAAADgAAAA4AAAAPgAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA9AAAAOgAAADoAAAA+AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAAD4AAAA4AAAAOAAAADgAAAA+AAAAPQAAADoAAAA6AAAAPgAAADgAAAA4AAAAOAAAADgAAAA+AAAAOAAAADgAAAA+AAAAPgAAADoAAAA+AAAAPgAAAD0AAAA9AAAAOgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAADoAAAA9AAAAOgAAADoAAAA9AAAAOgAAADoAAAA6AAAAOgAAADoAAAA6AAAAOgAAADoAAAA6AAAAOgAAADoAAAA6AAAAPQAAAD0AAAA9AAAAPQAAADoAAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA9AAAAPQAAAD0AAAA+AAAAPgAAAD0AAAA6AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD0AAAA9AAAAOgAAAA== - ind: "1,-1" @@ -129,180 +129,8728 @@ grids: tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== entities: - uid: 0 - type: DisposalTrunk + type: SuspicionHitscanSpawner components: - - parent: 15 - pos: -29.5,11.5 + - parent: 857 + pos: -15.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1 + type: SuspicionShotgunSpawner + components: + - parent: 857 + pos: -15.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -23.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -35.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 4 + type: SuspicionRifleMagazineSpawner + components: + - parent: 857 + pos: -35.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 5 + type: SuspicionRifleMagazineSpawner + components: + - parent: 857 + pos: -35.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 6 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -35.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 7 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -35.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 8 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: -11.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 9 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: -11.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 10 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: -11.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 11 + type: SuspicionLaunchersSpawner + components: + - parent: 857 + pos: -12.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 12 + type: SuspicionSniperSpawner + components: + - parent: 857 + pos: -12.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 13 + type: SuspicionShotgunSpawner + components: + - parent: 857 + pos: -12.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 14 + type: SuspicionSMGSpawner + components: + - parent: 857 + pos: -13.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 15 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -13.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 16 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -13.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 17 + type: SuspicionRevolverSpawner + components: + - parent: 857 + pos: -14.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 18 + type: SuspicionHitscanSpawner + components: + - parent: 857 + pos: -14.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 19 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -10.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 20 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -5.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 21 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -31.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 22 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -29.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 23 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -9.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 24 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -10.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 25 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -3.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 26 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -29.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 27 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -30.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 28 + type: SuspicionShotgunSpawner + components: + - parent: 857 + pos: -29.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 29 + type: SuspicionRifleMagazineSpawner + components: + - parent: 857 + pos: -7.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 30 + type: SuspicionSMGSpawner + components: + - parent: 857 + pos: -7.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 31 + type: SuspicionMagnumMagazineSpawner + components: + - parent: 857 + pos: 16.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 32 + type: SuspicionRevolverSpawner + components: + - parent: 857 + pos: 15.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 33 + type: SuspicionMagnumMagazineSpawner + components: + - parent: 857 + pos: 14.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 34 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: -8.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 35 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: 0.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 36 + type: SuspicionHitscanSpawner + components: + - parent: 857 + pos: 25.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 37 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: 18.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 38 + type: SuspicionGrenadesSpawner + components: + - parent: 857 + pos: 15.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 39 + type: SuspicionRifleMagazineSpawner + components: + - parent: 857 + pos: -13.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 40 + type: SuspicionSniperSpawner + components: + - parent: 857 + pos: -8.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 41 + type: SuspicionShotgunSpawner + components: + - parent: 857 + pos: -7.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 42 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -7.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 43 + type: SuspicionShotgunMagazineSpawner + components: + - parent: 857 + pos: -6.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 44 + type: FoodBananaCreamPie + components: + - parent: 857 + pos: -18.509874,-9.279623 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 45 + type: FoodBananaCreamPie + components: + - parent: 857 + pos: -18.947374,-9.467123 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 46 + type: FoodBanana + components: + - parent: 857 + pos: -19.463,-9.482748 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 47 + type: FoodBanana + components: + - parent: 857 + pos: -19.603624,-9.388998 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 48 + type: FoodBanana + components: + - parent: 857 + pos: -19.728624,-9.576498 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 49 + type: Poweredlight + components: + - parent: 857 + pos: -18.5,-7 rot: -1.5707963267948966 rad type: Transform - containers: - DisposalEntry: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 50 + type: Table + components: + - parent: 857 + pos: -19.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 51 + type: BoneSaw + components: + - parent: 857 + pos: 19.49593,-21.552101 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 52 + type: ShoesCoder + components: + - parent: 857 + pos: 47.437466,-6.6893435 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 53 + type: JawsOfLife + components: + - parent: 857 + pos: 39.53893,-0.77325034 + rot: -1.5707963267948966 rad + type: Transform + - useSound: /Audio/Items/jaws_pry.ogg + type: Tool + - anchored: False + type: Collidable +- uid: 54 + type: GlovesLatex + components: + - parent: 857 + pos: 22.086878,-4.4133806 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 55 + type: GlovesLatex + components: + - parent: 857 + pos: 21.618128,-4.4133806 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 56 + type: FoodMint + components: + - parent: 857 + pos: -2.776661,-3.3271997 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 57 + type: ToyPhazon + components: + - parent: 857 + pos: 9.449931,16.636608 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 58 + type: Scalpel + components: + - parent: 857 + pos: 19.190952,-21.29313 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 59 + type: DrinkBottleRum + components: + - parent: 857 + pos: -15.694785,24.608267 + rot: -1.5707963267948966 rad + type: Transform + - caps: PourIn, PourOut, Injectable + type: Solution + - anchored: False + type: Collidable +- uid: 60 + type: DisgustingSweptSoup + components: + - parent: 857 + pos: -14.96041,24.545767 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 61 + type: Retractor + components: + - parent: 857 + pos: 19.482815,-21.853302 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 62 + type: ToyMouse + components: + - parent: 857 + pos: 31.376545,-7.1625524 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 63 + type: SignSurgery + components: + - parent: 857 + pos: 18.296293,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 64 + type: Drill + components: + - parent: 857 + pos: 19.515043,-22.566078 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 65 + type: BedsheetMedical + components: + - parent: 857 + pos: 18.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 66 + type: Bed + components: + - parent: 857 + pos: 18.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 67 + type: Hemostat + components: + - parent: 857 + pos: 19.655668,-21.300453 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 68 + type: LockerCursed + components: + - parent: 857 + pos: -8.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 1 - type: DisposalBend +- uid: 69 + type: PowerCellRecharger components: - - parent: 15 - pos: -29.5,10.5 + - parent: 857 + pos: 39.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + PowerCellCharger-powerCellContainer: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 70 + type: PlushieCarp + components: + - parent: 857 + pos: -4.7375913,-3.3900535 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 71 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: 8.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 72 + type: ToolboxGoldFilled + components: + - parent: 857 + pos: -3.454914,18.643616 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 73 + type: DrinkGoldenCup + components: + - parent: 857 + pos: -3.470539,16.956116 + rot: -1.5707963267948966 rad + type: Transform + - caps: PourIn, PourOut, Injectable + type: Solution + - anchored: False + type: Collidable +- uid: 74 + type: GoldStack + components: + - parent: 857 + pos: -2.579914,16.362366 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 75 + type: GoldStack + components: + - parent: 857 + pos: -2.439289,16.72174 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 76 + type: GoldStack + components: + - parent: 857 + pos: -2.283039,16.518616 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 77 + type: GoldStack + components: + - parent: 857 + pos: -2.798664,16.424866 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 78 + type: GoldStack + components: + - parent: 857 + pos: -2.611164,16.549866 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 79 + type: GoldStack + components: + - parent: 857 + pos: -2.673664,16.72174 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 80 + type: GoldStack + components: + - parent: 857 + pos: -2.861164,16.72174 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 81 + type: GoldStack + components: + - parent: 857 + pos: -3.064289,16.53424 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 82 + type: Bling + components: + - parent: 857 + pos: -2.861164,18.612366 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 83 + type: Bling + components: + - parent: 857 + pos: -2.564289,18.643616 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 84 + type: Table + components: + - parent: 857 + pos: -3.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 85 + type: Table + components: + - parent: 857 + pos: -2.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 86 + type: Table + components: + - parent: 857 + pos: -2.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 87 + type: Table + components: + - parent: 857 + pos: -3.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 88 + type: ReinforcedWindow + components: + - parent: 857 + pos: 28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 89 + type: ReinforcedWindow + components: + - parent: 857 + pos: 27.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 90 + type: ReinforcedWindow + components: + - parent: 857 + pos: 26.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 91 + type: LowWall + components: + - parent: 857 + pos: 28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 92 + type: LowWall + components: + - parent: 857 + pos: 27.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 93 + type: LowWall + components: + - parent: 857 + pos: 26.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 94 + type: solid_wall + components: + - parent: 857 + pos: -22.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 95 + type: solid_wall + components: + - parent: 857 + pos: -23.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 96 + type: solid_wall + components: + - parent: 857 + pos: -24.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 97 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 98 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 99 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 100 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 101 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 102 + type: Brutepack + components: + - parent: 857 + pos: 6.839255,-3.3712535 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 103 + type: MaskJoy + components: + - parent: 857 + pos: -9.360208,-25.487799 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 104 + type: RCD + components: + - parent: 857 + pos: 29.55875,-4.333219 + type: Transform + - anchored: False + type: Collidable +- uid: 105 + type: RCD + components: + - parent: 857 + pos: 29.4025,-4.489469 + type: Transform + - anchored: False + type: Collidable +- uid: 106 + type: WeldingFuelTank + components: + - parent: 857 + pos: -1.5,-11.5 + type: Transform + - anchored: False + type: Collidable +- uid: 107 + type: WaterTankFull + components: + - parent: 857 + pos: 0.5,-11.5 + type: Transform + - anchored: False + type: Collidable +- uid: 108 + type: Basketball + components: + - parent: 857 + pos: -1.5183675,-6.4951944 + type: Transform + - anchored: False + type: Collidable +- uid: 109 + type: SignSomethingOld2 + components: + - parent: 857 + pos: 24.996767,-0.60842 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 110 + type: SignSomethingOld + components: + - parent: 857 + pos: 17.158585,-23.619913 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 111 + type: SignAtmos + components: + - parent: 857 + pos: 31.498556,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 112 + type: Paper + components: + - parent: 857 + pos: 8.379866,25.982151 + type: Transform + - anchored: False + type: Collidable +- uid: 113 + type: DrinkHotCoffee + components: + - parent: 857 + pos: 8.661116,25.513401 + type: Transform + - caps: PourIn, PourOut, Injectable + type: Solution + - anchored: False + type: Collidable +- uid: 114 + type: RandHandTele + components: + - parent: 857 + pos: 8.379866,26.654026 + type: Transform + - anchored: False + type: Collidable +- uid: 115 + type: FlashlightLantern + components: + - parent: 857 + pos: 30.248352,-4.36431 + type: Transform + - anchored: False + type: Collidable + - containers: + flashlight_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 116 + type: FlashlightLantern + components: + - parent: 857 + pos: 30.545227,-4.17681 + type: Transform + - anchored: False + type: Collidable + - containers: + flashlight_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 117 + type: HatHardhatYellow + components: + - parent: 857 + pos: 31.357727,-4.36431 + type: Transform + - anchored: False + type: Collidable +- uid: 118 + type: HatHardhatWhite + components: + - parent: 857 + pos: 31.623352,-4.14556 + type: Transform + - anchored: False + type: Collidable +- uid: 119 + type: HatHardhatRed + components: + - parent: 857 + pos: 31.201477,-4.05181 + type: Transform + - anchored: False + type: Collidable +- uid: 120 + type: S + components: + - parent: 857 + pos: -9.816995,-25.23114 + type: Transform + - anchored: False + type: Collidable +- uid: 121 + type: Chair + components: + - parent: 857 + pos: 10.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 122 + type: Chair + components: + - parent: 857 + pos: 9.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 123 + type: Chair + components: + - parent: 857 + pos: 8.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 124 + type: Stunbaton + components: + - parent: 857 + pos: -14.484581,20.641253 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + stunbaton_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 125 + type: Stunbaton + components: + - parent: 857 + pos: -14.609581,20.969378 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + stunbaton_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 126 + type: PowerCellSmallStandard + components: + - parent: 127 + type: Transform + - anchored: False + type: Collidable +- uid: 127 + type: TaserGun + components: + - parent: 857 + pos: -14.515831,21.735003 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + BatteryBarrel-powercell-container: + entities: + - 126 + type: Content.Server.GameObjects.ContainerSlot + BatteryBarrel-ammo-container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 128 + type: PowerCellSmallStandard + components: + - parent: 129 + type: Transform + - anchored: False + type: Collidable +- uid: 129 + type: TaserGun + components: + - parent: 857 + pos: -13.672081,21.719378 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + BatteryBarrel-powercell-container: + entities: + - 128 + type: Content.Server.GameObjects.ContainerSlot + BatteryBarrel-ammo-container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 130 + type: Table + components: + - parent: 857 + pos: -14.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 131 + type: Table + components: + - parent: 857 + pos: -13.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 132 + type: Table + components: + - parent: 857 + pos: -14.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 133 + type: SignEngineering + components: + - parent: 857 + pos: 30.305984,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 134 + type: Poweredlight + components: + - parent: 857 + pos: 41.000477,14 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 135 + type: Poweredlight + components: + - parent: 857 + pos: -10,13.5 + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 136 + type: Poweredlight + components: + - parent: 857 + pos: 49.53657,5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 137 + type: PlaqueZum + components: + - parent: 857 + pos: 33.498077,11.399912 rot: 1.5707963267948966 rad type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2 - type: DisposalBend + - deadThreshold: 100 + type: Destructible +- uid: 138 + type: SignDirectionalEng components: - - parent: 15 - pos: -28.5,10.5 + - parent: 857 + pos: 5.987236,6.2578936 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 139 + type: SignBridge + components: + - parent: 857 + pos: 5.6507263,22.5 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 140 + type: Poweredlight + components: + - parent: 857 + pos: -25.939785,7 + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 141 + type: Poweredlight + components: + - parent: 857 + pos: -15.231159,-17 rot: -1.5707963267948966 rad type: Transform - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container + light_bulb: + type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - -- uid: 3 +- uid: 142 + type: SignRND + components: + - parent: 857 + pos: -5.506548,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 143 + type: SignMedical + components: + - parent: 857 + pos: 6.500677,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 144 + type: SignGravity + components: + - parent: 857 + pos: 48.325787,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 145 + type: SignToolStorage + components: + - parent: 857 + pos: -26.694574,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 146 + type: Poweredlight + components: + - parent: 857 + pos: 28.73304,7 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 147 + type: SignEVA + components: + - parent: 857 + pos: 10.691145,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 148 + type: SignChem + components: + - parent: 857 + pos: 14.317627,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 149 + type: SignCargoDock + components: + - parent: 857 + pos: 18.501179,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 150 + type: solid_wall + components: + - parent: 857 + pos: 24.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 151 + type: solid_wall + components: + - parent: 857 + pos: 18.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 152 + type: LowWall + components: + - parent: 857 + pos: 21.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 153 + type: LowWall + components: + - parent: 857 + pos: 21.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 154 + type: SignDirectionalEvac + components: + - parent: 857 + pos: -20.488556,6.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 155 + type: SignDirectionalSupply + components: + - parent: 857 + pos: -25.704908,7.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 156 + type: AirlockMaintCargo + components: + - parent: 857 + pos: -24.5,-12.5 + type: Transform +- uid: 157 + type: ConveyorBelt + components: + - parent: 857 + pos: -23.5,-13.5 + type: Transform +- uid: 158 + type: LargeBeaker + components: + - parent: 857 + pos: 18.611881,1.2455455 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 159 + type: Beaker + components: + - parent: 857 + pos: 18.361881,1.6674205 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 160 type: DisposalBend components: - - parent: 15 - pos: -8.5,-14.5 + - parent: 857 + pos: 17.5,-0.5 type: Transform + - deadThreshold: 100 + type: Breakable - containers: DisposalBend: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 4 - type: DisposalPipe +- uid: 161 + type: DisposalBend components: - - parent: 15 - pos: -7.5,-14.5 + - parent: 857 + pos: 17.5,-1.5 rot: 3.141592653589793 rad type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 162 + type: DisposalPipe + components: + - parent: 857 + pos: 16.5,-1.5 + type: Transform + - deadThreshold: 100 + type: Breakable - containers: DisposalTransit: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 5 - type: DisposalPipe +- uid: 163 + type: ConveyorSwitch components: - - parent: 15 - pos: -6.5,-14.5 + - parent: 857 + pos: -23.467268,-14.347846 rot: 3.141592653589793 rad type: Transform + - conveyors: [] + switches: [] + type: ConveyorSwitch +- uid: 164 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: 34.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 165 + type: DisposalJunction + components: + - parent: 857 + pos: 24.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 166 + type: DisposalJunction + components: + - parent: 857 + pos: 12.5,-1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 167 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: 12.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 168 + type: DisposalJunction + components: + - parent: 857 + pos: 2.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 169 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: 2.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 170 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: -10.5,-15.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 171 + type: DisposalJunction + components: + - parent: 857 + pos: -17.5,-15.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 172 + type: DisposalYJunction + components: + - parent: 857 + pos: -23.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 173 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: -27.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 174 + type: DisposalJunction + components: + - parent: 857 + pos: -28.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 175 + type: DisposalJunction + components: + - parent: 857 + pos: -22.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 176 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: -12.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 177 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: 0.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 178 + type: DisposalJunction + components: + - parent: 857 + pos: 2.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 179 + type: DisposalJunctionFlipped + components: + - parent: 857 + pos: 3.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalJunction: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 180 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-14.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable - containers: DisposalTransit: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 6 +- uid: 181 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-13.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 182 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-12.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 183 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-11.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 184 type: DisposalTrunk components: - - parent: 15 - pos: -5.5,-14.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -17.5,-22.5 + rot: 1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Breakable - containers: DisposalEntry: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 7 +- uid: 185 type: DisposalUnit components: - - parent: 15 - pos: -5.5,-14.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -17.5,-22.5 + rot: 3.141592653589793 rad type: Transform - + - deadThreshold: 100 + type: Destructible - containers: DisposalUnit: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 8 +- uid: 186 type: DisposalPipe components: - - parent: 15 - pos: -9.5,-15.5 + - parent: 857 + pos: -16.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 187 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 188 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 189 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 190 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 191 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 192 + type: VendingMachineYouTool + components: + - parent: 857 + pos: -28.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 193 + type: DisposalUnit + components: + - parent: 857 + pos: -29.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 194 + type: DisposalBend + components: + - parent: 857 + pos: -8.5,-15.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 195 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-16.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 196 + type: DisposalPipe + components: + - parent: 857 + pos: 0.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 197 + type: DisposalPipe + components: + - parent: 857 + pos: -0.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 198 + type: DisposalPipe + components: + - parent: 857 + pos: -1.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 199 + type: DisposalPipe + components: + - parent: 857 + pos: -2.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 200 + type: DisposalPipe + components: + - parent: 857 + pos: -3.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 201 + type: DisposalPipe + components: + - parent: 857 + pos: -4.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 202 + type: DisposalTrunk + components: + - parent: 857 + pos: -5.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 203 + type: DisposalUnit + components: + - parent: 857 + pos: -5.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 204 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-17.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 205 + type: DisposalPipe + components: + - parent: 857 + pos: 4.5,11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 206 + type: DisposalPipe + components: + - parent: 857 + pos: 5.5,11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 207 + type: DisposalTrunk + components: + - parent: 857 + pos: 6.5,11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 208 + type: DisposalUnit + components: + - parent: 857 + pos: 6.5,11.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 209 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-18.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 210 + type: DisposalPipe + components: + - parent: 857 + pos: 24.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 211 + type: DisposalPipe + components: + - parent: 857 + pos: 24.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 212 + type: DisposalPipe + components: + - parent: 857 + pos: 24.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 213 + type: DisposalTrunk + components: + - parent: 857 + pos: 24.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 214 + type: DisposalUnit + components: + - parent: 857 + pos: 24.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 215 + type: DisposalPipe + components: + - parent: 857 + pos: 13.5,-1.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 216 + type: DisposalPipe + components: + - parent: 857 + pos: 14.5,-1.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 217 + type: DisposalPipe + components: + - parent: 857 + pos: 15.5,-1.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 218 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-19.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 219 + type: Recycler + components: + - parent: 857 + pos: -21.5,-13.5 + type: Transform +- uid: 220 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-20.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 221 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 222 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 223 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 224 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,-1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 225 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,-2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 226 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,-3.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 227 + type: DisposalTrunk + components: + - parent: 857 + pos: 34.5,-4.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 228 + type: DisposalUnit + components: + - parent: 857 + pos: 34.5,-4.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 229 + type: DisposalPipe + components: + - parent: 857 + pos: 30.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 230 + type: DisposalPipe + components: + - parent: 857 + pos: 36.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 231 + type: DisposalPipe + components: + - parent: 857 + pos: 35.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 232 + type: DisposalPipe + components: + - parent: 857 + pos: 34.5,2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 233 + type: DisposalPipe + components: + - parent: 857 + pos: 33.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 234 + type: DisposalPipe + components: + - parent: 857 + pos: 32.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 235 + type: DisposalPipe + components: + - parent: 857 + pos: 31.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 236 + type: DisposalBend + components: + - parent: 857 + pos: 37.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 237 + type: DisposalPipe + components: + - parent: 857 + pos: 37.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 238 + type: DisposalPipe + components: + - parent: 857 + pos: 37.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 239 + type: DisposalTrunk + components: + - parent: 857 + pos: 37.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 240 + type: DisposalUnit + components: + - parent: 857 + pos: 37.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 241 + type: DisposalBend + components: + - parent: 857 + pos: 2.5,29.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 242 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 243 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 244 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 245 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 246 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 247 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 248 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 249 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 250 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 251 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 252 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 253 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 254 + type: DisposalPipe + components: + - parent: 857 + pos: 1.5,17.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 255 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 256 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 257 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 258 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 259 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 260 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 261 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 262 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 263 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 264 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 265 + type: Window + components: + - parent: 857 + pos: 37.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 266 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 267 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,-21.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 268 + type: DisposalPipe + components: + - parent: 857 + pos: 1.5,29.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 269 + type: DisposalPipe + components: + - parent: 857 + pos: 0.5,29.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 270 + type: DisposalPipe + components: + - parent: 857 + pos: -0.5,29.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 271 + type: DisposalPipe + components: + - parent: 857 + pos: -1.5,29.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 272 + type: DisposalTrunk + components: + - parent: 857 + pos: -2.5,29.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 273 + type: DisposalUnit + components: + - parent: 857 + pos: -2.5,29.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 274 + type: DisposalPipe + components: + - parent: 857 + pos: -18.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 275 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-8.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 276 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-7.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 277 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-6.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 278 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-5.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 279 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-4.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 280 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-3.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 281 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 282 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 283 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 284 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 285 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 286 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 287 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-10.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 288 + type: DisposalBend + components: + - parent: 857 + pos: 3.5,-11.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 289 + type: DisposalPipe + components: + - parent: 857 + pos: 5.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 290 + type: DisposalPipe + components: + - parent: 857 + pos: 6.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 291 + type: DisposalPipe + components: + - parent: 857 + pos: 7.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 292 + type: DisposalPipe + components: + - parent: 857 + pos: 8.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 293 + type: DisposalPipe + components: + - parent: 857 + pos: 4.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 294 + type: DisposalPipe + components: + - parent: 857 + pos: 9.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 295 + type: DisposalPipe + components: + - parent: 857 + pos: 10.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 296 + type: DisposalTrunk + components: + - parent: 857 + pos: 11.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 297 + type: DisposalUnit + components: + - parent: 857 + pos: 11.5,-11.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 298 + type: DisposalPipe + components: + - parent: 857 + pos: -19.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 299 + type: DisposalPipe + components: + - parent: 857 + pos: 12.5,1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 300 + type: DisposalPipe + components: + - parent: 857 + pos: 12.5,0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 301 + type: DisposalPipe + components: + - parent: 857 + pos: 12.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 302 + type: ConveyorBelt + components: + - parent: 857 + pos: -22.5,-13.5 + type: Transform +- uid: 303 + type: DisposalTrunk + components: + - parent: 857 + pos: 12.5,-2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 304 + type: DisposalUnit + components: + - parent: 857 + pos: 12.5,-2.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 305 + type: Window + components: + - parent: 857 + pos: 36.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 306 + type: Window + components: + - parent: 857 + pos: 34.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 307 + type: DisposalPipe + components: + - parent: 857 + pos: 5.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 308 + type: DisposalPipe + components: + - parent: 857 + pos: 6.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 309 + type: DisposalPipe + components: + - parent: 857 + pos: 7.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 310 + type: DisposalPipe + components: + - parent: 857 + pos: 8.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 311 + type: DisposalPipe + components: + - parent: 857 + pos: 9.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 312 + type: DisposalPipe + components: + - parent: 857 + pos: 10.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 313 + type: DisposalPipe + components: + - parent: 857 + pos: 11.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 314 + type: DisposalPipe + components: + - parent: 857 + pos: 12.5,2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 315 + type: DisposalPipe + components: + - parent: 857 + pos: 13.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 316 + type: DisposalPipe + components: + - parent: 857 + pos: 14.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 317 + type: DisposalPipe + components: + - parent: 857 + pos: 15.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 318 + type: DisposalPipe + components: + - parent: 857 + pos: 16.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 319 + type: DisposalPipe + components: + - parent: 857 + pos: 17.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 320 + type: DisposalPipe + components: + - parent: 857 + pos: 18.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 321 + type: DisposalPipe + components: + - parent: 857 + pos: 19.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 322 + type: DisposalPipe + components: + - parent: 857 + pos: 20.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 323 + type: DisposalPipe + components: + - parent: 857 + pos: 21.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 324 + type: DisposalPipe + components: + - parent: 857 + pos: 22.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 325 + type: DisposalPipe + components: + - parent: 857 + pos: 23.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 326 + type: DisposalPipe + components: + - parent: 857 + pos: 24.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 327 + type: DisposalPipe + components: + - parent: 857 + pos: 25.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 328 + type: DisposalPipe + components: + - parent: 857 + pos: 26.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 329 + type: DisposalPipe + components: + - parent: 857 + pos: 27.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 330 + type: DisposalPipe + components: + - parent: 857 + pos: 28.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 331 + type: DisposalPipe + components: + - parent: 857 + pos: 29.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 332 + type: DisposalPipe + components: + - parent: 857 + pos: 4.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 333 + type: DisposalPipe + components: + - parent: 857 + pos: 3.5,-9.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 334 + type: DisposalPipe + components: + - parent: 857 + pos: 2.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 335 + type: DisposalPipe + components: + - parent: 857 + pos: -20.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 336 + type: DisposalTrunk + components: + - parent: 857 + pos: 0.5,1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 337 + type: DisposalUnit + components: + - parent: 857 + pos: 0.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 338 + type: DisposalPipe + components: + - parent: 857 + pos: -27.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 339 + type: DisposalTrunk + components: + - parent: 857 + pos: -27.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 340 + type: DisposalPipe + components: + - parent: 857 + pos: -21.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 341 + type: DisposalPipe + components: + - parent: 857 + pos: -12.5,2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 342 + type: DisposalTrunk + components: + - parent: 857 + pos: -12.5,1.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 343 + type: DisposalPipe + components: + - parent: 857 + pos: -22.5,-10.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 344 + type: DisposalPipe + components: + - parent: 857 + pos: -23.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 345 + type: DisposalPipe + components: + - parent: 857 + pos: -23.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 346 + type: DisposalBend + components: + - parent: 857 + pos: -32.5,3.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 347 + type: DisposalPipe + components: + - parent: 857 + pos: -22.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 348 + type: DisposalPipe + components: + - parent: 857 + pos: -22.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 349 + type: DisposalTrunk + components: + - parent: 857 + pos: -22.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 350 + type: DisposalBend + components: + - parent: 857 + pos: -17.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 351 + type: DisposalPipe + components: + - parent: 857 + pos: -7.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 352 + type: DisposalPipe + components: + - parent: 857 + pos: -6.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 353 + type: DisposalPipe + components: + - parent: 857 + pos: -5.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 354 + type: DisposalPipe + components: + - parent: 857 + pos: -4.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 355 + type: DisposalPipe + components: + - parent: 857 + pos: -3.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 356 + type: DisposalPipe + components: + - parent: 857 + pos: -2.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 357 + type: DisposalPipe + components: + - parent: 857 + pos: -1.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 358 + type: DisposalPipe + components: + - parent: 857 + pos: -0.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 359 + type: DisposalPipe + components: + - parent: 857 + pos: 0.5,2.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 360 + type: DisposalPipe + components: + - parent: 857 + pos: 1.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 361 + type: DisposalPipe + components: + - parent: 857 + pos: -8.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 362 + type: DisposalPipe + components: + - parent: 857 + pos: -9.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 363 + type: DisposalPipe + components: + - parent: 857 + pos: -10.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 364 + type: DisposalPipe + components: + - parent: 857 + pos: -11.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 365 + type: DisposalUnit + components: + - parent: 857 + pos: -12.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 366 + type: DisposalPipe + components: + - parent: 857 + pos: -13.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 367 + type: DisposalPipe + components: + - parent: 857 + pos: -14.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 368 + type: DisposalPipe + components: + - parent: 857 + pos: -15.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 369 + type: DisposalPipe + components: + - parent: 857 + pos: -16.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 370 + type: DisposalPipe + components: + - parent: 857 + pos: -17.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 371 + type: DisposalPipe + components: + - parent: 857 + pos: -18.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 372 + type: DisposalPipe + components: + - parent: 857 + pos: -19.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 373 + type: DisposalPipe + components: + - parent: 857 + pos: -20.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 374 + type: DisposalPipe + components: + - parent: 857 + pos: -21.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 375 + type: DisposalUnit + components: + - parent: 857 + pos: -22.5,6.5 + rot: 3.141592653589793 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 376 + type: DisposalPipe + components: + - parent: 857 + pos: -23.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 377 + type: DisposalPipe + components: + - parent: 857 + pos: -24.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 378 + type: DisposalPipe + components: + - parent: 857 + pos: -25.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 379 + type: DisposalPipe + components: + - parent: 857 + pos: -26.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 380 + type: DisposalPipe + components: + - parent: 857 + pos: -27.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 381 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 382 + type: DisposalPipe + components: + - parent: 857 + pos: -29.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 383 + type: DisposalPipe + components: + - parent: 857 + pos: -30.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 384 + type: DisposalPipe + components: + - parent: 857 + pos: -31.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 385 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 386 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 387 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 388 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 389 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 390 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 391 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 392 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 393 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 394 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 395 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 396 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 397 + type: DisposalPipe + components: + - parent: 857 + pos: -32.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 398 + type: DisposalBend + components: + - parent: 857 + pos: -32.5,-10.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 399 + type: DisposalPipe + components: + - parent: 857 + pos: -31.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 400 + type: DisposalPipe + components: + - parent: 857 + pos: -30.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 401 + type: DisposalPipe + components: + - parent: 857 + pos: -29.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 402 + type: DisposalPipe + components: + - parent: 857 + pos: -28.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 403 + type: DisposalUnit + components: + - parent: 857 + pos: -27.5,-8.5 + rot: 1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 404 + type: DisposalPipe + components: + - parent: 857 + pos: -26.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 405 + type: DisposalPipe + components: + - parent: 857 + pos: -25.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 406 + type: DisposalPipe + components: + - parent: 857 + pos: -24.5,-10.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 407 + type: DisposalUnit + components: + - parent: 857 + pos: -10.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 408 + type: AirlockMaintCommon + components: + - parent: 857 + pos: -24.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 409 + type: Window + components: + - parent: 857 + pos: 32.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 410 + type: ReinforcedWindow + components: + - parent: 857 + pos: 30.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 411 + type: solid_wall + components: + - parent: 857 + pos: -23.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 412 + type: solid_wall + components: + - parent: 857 + pos: -22.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 413 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 414 + type: solid_wall + components: + - parent: 857 + pos: -20.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 415 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 416 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 417 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 418 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 419 + type: TrashSpawner + components: + - parent: 857 + pos: 9.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 420 + type: TrashSpawner + components: + - parent: 857 + pos: 12.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 421 + type: TrashSpawner + components: + - parent: 857 + pos: 13.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 422 + type: TrashSpawner + components: + - parent: 857 + pos: 1.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 423 + type: TrashSpawner + components: + - parent: 857 + pos: 4.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 424 + type: TrashSpawner + components: + - parent: 857 + pos: -22.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 425 + type: TrashSpawner + components: + - parent: 857 + pos: -25.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 426 + type: TrashSpawner + components: + - parent: 857 + pos: -17.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 427 + type: TrashSpawner + components: + - parent: 857 + pos: -8.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 428 + type: TrashSpawner + components: + - parent: 857 + pos: -1.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 429 + type: TrashSpawner + components: + - parent: 857 + pos: -7.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 430 + type: TrashSpawner + components: + - parent: 857 + pos: 19.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 431 + type: TrashSpawner + components: + - parent: 857 + pos: 25.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 432 + type: TrashSpawner + components: + - parent: 857 + pos: 6.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 433 + type: TrashSpawner + components: + - parent: 857 + pos: 12.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 434 + type: TrashSpawner + components: + - parent: 857 + pos: 12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 435 + type: TrashSpawner + components: + - parent: 857 + pos: 24.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 436 + type: TrashSpawner + components: + - parent: 857 + pos: 27.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 437 + type: TrashSpawner + components: + - parent: 857 + pos: 26.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 438 + type: TrashSpawner + components: + - parent: 857 + pos: 28.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 439 + type: TrashSpawner + components: + - parent: 857 + pos: 27.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 440 + type: TrashSpawner + components: + - parent: 857 + pos: 35.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 441 + type: TrashSpawner + components: + - parent: 857 + pos: 44.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 442 + type: TrashSpawner + components: + - parent: 857 + pos: 42.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 443 + type: TrashSpawner + components: + - parent: 857 + pos: 37.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 444 + type: TrashSpawner + components: + - parent: 857 + pos: 37.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 445 + type: TrashSpawner + components: + - parent: 857 + pos: 32.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 446 + type: TrashSpawner + components: + - parent: 857 + pos: 20.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 447 + type: TrashSpawner + components: + - parent: 857 + pos: 21.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 448 + type: TrashSpawner + components: + - parent: 857 + pos: 25.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 449 + type: TrashSpawner + components: + - parent: 857 + pos: 27.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 450 + type: TrashSpawner + components: + - parent: 857 + pos: 27.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 451 + type: TrashSpawner + components: + - parent: 857 + pos: 24.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 452 + type: TrashSpawner + components: + - parent: 857 + pos: 27.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 453 + type: TrashSpawner + components: + - parent: 857 + pos: 26.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 454 + type: solid_wall + components: + - parent: 857 + pos: 0.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 455 + type: TrashSpawner + components: + - parent: 857 + pos: 21.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 456 + type: TrashSpawner + components: + - parent: 857 + pos: 21.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 457 + type: TrashSpawner + components: + - parent: 857 + pos: 22.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 458 + type: TrashSpawner + components: + - parent: 857 + pos: 18.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 459 + type: TrashSpawner + components: + - parent: 857 + pos: 14.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 460 + type: TrashSpawner + components: + - parent: 857 + pos: 14.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 461 + type: TrashSpawner + components: + - parent: 857 + pos: 12.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 462 + type: TrashSpawner + components: + - parent: 857 + pos: 7.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 463 + type: TrashSpawner + components: + - parent: 857 + pos: -10.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 464 + type: TrashSpawner + components: + - parent: 857 + pos: -0.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 465 + type: TrashSpawner + components: + - parent: 857 + pos: -2.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 466 + type: TrashSpawner + components: + - parent: 857 + pos: -5.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 467 + type: Catwalk + components: + - parent: 857 + pos: -32.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 468 + type: TrashSpawner + components: + - parent: 857 + pos: -9.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 469 + type: LowWall + components: + - parent: 857 + pos: -35.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 470 + type: TrashSpawner + components: + - parent: 857 + pos: -11.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 471 + type: TrashSpawner + components: + - parent: 857 + pos: -11.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 472 + type: TrashSpawner + components: + - parent: 857 + pos: 0.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 473 + type: TrashSpawner + components: + - parent: 857 + pos: -0.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 474 + type: TrashSpawner + components: + - parent: 857 + pos: -0.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 475 + type: TrashSpawner + components: + - parent: 857 + pos: -2.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 476 + type: TrashSpawner + components: + - parent: 857 + pos: -6.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 477 + type: TrashSpawner + components: + - parent: 857 + pos: -16.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 478 + type: TrashSpawner + components: + - parent: 857 + pos: -11.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 479 + type: TrashSpawner + components: + - parent: 857 + pos: -8.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 480 + type: TrashSpawner + components: + - parent: 857 + pos: -9.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 481 + type: TrashSpawner + components: + - parent: 857 + pos: -8.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 482 + type: TrashSpawner + components: + - parent: 857 + pos: -12.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 483 + type: TrashSpawner + components: + - parent: 857 + pos: -18.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 484 + type: SuspicionPistolMagazineSpawner + components: + - parent: 857 + pos: -35.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 485 + type: TrashSpawner + components: + - parent: 857 + pos: -21.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 486 + type: TrashSpawner + components: + - parent: 857 + pos: -28.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 487 + type: TrashSpawner + components: + - parent: 857 + pos: -32.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 488 + type: TrashSpawner + components: + - parent: 857 + pos: -33.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 489 + type: TrashSpawner + components: + - parent: 857 + pos: -33.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 490 + type: TrashSpawner + components: + - parent: 857 + pos: -32.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 491 + type: TrashSpawner + components: + - parent: 857 + pos: -19.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 492 + type: TrashSpawner + components: + - parent: 857 + pos: -30.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 493 + type: TrashSpawner + components: + - parent: 857 + pos: -30.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 494 + type: TrashSpawner + components: + - parent: 857 + pos: -22.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 495 + type: TrashSpawner + components: + - parent: 857 + pos: -32.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 496 + type: TrashSpawner + components: + - parent: 857 + pos: -35.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 497 + type: TrashSpawner + components: + - parent: 857 + pos: -36.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 498 + type: TrashSpawner + components: + - parent: 857 + pos: 0.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 499 + type: TrashSpawner + components: + - parent: 857 + pos: -3.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 500 + type: TrashSpawner + components: + - parent: 857 + pos: -2.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 501 + type: TrashSpawner + components: + - parent: 857 + pos: -4.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 502 + type: TrashSpawner + components: + - parent: 857 + pos: -7.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 503 + type: TrashSpawner + components: + - parent: 857 + pos: -8.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 504 + type: TrashSpawner + components: + - parent: 857 + pos: -15.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 505 + type: TrashSpawner + components: + - parent: 857 + pos: -18.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 506 + type: TrashSpawner + components: + - parent: 857 + pos: -18.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 507 + type: TrashSpawner + components: + - parent: 857 + pos: -15.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 508 + type: TrashSpawner + components: + - parent: 857 + pos: -17.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 509 + type: TrashSpawner + components: + - parent: 857 + pos: -21.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 510 + type: TrashSpawner + components: + - parent: 857 + pos: -23.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 511 + type: TrashSpawner + components: + - parent: 857 + pos: -25.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 512 + type: TrashSpawner + components: + - parent: 857 + pos: -30.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 513 + type: TrashSpawner + components: + - parent: 857 + pos: -32.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 514 + type: TrashSpawner + components: + - parent: 857 + pos: -31.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 515 + type: TrashSpawner + components: + - parent: 857 + pos: -21.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 516 + type: Poweredlight + components: + - parent: 857 + pos: -16,-1.5 rot: 3.141592653589793 rad type: Transform - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container + light_bulb: + type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer - -- uid: 9 - type: DisposalPipe +- uid: 517 + type: Poweredlight components: - - parent: 15 - pos: -15.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 10 - type: DisposalPipe - components: - - parent: 15 - pos: -13.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 11 - type: DisposalPipe - components: - - parent: 15 - pos: -14.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 12 - type: DisposalPipe - components: - - parent: 15 - pos: -12.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 13 - type: DisposalPipe - components: - - parent: 15 - pos: -11.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 14 - type: DisposalPipe - components: - - parent: 15 - pos: -10.5,-16.5 + - parent: 857 + pos: -20.5,-3 rot: 1.5707963267948966 rad type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 518 + type: Poweredlight + components: + - parent: 857 + pos: -20.5,2 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 519 + type: Catwalk + components: + - parent: 857 + pos: -15.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 520 + type: Catwalk + components: + - parent: 857 + pos: -16.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 521 + type: Catwalk + components: + - parent: 857 + pos: -15.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 522 + type: Catwalk + components: + - parent: 857 + pos: -15.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 523 + type: Catwalk + components: + - parent: 857 + pos: -16.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 524 + type: Airlock + components: + - name: Hydroponics + type: MetaData + - parent: 857 + pos: -16.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 525 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -16.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 526 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -14.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 527 + type: Table + components: + - parent: 857 + pos: -15.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 528 + type: solid_wall + components: + - parent: 857 + pos: -14.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 529 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 530 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: 5.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 531 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: -4.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 532 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -13.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 533 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: 6.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 534 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: 0.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 535 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: 6.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 536 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -7.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 537 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -7.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 538 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -20.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 539 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -31.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 540 + type: SuspicionPistolSpawner + components: + - parent: 857 + pos: -18.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 541 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -32.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 542 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -14.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 543 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: -2.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 544 + type: SuspicionRifleSpawner + components: + - parent: 857 + pos: 23.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 545 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 22.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 546 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 17.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 547 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 18.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 548 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 10.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 549 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 15.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 550 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 10.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 551 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: 6.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 552 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: -0.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 553 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: -29.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 554 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: -28.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 555 + type: SuspicionMeleeSpawner + components: + - parent: 857 + pos: -27.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 556 + type: AirlockSecurityGlassLocked + components: + - name: Cell 2 + type: MetaData + - parent: 857 + pos: 0.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 557 + type: AirlockSecurityGlassLocked + components: + - name: Cell 1 + type: MetaData + - parent: 857 + pos: -2.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 558 + type: Catwalk + components: + - parent: 857 + pos: -1.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 559 + type: reinforced_wall + components: + - parent: 857 + pos: 13.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 560 + type: Poweredlight + components: + - parent: 857 + pos: 20,-17.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 561 + type: Poweredlight + components: + - parent: 857 + pos: 15.5,-18 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 562 + type: Poweredlight + components: + - parent: 857 + pos: 17,-20.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 563 + type: AirlockCommandGlassLocked + components: + - name: Head of Security's Office + type: MetaData + - parent: 857 + pos: -8.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Security + - Command + type: AccessReader +- uid: 564 + type: AirlockExternalLocked + components: + - parent: 857 + pos: 14.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 565 + type: AirlockExternalLocked + components: + - name: Supply Shuttle Dock + type: MetaData + - parent: 857 + pos: 22.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Cargo + type: AccessReader +- uid: 566 + type: AirlockExternalLocked + components: + - name: Supply Shuttle Dock + type: MetaData + - parent: 857 + pos: 22.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Cargo + type: AccessReader +- uid: 567 + type: AirlockExternalLocked + components: + - name: Supply Shuttle Dock + type: MetaData + - parent: 857 + pos: 20.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Cargo + type: AccessReader +- uid: 568 + type: AirlockExternalLocked + components: + - name: Supply Shuttle Dock + type: MetaData + - parent: 857 + pos: 20.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Cargo + type: AccessReader +- uid: 569 + type: AirlockCargoGlassLocked + components: + - name: Cargo Bay + type: MetaData + - parent: 857 + pos: 17.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 570 + type: AirlockCargoGlassLocked + components: + - name: Cargo Bay + type: MetaData + - parent: 857 + pos: 17.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 571 + type: AirlockCargoGlassLocked + components: + - name: Cargo Office + type: MetaData + - parent: 857 + pos: 13.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 572 + type: AirlockMaintCommandLocked + components: + - parent: 857 + pos: 8.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - External + type: AccessReader +- uid: 573 + type: AirlockCommandGlassLocked + components: + - name: EVA + type: MetaData + - parent: 857 + pos: 9.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - External + type: AccessReader +- uid: 574 + type: AirlockCommandGlassLocked + components: + - name: EVA + type: MetaData + - parent: 857 + pos: 7.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - External + type: AccessReader +- uid: 575 + type: AirlockCommandGlassLocked + components: + - name: Bridge + type: MetaData + - parent: 857 + pos: 4.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 576 + type: AirlockCommandGlassLocked + components: + - name: Bridge + type: MetaData + - parent: 857 + pos: 2.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 577 + type: AirlockVaultLocked + components: + - name: Armory + type: MetaData + - parent: 857 + pos: -10.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 578 + type: AirlockVaultLocked + components: + - name: Armory + type: MetaData + - parent: 857 + pos: -12.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 579 + type: ChairOfficeDark + components: + - parent: 857 + pos: -8.5,8.5 + type: Transform + - anchored: False + type: Collidable +- uid: 580 + type: ChairOfficeDark + components: + - parent: 857 + pos: -9.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 581 + type: Table + components: + - parent: 857 + pos: -7.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 582 + type: Table + components: + - parent: 857 + pos: -7.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 583 + type: Table + components: + - parent: 857 + pos: -9.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 584 + type: Table + components: + - parent: 857 + pos: -8.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 585 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 27.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 586 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -31.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 587 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -16.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Service + type: AccessReader +- uid: 588 + type: Airlock + components: + - name: Showers + type: MetaData + - parent: 857 + pos: -21.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 589 + type: Airlock + components: + - name: Bunk Dorms + type: MetaData + - parent: 857 + pos: -26.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 590 + type: AirlockServiceLocked + components: + - name: Theatre + type: MetaData + - parent: 857 + pos: -20.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Theatre + type: AccessReader +- uid: 591 + type: AirlockGlass + components: + - name: Locker Room + type: MetaData + - parent: 857 + pos: -26.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 592 + type: AirlockServiceGlassLocked + components: + - name: Tool Storage + type: MetaData + - parent: 857 + pos: -25.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Maintenance + type: AccessReader +- uid: 593 + type: AirlockServiceGlassLocked + components: + - name: Tool Storage + type: MetaData + - parent: 857 + pos: -25.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Maintenance + type: AccessReader +- uid: 594 + type: AirlockGlass + components: + - name: Locker Room + type: MetaData + - parent: 857 + pos: -26.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 595 + type: AirlockScienceLocked + components: + - name: Testing Area + type: MetaData + - parent: 857 + pos: -12.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 596 + type: AirlockScienceLocked + components: + - name: Testing Area + type: MetaData + - parent: 857 + pos: -12.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 597 + type: AirlockCommandGlassLocked + components: + - name: Research Director's Office + type: MetaData + - parent: 857 + pos: -3.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Research + - Command + type: AccessReader +- uid: 598 + type: AirlockCommandGlassLocked + components: + - name: Server Room + type: MetaData + - parent: 857 + pos: -8.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Research + - Command + type: AccessReader +- uid: 599 + type: AirlockCommandGlassLocked + components: + - name: Chief Medical Officer's Office + type: MetaData + - parent: 857 + pos: 20.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Medical + - Command + type: AccessReader +- uid: 600 + type: AirlockMedicalGlassLocked + components: + - name: Chemistry + type: MetaData + - parent: 857 + pos: 17.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 601 + type: AirlockMedicalGlassLocked + components: + - name: Chemistry + type: MetaData + - parent: 857 + pos: 7.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 602 + type: AirlockEngineeringGlassLocked + components: + - name: Engineering + type: MetaData + - parent: 857 + pos: 30.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 603 + type: AirlockEngineeringGlassLocked + components: + - name: Engineering + type: MetaData + - parent: 857 + pos: 30.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 604 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -20.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Janitor + type: AccessReader +- uid: 605 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -32.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 606 + type: AirlockMaintIntLocked + components: + - parent: 857 + pos: -13.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 607 + type: AirlockMaintIntLocked + components: + - parent: 857 + pos: -12.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 608 + type: AirlockMaintRnDLocked + components: + - parent: 857 + pos: -4.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 609 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 5.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 610 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -16.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 611 + type: AirlockSecurityGlassLocked + components: + - name: Brig + type: MetaData + - parent: 857 + pos: -6.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 612 + type: AirlockServiceGlassLocked + components: + - name: Bar + type: MetaData + - parent: 857 + pos: -7.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 613 + type: AirlockMaintEngiLocked + components: + - parent: 857 + pos: 28.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 614 + type: AirlockServiceGlassLocked + components: + - name: Kitchen + type: MetaData + - parent: 857 + pos: -10.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 615 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -8.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Service + type: AccessReader +- uid: 616 + type: AirlockVaultLocked + components: + - name: Vault + type: MetaData + - parent: 857 + pos: 0.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 617 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 1.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 618 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -23.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 619 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -34.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 620 + type: Airlock + components: + - name: Custodial Closet + type: MetaData + - parent: 857 + pos: -22.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Janitor + type: AccessReader +- uid: 621 + type: AirlockExternalLocked + components: + - parent: 857 + pos: 15.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 622 + type: AirlockMaintCommandLocked + components: + - parent: 857 + pos: 11.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - HeadOfPersonnel + type: AccessReader +- uid: 623 + type: Catwalk + components: + - parent: 857 + pos: 26.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 624 + type: AirlockCommandGlassLocked + components: + - name: Chief Engineer's Office + type: MetaData + - parent: 857 + pos: 38.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Engineering + - Command + type: AccessReader +- uid: 625 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: -33.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 626 + type: AirlockScienceGlassLocked + components: + - name: Research and Development + type: MetaData + - parent: 857 + pos: -3.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 627 + type: AirlockScienceLocked + components: + - name: Science + type: MetaData + - parent: 857 + pos: 0.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 628 + type: AirlockScienceLocked + components: + - name: Science + type: MetaData + - parent: 857 + pos: 0.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 629 + type: AirlockMaintRnDLocked + components: + - parent: 857 + pos: -11.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 630 + type: AirlockMaintMedLocked + components: + - parent: 857 + pos: 20.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 631 + type: AirlockMaintMedLocked + components: + - parent: 857 + pos: 14.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 632 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 0.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 633 + type: AirlockSecurityGlassLocked + components: + - name: Reception Desk + type: MetaData + - parent: 857 + pos: -9.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 634 + type: AirlockSecurityGlassLocked + components: + - name: Security Equipment + type: MetaData + - parent: 857 + pos: -10.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 635 + type: AirlockMedicalGlassLocked + components: + - name: Cloning + type: MetaData + - parent: 857 + pos: 8.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 636 + type: AirlockMedicalGlassLocked + components: + - name: Surgery + type: MetaData + - parent: 857 + pos: 19.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 637 + type: AirlockMedicalGlassLocked + components: + - name: Medical Storage + type: MetaData + - parent: 857 + pos: 20.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 638 + type: AirlockMedicalGlassLocked + components: + - name: Medical Bay + type: MetaData + - parent: 857 + pos: 11.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 639 + type: AirlockMedicalGlassLocked + components: + - name: Medical Bay + type: MetaData + - parent: 857 + pos: 10.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 640 + type: AirlockMaintCommandLocked + components: + - parent: 857 + pos: -1.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 641 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 21.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 642 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 6.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 643 + type: AirlockCommandLocked + components: + - name: Captain's Office + type: MetaData + - parent: 857 + pos: 5.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - access: + - - Captain + type: AccessReader +- uid: 644 + type: AirlockCommandGlassLocked + components: + - name: Heads of Staff Meeting Room + type: MetaData + - parent: 857 + pos: 1.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 645 + type: AirlockCommandGlassLocked + components: + - name: Heads of Staff Meeting Room + type: MetaData + - parent: 857 + pos: 1.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 646 + type: AirlockMaintRnDLocked + components: + - parent: 857 + pos: -16.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 647 + type: AirlockMaintCargoLocked + components: + - parent: 857 + pos: 25.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 648 + type: AirlockMaintEngiLocked + components: + - parent: 857 + pos: 43.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 649 + type: AirlockMaintEngiLocked + components: + - parent: 857 + pos: 29.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 650 + type: AirlockEngineeringLocked + components: + - name: Secure Storage + type: MetaData + - parent: 857 + pos: 40.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 651 + type: AirlockEngineeringLocked + components: + - name: Secure Storage + type: MetaData + - parent: 857 + pos: 41.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 652 + type: AirlockEngineeringGlassLocked + components: + - name: Atmospherics + type: MetaData + - parent: 857 + pos: 33.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 653 + type: AirlockEngineeringGlassLocked + components: + - name: Engineering Equipment + type: MetaData + - parent: 857 + pos: 33.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 654 + type: AirlockEngineeringLocked + components: + - name: Gravity Generator + type: MetaData + - parent: 857 + pos: 49.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 655 + type: AirlockSecurityGlassLocked + components: + - name: Brig + type: MetaData + - parent: 857 + pos: -6.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 656 + type: AirlockSecurityGlassLocked + components: + - name: Brig + type: MetaData + - parent: 857 + pos: -5.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 657 + type: AirlockSecurityGlassLocked + components: + - name: Brig + type: MetaData + - parent: 857 + pos: -5.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 658 + type: AirlockExternalLocked + components: + - name: Arrivals Shuttle Dock + type: MetaData + - parent: 857 + pos: -39.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 659 + type: AirlockExternalLocked + components: + - name: Arrivals Shuttle Dock + type: MetaData + - parent: 857 + pos: -37.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 660 + type: AirlockExternalLocked + components: + - name: Escape Shuttle Dock + type: MetaData + - parent: 857 + pos: -41.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 661 + type: LowWall + components: + - parent: 857 + pos: -36.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 662 + type: LowWall + components: + - parent: 857 + pos: -37.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 663 + type: AirlockExternalLocked + components: + - name: Escape Shuttle Dock + type: MetaData + - parent: 857 + pos: -39.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 664 + type: AirlockExternalLocked + components: + - name: Escape Shuttle Dock + type: MetaData + - parent: 857 + pos: -39.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 665 + type: AirlockExternalLocked + components: + - name: Escape Shuttle Dock + type: MetaData + - parent: 857 + pos: -41.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 666 + type: WardrobeWhite + components: + - parent: 857 + pos: 17.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 667 + type: Table + components: + - parent: 857 + pos: 19.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 668 + type: solid_wall + components: + - parent: 857 + pos: -40.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 669 + type: Poweredlight + components: + - parent: 857 + pos: -38.5,2 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 670 + type: LowWall + components: + - parent: 857 + pos: -40.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 671 + type: Table + components: + - parent: 857 + pos: 19.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 672 + type: Window + components: + - parent: 857 + pos: 18.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 673 + type: Window + components: + - parent: 857 + pos: 17.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 674 + type: LowWall + components: + - parent: 857 + pos: 18.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 675 + type: LowWall + components: + - parent: 857 + pos: 17.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 676 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 677 + type: LowWall + components: + - parent: 857 + pos: -41.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 678 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 679 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 680 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 681 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 682 + type: LowWall + components: + - parent: 857 + pos: -40.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 683 + type: solid_wall + components: + - parent: 857 + pos: 17.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 684 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 685 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 686 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 687 + type: LowWall + components: + - parent: 857 + pos: -39.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 688 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 689 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 690 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 691 + type: LowWall + components: + - parent: 857 + pos: -39.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 692 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 693 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 694 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 695 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 696 + type: solid_wall + components: + - parent: 857 + pos: 14.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 697 + type: LowWall + components: + - parent: 857 + pos: -41.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 698 + type: LowWall + components: + - parent: 857 + pos: -40.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 699 + type: solid_wall + components: + - parent: 857 + pos: 15.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 700 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 701 + type: LowWall + components: + - parent: 857 + pos: -40.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 702 + type: solid_wall + components: + - parent: 857 + pos: 17.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 703 + type: solid_wall + components: + - parent: 857 + pos: 18.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 704 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 705 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 706 + type: LowWall + components: + - parent: 857 + pos: -41.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 707 + type: solid_wall + components: + - parent: 857 + pos: 21.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 708 + type: solid_wall + components: + - parent: 857 + pos: 22.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 709 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 710 + type: LowWall + components: + - parent: 857 + pos: -40.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 711 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 712 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 713 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 714 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 715 + type: LowWall + components: + - parent: 857 + pos: -39.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 716 + type: solid_wall + components: + - parent: 857 + pos: 45.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 717 + type: SpawnPointStationEngineer + components: + - parent: 857 + pos: 30.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 718 + type: LowWall + components: + - parent: 857 + pos: -39.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 719 + type: SpawnPointChiefEngineer + components: + - parent: 857 + pos: 40.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 720 + type: SpawnPointHeadOfPersonnel + components: + - parent: 857 + pos: 7.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 721 + type: SpawnPointCaptain + components: + - parent: 857 + pos: 9.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 722 + type: LowWall + components: + - parent: 857 + pos: -41.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 723 + type: SpawnPointHeadOfSecurity + components: + - parent: 857 + pos: -6.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 724 + type: SpawnPointJanitor + components: + - parent: 857 + pos: -20.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 725 + type: SpawnPointClown + components: + - parent: 857 + pos: -18.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 726 + type: SpawnPointBartender + components: + - parent: 857 + pos: -5.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 727 + type: LowWall + components: + - parent: 857 + pos: -40.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 728 + type: SpawnPointScientist + components: + - parent: 857 + pos: -15.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 729 + type: SpawnPointScientist + components: + - parent: 857 + pos: -4.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 730 + type: SpawnPointScientist + components: + - parent: 857 + pos: -0.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 731 + type: SpawnPointScientist + components: + - parent: 857 + pos: -8.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 732 + type: SpawnPointScientist + components: + - parent: 857 + pos: -9.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 733 + type: SpawnPointResearchDirector + components: + - parent: 857 + pos: -5.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 734 + type: LowWall + components: + - parent: 857 + pos: -40.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 735 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 15.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 736 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 11.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 737 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 16.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 738 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 22.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 739 + type: LowWall + components: + - parent: 857 + pos: -40.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 740 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 14.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 741 + type: SpawnPointMedicalDoctor + components: + - parent: 857 + pos: 6.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 742 + type: SpawnPointChiefMedicalOfficer + components: + - parent: 857 + pos: 24.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 743 + type: SpawnPointCargoTechnician + components: + - parent: 857 + pos: 21.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 744 + type: SpawnPointCargoTechnician + components: + - parent: 857 + pos: 14.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 745 + type: LowWall + components: + - parent: 857 + pos: -39.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 746 + type: PottedPlantRandomPlastic + components: + - parent: 857 + pos: -12.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 747 + type: ReinforcedWindow + components: + - parent: 857 + pos: -37.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 748 + type: PottedPlantRandom + components: + - parent: 857 + pos: 21.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 749 + type: PottedPlantRandomPlastic + components: + - parent: 857 + pos: 29.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 750 + type: PottedPlantRandom + components: + - parent: 857 + pos: 12.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 751 + type: LowWall + components: + - parent: 857 + pos: -38.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 752 + type: LowWall + components: + - parent: 857 + pos: -38.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 753 + type: LowWall + components: + - parent: 857 + pos: -38.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 754 + type: LowWall + components: + - parent: 857 + pos: -37.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 755 + type: LowWall + components: + - parent: 857 + pos: -38.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 756 + type: LowWall + components: + - parent: 857 + pos: -39.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 757 + type: LowWall + components: + - parent: 857 + pos: -37.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 758 + type: PottedPlantRandom + components: + - parent: 857 + pos: 5.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 759 + type: LowWall + components: + - parent: 857 + pos: -39.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 760 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 761 + type: VendingMachineBooze + components: + - parent: 857 + pos: -4.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 762 + type: LockerBoozeFilled + components: + - parent: 857 + pos: -3.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 763 + type: PottedPlantRandom + components: + - parent: 857 + pos: 1.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 764 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 5.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 765 + type: PottedPlantRandom + components: + - parent: 857 + pos: -24.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 766 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -23.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 767 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 24.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 768 + type: PottedPlantRandom + components: + - parent: 857 + pos: 10.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 769 + type: PottedPlantRandom + components: + - parent: 857 + pos: 7.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 770 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -2.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 771 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 9.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 772 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -0.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 773 + type: PottedPlantRD + components: + - parent: 857 + pos: -2.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 774 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -21.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 775 + type: PottedPlantRandom + components: + - parent: 857 + pos: -25.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 776 + type: PottedPlantRandom + components: + - parent: 857 + pos: -39.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 777 + type: LockerFireFilled + components: + - parent: 857 + pos: -37.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 778 + type: LockerFireFilled + components: + - parent: 857 + pos: -11.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 779 + type: LockerBombFilled + components: + - parent: 857 + pos: -17.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 780 + type: LockerBombFilled + components: + - parent: 857 + pos: -12.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 781 + type: LockerFireFilled + components: + - parent: 857 + pos: 13.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 782 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 12.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 783 + type: LockerFireFilled + components: + - parent: 857 + pos: 28.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 784 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 43.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 785 + type: LockerFireFilled + components: + - parent: 857 + pos: 44.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 786 + type: LockerFireFilled + components: + - parent: 857 + pos: 23.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 787 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 8.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 788 + type: LockerFireFilled + components: + - parent: 857 + pos: 9.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 789 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -15.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 790 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -7.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 791 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 26.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 792 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: 23.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 793 + type: LockerFireFilled + components: + - parent: 857 + pos: -14.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 794 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -11.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 795 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -37.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 796 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -39.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 797 + type: LockerEmergencyFilledRandom + components: + - parent: 857 + pos: -34.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 798 + type: LockerCaptainFilled + components: + - parent: 857 + pos: 6.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 799 + type: WardrobeCargoFilled + components: + - parent: 857 + pos: 23.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 800 + type: PottedPlantRandom + components: + - parent: 857 + pos: 0.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + potted_plant_hide: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 801 + type: WardrobePrisonFilled + components: + - parent: 857 + pos: 0.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 802 + type: LockerL3JanitorFilled + components: + - parent: 857 + pos: -19.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 803 + type: LockerJanitorFilled + components: + - parent: 857 + pos: -19.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 804 + type: LockerChefFilled + components: + - parent: 857 + pos: -14.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 805 + type: WardrobeWhiteFilled + components: + - parent: 857 + pos: 7.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 806 + type: LockerMedicineFilled + components: + - parent: 857 + pos: 18.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 807 + type: LockerL3VirologyFilled + components: + - parent: 857 + pos: 24.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 808 + type: LockerSecurityFilled + components: + - parent: 857 + pos: -12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 809 + type: LockerSecurityFilled + components: + - parent: 857 + pos: -13.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 810 + type: LockerSecurityFilled + components: + - parent: 857 + pos: -14.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 811 + type: WardrobeMedicalDoctorFilled + components: + - parent: 857 + pos: 23.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 812 + type: LockerL3SecurityFilled + components: + - parent: 857 + pos: -11.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 813 + type: LockerChiefMedicalOfficerFilled + components: + - parent: 857 + pos: 21.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 814 + type: WardrobeBlackFilled + components: + - parent: 857 + pos: -28.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 815 + type: LockerHeadOfPersonnelFilled + components: + - parent: 857 + pos: 10.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 816 + type: LowWall + components: + - parent: 857 + pos: -38.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 817 + type: WardrobeEngineeringFilled + components: + - parent: 857 + pos: 32.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 818 + type: WardrobeAtmosphericsFilled + components: + - parent: 857 + pos: 36.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 819 + type: LockerAtmosphericsFilled + components: + - parent: 857 + pos: 36.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 820 + type: LockerAtmosphericsFilled + components: + - parent: 857 + pos: 36.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 821 + type: LockerChiefEngineerFilled + components: + - parent: 857 + pos: 37.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 822 + type: LockerEngineerFilled + components: + - parent: 857 + pos: 35.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 823 + type: LockerEngineerFilled + components: + - parent: 857 + pos: 35.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 824 + type: LockerResearchDirectorFilled + components: + - parent: 857 + pos: -2.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 825 + type: WardrobeScienceFilled + components: + - parent: 857 + pos: -11.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 826 + type: LockerL3JanitorFilled + components: + - parent: 857 + pos: -13.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 827 + type: LockerGeneric + components: + - parent: 857 + pos: -11.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 828 + type: WardrobeGreyFilled + components: + - parent: 857 + pos: -27.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 829 + type: WardrobePajamaFilled + components: + - parent: 857 + pos: -27.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 830 + type: Catwalk + components: + - parent: 857 + pos: 47.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 831 + type: Catwalk + components: + - parent: 857 + pos: 47.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 832 + type: Catwalk + components: + - parent: 857 + pos: 47.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 833 + type: Catwalk + components: + - parent: 857 + pos: 48.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 834 + type: Catwalk + components: + - parent: 857 + pos: 49.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 835 + type: Catwalk + components: + - parent: 857 + pos: 50.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 836 + type: Catwalk + components: + - parent: 857 + pos: 51.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 837 + type: Catwalk + components: + - parent: 857 + pos: 51.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 838 + type: Catwalk + components: + - parent: 857 + pos: 51.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 839 + type: Catwalk + components: + - parent: 857 + pos: 51.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 840 + type: Catwalk + components: + - parent: 857 + pos: 51.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 841 + type: Catwalk + components: + - parent: 857 + pos: 50.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 842 + type: DisposalTrunk + components: + - parent: 857 + pos: -29.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 843 + type: DisposalBend + components: + - parent: 857 + pos: -29.5,10.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 844 + type: DisposalBend + components: + - parent: 857 + pos: -28.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 845 + type: DisposalBend + components: + - parent: 857 + pos: -8.5,-14.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalBend: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 846 + type: DisposalPipe + components: + - parent: 857 + pos: -7.5,-14.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable - containers: DisposalTransit: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer - -- uid: 15 + +- uid: 847 + type: DisposalPipe + components: + - parent: 857 + pos: -6.5,-14.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 848 + type: DisposalTrunk + components: + - parent: 857 + pos: -5.5,-14.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 849 + type: DisposalUnit + components: + - parent: 857 + pos: -5.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 850 + type: DisposalPipe + components: + - parent: 857 + pos: -9.5,-15.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 851 + type: DisposalPipe + components: + - parent: 857 + pos: -15.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 852 + type: DisposalPipe + components: + - parent: 857 + pos: -13.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 853 + type: DisposalPipe + components: + - parent: 857 + pos: -14.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 854 + type: DisposalPipe + components: + - parent: 857 + pos: -12.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 855 + type: DisposalPipe + components: + - parent: 857 + pos: -11.5,-15.5 + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 856 + type: DisposalPipe + components: + - parent: 857 + pos: -10.5,-16.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalTransit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 857 components: - name: Saltern Station type: MetaData @@ -331,6 +8879,54 @@ entities: - 0 - 0 temperature: 293.15 + - volume: 2500 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + molesArchived: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + temperature: 293.14993 + - volume: 2500 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + molesArchived: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + temperature: 293.1499 + - volume: 2500 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + molesArchived: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + temperature: 293.15 tiles: ? X: -16 Y: -16 @@ -4699,7 +13295,7 @@ entities: : 0 ? X: 11 Y: 22 - : 0 + : 1 ? X: 12 Y: 16 : 0 @@ -4741,7 +13337,7 @@ entities: : 0 ? X: 13 Y: 22 - : 0 + : 1 ? X: 14 Y: 16 : 0 @@ -4762,7 +13358,7 @@ entities: : 0 ? X: 14 Y: 22 - : 0 + : 2 ? X: 15 Y: 16 : 0 @@ -11168,17843 +19764,854 @@ entities: ? X: -26 Y: -14 : 0 + ? X: 11 + Y: 23 + : 3 + ? X: 11 + Y: 24 + : 3 + ? X: 11 + Y: 25 + : 3 + ? X: 12 + Y: 23 + : 3 + ? X: 12 + Y: 24 + : 3 + ? X: 12 + Y: 25 + : 3 + ? X: 13 + Y: 23 + : 3 + ? X: 13 + Y: 24 + : 3 + ? X: 13 + Y: 25 + : 3 + ? X: 14 + Y: 23 + : 3 + ? X: 14 + Y: 24 + : 3 + ? X: 14 + Y: 25 + : 3 type: GridAtmosphere -- uid: 16 - type: Wire - components: - - parent: 15 - pos: 28.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 17 - type: Wire - components: - - parent: 15 - pos: 27.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 18 - type: Wire - components: - - parent: 15 - pos: 26.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 19 - type: Wire - components: - - parent: 15 - pos: 25.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 20 - type: Wire - components: - - parent: 15 - pos: 24.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 21 - type: Wire - components: - - parent: 15 - pos: 23.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 22 - type: Wire - components: - - parent: 15 - pos: 22.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 23 - type: Wire - components: - - parent: 15 - pos: 21.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 24 - type: Wire - components: - - parent: 15 - pos: 20.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 25 - type: Wire - components: - - parent: 15 - pos: 19.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 26 - type: Wire - components: - - parent: 15 - pos: 18.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 27 - type: Wire - components: - - parent: 15 - pos: 17.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 28 - type: Wire - components: - - parent: 15 - pos: 16.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 29 - type: Wire - components: - - parent: 15 - pos: 15.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 30 - type: Wire - components: - - parent: 15 - pos: 14.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 31 - type: Wire - components: - - parent: 15 - pos: 13.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 32 - type: Wire - components: - - parent: 15 - pos: 12.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 33 - type: Wire - components: - - parent: 15 - pos: 11.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 34 - type: Wire - components: - - parent: 15 - pos: 10.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 35 - type: Wire - components: - - parent: 15 - pos: 9.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 36 - type: Wire - components: - - parent: 15 - pos: 8.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 37 - type: Wire - components: - - parent: 15 - pos: 7.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 38 - type: Wire - components: - - parent: 15 - pos: 6.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 39 - type: Wire - components: - - parent: 15 - pos: 5.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 40 - type: Wire - components: - - parent: 15 - pos: 4.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 41 - type: Wire - components: - - parent: 15 - pos: 3.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 42 - type: Wire - components: - - parent: 15 - pos: 2.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 43 - type: Wire - components: - - parent: 15 - pos: 1.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 44 - type: Wire - components: - - parent: 15 - pos: 0.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 45 - type: Wire - components: - - parent: 15 - pos: -0.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 46 - type: Wire - components: - - parent: 15 - pos: -1.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 47 - type: Wire - components: - - parent: 15 - pos: -2.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 48 - type: Wire - components: - - parent: 15 - pos: -3.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 49 - type: Wire - components: - - parent: 15 - pos: -4.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 50 - type: Wire - components: - - parent: 15 - pos: -5.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 51 - type: Wire - components: - - parent: 15 - pos: -6.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 52 - type: Wire - components: - - parent: 15 - pos: -7.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 53 - type: Wire - components: - - parent: 15 - pos: -8.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 54 - type: Wire - components: - - parent: 15 - pos: -9.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 55 - type: Wire - components: - - parent: 15 - pos: -10.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 56 - type: Wire - components: - - parent: 15 - pos: -11.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 57 - type: Wire - components: - - parent: 15 - pos: -12.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 58 - type: Wire - components: - - parent: 15 - pos: -13.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 59 - type: Wire - components: - - parent: 15 - pos: -14.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 60 - type: Wire - components: - - parent: 15 - pos: -15.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 61 - type: Wire - components: - - parent: 15 - pos: -16.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 62 - type: Wire - components: - - parent: 15 - pos: -17.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 63 - type: Wire - components: - - parent: 15 - pos: -18.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 64 - type: Wire - components: - - parent: 15 - pos: -19.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 65 - type: Wire - components: - - parent: 15 - pos: -20.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 66 - type: Wire - components: - - parent: 15 - pos: -21.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 67 - type: Wire - components: - - parent: 15 - pos: -22.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 68 - type: Wire - components: - - parent: 15 - pos: -23.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 69 - type: Wire - components: - - parent: 15 - pos: -24.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 70 - type: Wire - components: - - parent: 15 - pos: -25.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 71 - type: Wire - components: - - parent: 15 - pos: -26.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 72 - type: Wire - components: - - parent: 15 - pos: -27.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 73 - type: Wire - components: - - parent: 15 - pos: -28.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 74 - type: Wire - components: - - parent: 15 - pos: -29.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 75 - type: Wire - components: - - parent: 15 - pos: -30.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 76 - type: Wire - components: - - parent: 15 - pos: -31.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 77 - type: Wire - components: - - parent: 15 - pos: -32.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 78 - type: Wire - components: - - parent: 15 - pos: -33.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 79 - type: Wire - components: - - parent: 15 - pos: -34.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 80 - type: Wire - components: - - parent: 15 - pos: -35.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 81 - type: Wire - components: - - parent: 15 - pos: -36.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 82 - type: Wire - components: - - parent: 15 - pos: 3.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 83 - type: Wire - components: - - parent: 15 - pos: 3.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 84 - type: Wire - components: - - parent: 15 - pos: 3.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 85 - type: Wire - components: - - parent: 15 - pos: 3.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 86 - type: Wire - components: - - parent: 15 - pos: 3.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 87 - type: Wire - components: - - parent: 15 - pos: 3.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 88 - type: Wire - components: - - parent: 15 - pos: 3.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 89 - type: Wire - components: - - parent: 15 - pos: 3.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 90 - type: Wire - components: - - parent: 15 - pos: 3.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 91 - type: Wire - components: - - parent: 15 - pos: 3.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 92 - type: Wire - components: - - parent: 15 - pos: 3.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 93 - type: Wire - components: - - parent: 15 - pos: 3.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 94 - type: Wire - components: - - parent: 15 - pos: 3.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 95 - type: Wire - components: - - parent: 15 - pos: 3.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 96 - type: Wire - components: - - parent: 15 - pos: 3.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 97 - type: Wire - components: - - parent: 15 - pos: 3.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 98 - type: Wire - components: - - parent: 15 - pos: 3.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 99 - type: Wire - components: - - parent: 15 - pos: 3.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 100 - type: Wire - components: - - parent: 15 - pos: 3.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 101 - type: Wire - components: - - parent: 15 - pos: 3.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 102 - type: Wire - components: - - parent: 15 - pos: 3.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 103 - type: Wire - components: - - parent: 15 - pos: 3.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 104 - type: Wire - components: - - parent: 15 - pos: 3.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 105 - type: Wire - components: - - parent: 15 - pos: 3.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 106 - type: Wire - components: - - parent: 15 - pos: 3.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 107 - type: Wire - components: - - parent: 15 - pos: 3.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 108 - type: Wire - components: - - parent: 15 - pos: 3.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 109 - type: Wire - components: - - parent: 15 - pos: 3.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 110 - type: Wire - components: - - parent: 15 - pos: 3.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 111 - type: Wire - components: - - parent: 15 - pos: 3.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 112 - type: Wire - components: - - parent: 15 - pos: 3.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 113 - type: Wire - components: - - parent: 15 - pos: 3.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 114 - type: Wire - components: - - parent: 15 - pos: 3.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 115 - type: Wire - components: - - parent: 15 - pos: 3.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 116 - type: Wire - components: - - parent: 15 - pos: 3.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 117 - type: Wire - components: - - parent: 15 - pos: 3.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 118 - type: Wire - components: - - parent: 15 - pos: 3.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 119 - type: Wire - components: - - parent: 15 - pos: 3.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 120 - type: Wire - components: - - parent: 15 - pos: 3.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 121 - type: Wire - components: - - parent: 15 - pos: 3.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 122 - type: Wire - components: - - parent: 15 - pos: 3.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 123 - type: Wire - components: - - parent: 15 - pos: 3.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 124 - type: Wire - components: - - parent: 15 - pos: 3.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 125 - type: Wire - components: - - parent: 15 - pos: 3.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 126 - type: Wire - components: - - parent: 15 - pos: 7.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 127 - type: Wire - components: - - parent: 15 - pos: 5.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 128 - type: Wire - components: - - parent: 15 - pos: 4.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 129 - type: Wire - components: - - parent: 15 - pos: 6.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 130 - type: Wire - components: - - parent: 15 - pos: 7.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 131 - type: Wire - components: - - parent: 15 - pos: 8.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 132 - type: Wire - components: - - parent: 15 - pos: 9.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 133 - type: Wire - components: - - parent: 15 - pos: 10.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 134 - type: Wire - components: - - parent: 15 - pos: 11.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 135 - type: Wire - components: - - parent: 15 - pos: 12.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 136 - type: Wire - components: - - parent: 15 - pos: 13.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 137 - type: Wire - components: - - parent: 15 - pos: 14.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 138 - type: Wire - components: - - parent: 15 - pos: 18.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 139 - type: Wire - components: - - parent: 15 - pos: 17.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 140 - type: Wire - components: - - parent: 15 - pos: 16.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 141 - type: Wire - components: - - parent: 15 - pos: 15.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 142 - type: Wire - components: - - parent: 15 - pos: 14.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 143 - type: Wire - components: - - parent: 15 - pos: 14.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 144 - type: Wire - components: - - parent: 15 - pos: 14.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 145 - type: Wire - components: - - parent: 15 - pos: 22.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 146 - type: Wire - components: - - parent: 15 - pos: 22.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 147 - type: Wire - components: - - parent: 15 - pos: 22.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 148 - type: Wire - components: - - parent: 15 - pos: 22.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 149 - type: Wire - components: - - parent: 15 - pos: 23.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 150 - type: Wire - components: - - parent: 15 - pos: 24.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 151 - type: Wire - components: - - parent: 15 - pos: 25.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 152 - type: Wire - components: - - parent: 15 - pos: 26.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 153 - type: Wire - components: - - parent: 15 - pos: 26.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 154 - type: Wire - components: - - parent: 15 - pos: 26.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 155 - type: Wire - components: - - parent: 15 - pos: 26.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 156 - type: Wire - components: - - parent: 15 - pos: 26.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 157 - type: Wire - components: - - parent: 15 - pos: 26.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 158 - type: Wire - components: - - parent: 15 - pos: 26.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 159 - type: Catwalk - components: - - parent: 15 - pos: 22.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 160 - type: Wire - components: - - parent: 15 - pos: 26.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 161 - type: Wire - components: - - parent: 15 - pos: 26.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 162 - type: Wire - components: - - parent: 15 - pos: 26.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 163 - type: Wire - components: - - parent: 15 - pos: 26.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 164 - type: Wire - components: - - parent: 15 - pos: 26.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 165 - type: Wire - components: - - parent: 15 - pos: 26.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 166 - type: Wire - components: - - parent: 15 - pos: 26.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 167 - type: Wire - components: - - parent: 15 - pos: 26.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 168 - type: Wire - components: - - parent: 15 - pos: 26.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 169 - type: Wire - components: - - parent: 15 - pos: 25.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 170 - type: Wire - components: - - parent: 15 - pos: 24.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 171 - type: Wire - components: - - parent: 15 - pos: 23.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 172 - type: Wire - components: - - parent: 15 - pos: 22.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 173 - type: Wire - components: - - parent: 15 - pos: 21.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 174 - type: Wire - components: - - parent: 15 - pos: 20.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 175 - type: Wire - components: - - parent: 15 - pos: 20.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 176 - type: Wire - components: - - parent: 15 - pos: 20.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 177 - type: Wire - components: - - parent: 15 - pos: 20.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 178 - type: Wire - components: - - parent: 15 - pos: 20.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 179 - type: Wire - components: - - parent: 15 - pos: 21.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 180 - type: Wire - components: - - parent: 15 - pos: 21.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 181 - type: Wire - components: - - parent: 15 - pos: 21.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 182 - type: Wire - components: - - parent: 15 - pos: 27.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 183 - type: Wire - components: - - parent: 15 - pos: 27.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 184 - type: Wire - components: - - parent: 15 - pos: 27.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 185 - type: Catwalk - components: - - parent: 15 - pos: 10.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 186 - type: Catwalk - components: - - parent: 15 - pos: 12.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 187 - type: Catwalk - components: - - parent: 15 - pos: 11.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 188 - type: Wire - components: - - parent: 15 - pos: 25.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 189 - type: Wire - components: - - parent: 15 - pos: 24.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 190 - type: Wire - components: - - parent: 15 - pos: 23.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 191 - type: Wire - components: - - parent: 15 - pos: 22.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 192 - type: Wire - components: - - parent: 15 - pos: 21.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 193 - type: Wire - components: - - parent: 15 - pos: 21.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 194 - type: Wire - components: - - parent: 15 - pos: 20.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 195 - type: Wire - components: - - parent: 15 - pos: 19.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 196 - type: Wire - components: - - parent: 15 - pos: 18.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 197 - type: Wire - components: - - parent: 15 - pos: 17.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 198 - type: Wire - components: - - parent: 15 - pos: 16.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 199 - type: Wire - components: - - parent: 15 - pos: 15.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 200 - type: Wire - components: - - parent: 15 - pos: 14.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 201 - type: Wire - components: - - parent: 15 - pos: 13.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 202 - type: Wire - components: - - parent: 15 - pos: 13.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 203 - type: Wire - components: - - parent: 15 - pos: 13.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 204 - type: Wire - components: - - parent: 15 - pos: 13.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 205 - type: Wire - components: - - parent: 15 - pos: 13.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 206 - type: Wire - components: - - parent: 15 - pos: 13.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 207 - type: Wire - components: - - parent: 15 - pos: 4.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 208 - type: Wire - components: - - parent: 15 - pos: 6.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 209 - type: Wire - components: - - parent: 15 - pos: 5.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 210 - type: Wire - components: - - parent: 15 - pos: 6.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 211 - type: Wire - components: - - parent: 15 - pos: 7.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 212 - type: Wire - components: - - parent: 15 - pos: 8.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 213 - type: Wire - components: - - parent: 15 - pos: 8.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 214 - type: Wire - components: - - parent: 15 - pos: 8.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 215 - type: Wire - components: - - parent: 15 - pos: 9.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 216 - type: Wire - components: - - parent: 15 - pos: 10.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 217 - type: Wire - components: - - parent: 15 - pos: 10.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 218 - type: Wire - components: - - parent: 15 - pos: 11.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 219 - type: Wire - components: - - parent: 15 - pos: 12.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 220 - type: Wire - components: - - parent: 15 - pos: 12.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 221 - type: Wire - components: - - parent: 15 - pos: 12.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 222 - type: Wire - components: - - parent: 15 - pos: 12.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 223 - type: Wire - components: - - parent: 15 - pos: 12.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 224 - type: Wire - components: - - parent: 15 - pos: 12.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 225 - type: Wire - components: - - parent: 15 - pos: 12.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 226 - type: Wire - components: - - parent: 15 - pos: 11.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 227 - type: Wire - components: - - parent: 15 - pos: 10.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 228 - type: Wire - components: - - parent: 15 - pos: 26.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 229 - type: Wire - components: - - parent: 15 - pos: 26.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 230 - type: Wire - components: - - parent: 15 - pos: 27.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 231 - type: Wire - components: - - parent: 15 - pos: 2.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 232 - type: Wire - components: - - parent: 15 - pos: 1.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 233 - type: Wire - components: - - parent: 15 - pos: 0.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 234 - type: Wire - components: - - parent: 15 - pos: -0.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 235 - type: Wire - components: - - parent: 15 - pos: 2.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 236 - type: Wire - components: - - parent: 15 - pos: 1.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 237 - type: Wire - components: - - parent: 15 - pos: 0.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 238 - type: Wire - components: - - parent: 15 - pos: -0.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 239 - type: Wire - components: - - parent: 15 - pos: -1.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 240 - type: Wire - components: - - parent: 15 - pos: -2.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 241 - type: Wire - components: - - parent: 15 - pos: -3.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 242 - type: Wire - components: - - parent: 15 - pos: -4.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 243 - type: Wire - components: - - parent: 15 - pos: -5.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 244 - type: Wire - components: - - parent: 15 - pos: -6.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 245 - type: Wire - components: - - parent: 15 - pos: -7.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 246 - type: Wire - components: - - parent: 15 - pos: -8.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 247 - type: Wire - components: - - parent: 15 - pos: -9.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 248 - type: Wire - components: - - parent: 15 - pos: -10.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 249 - type: Wire - components: - - parent: 15 - pos: -11.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 250 - type: Wire - components: - - parent: 15 - pos: -8.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 251 - type: Wire - components: - - parent: 15 - pos: -8.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 252 - type: Wire - components: - - parent: 15 - pos: -8.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 253 - type: Wire - components: - - parent: 15 - pos: -9.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 254 - type: Wire - components: - - parent: 15 - pos: -11.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 255 - type: Wire - components: - - parent: 15 - pos: -11.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 256 - type: Wire - components: - - parent: 15 - pos: -11.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 257 - type: Wire - components: - - parent: 15 - pos: -11.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 258 - type: Wire - components: - - parent: 15 - pos: -11.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 259 - type: Wire - components: - - parent: 15 - pos: -11.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 260 - type: Wire - components: - - parent: 15 - pos: -11.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 261 - type: Wire - components: - - parent: 15 - pos: -10.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 262 - type: Wire - components: - - parent: 15 - pos: -9.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 263 - type: Wire - components: - - parent: 15 - pos: -8.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 264 - type: Wire - components: - - parent: 15 - pos: -7.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 265 - type: Wire - components: - - parent: 15 - pos: -6.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 266 - type: Wire - components: - - parent: 15 - pos: -5.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 267 - type: Wire - components: - - parent: 15 - pos: -4.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 268 - type: Wire - components: - - parent: 15 - pos: -3.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 269 - type: Wire - components: - - parent: 15 - pos: -2.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 270 - type: Wire - components: - - parent: 15 - pos: -1.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 271 - type: Wire - components: - - parent: 15 - pos: -0.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 272 - type: Wire - components: - - parent: 15 - pos: -0.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 273 - type: Wire - components: - - parent: 15 - pos: -0.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 274 - type: Catwalk - components: - - parent: 15 - pos: -11.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 275 - type: Catwalk - components: - - parent: 15 - pos: -11.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 276 - type: Catwalk - components: - - parent: 15 - pos: -11.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 277 - type: Catwalk - components: - - parent: 15 - pos: -11.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 278 - type: Catwalk - components: - - parent: 15 - pos: -11.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 279 - type: Catwalk - components: - - parent: 15 - pos: -0.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 280 - type: Catwalk - components: - - parent: 15 - pos: -0.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 281 - type: Catwalk - components: - - parent: 15 - pos: -0.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 282 - type: Catwalk - components: - - parent: 15 - pos: -0.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 283 - type: Catwalk - components: - - parent: 15 - pos: 0.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 284 - type: Catwalk - components: - - parent: 15 - pos: -9.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 285 - type: Catwalk - components: - - parent: 15 - pos: -8.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 286 - type: Catwalk - components: - - parent: 15 - pos: -7.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 287 - type: Wire - components: - - parent: 15 - pos: -12.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 288 - type: Wire - components: - - parent: 15 - pos: -13.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 289 - type: Wire - components: - - parent: 15 - pos: -14.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 290 - type: Wire - components: - - parent: 15 - pos: -15.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 291 - type: Wire - components: - - parent: 15 - pos: -16.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 292 - type: Wire - components: - - parent: 15 - pos: -16.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 293 - type: Wire - components: - - parent: 15 - pos: -16.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 294 - type: Wire - components: - - parent: 15 - pos: -16.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 295 - type: Wire - components: - - parent: 15 - pos: -16.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 296 - type: Wire - components: - - parent: 15 - pos: -16.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 297 - type: Wire - components: - - parent: 15 - pos: 2.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 298 - type: Wire - components: - - parent: 15 - pos: 1.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 299 - type: APC - components: - - parent: 15 - pos: -19.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 300 - type: Table - components: - - parent: 15 - pos: 30.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 301 - type: Wire - components: - - parent: 15 - pos: -3.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 302 - type: Wire - components: - - parent: 15 - pos: -1.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 303 - type: Wire - components: - - parent: 15 - pos: -2.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 304 - type: Catwalk - components: - - parent: 15 - pos: 29.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 305 - type: Wire - components: - - parent: 15 - pos: -7.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 306 - type: Catwalk - components: - - parent: 15 - pos: 33.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 307 - type: Wire - components: - - parent: 15 - pos: -6.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 308 - type: Wire - components: - - parent: 15 - pos: -5.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 309 - type: Catwalk - components: - - parent: 15 - pos: 28.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 310 - type: Wire - components: - - parent: 15 - pos: -9.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 311 - type: Wire - components: - - parent: 15 - pos: -10.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 312 - type: Wire - components: - - parent: 15 - pos: -11.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 313 - type: Wire - components: - - parent: 15 - pos: -12.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 314 - type: Wire - components: - - parent: 15 - pos: -13.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 315 - type: Wire - components: - - parent: 15 - pos: -14.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 316 - type: Wire - components: - - parent: 15 - pos: -15.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 317 - type: Wire - components: - - parent: 15 - pos: -13.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 318 - type: Wire - components: - - parent: 15 - pos: -13.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 319 - type: Catwalk - components: - - parent: 15 - pos: 27.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 320 - type: Wire - components: - - parent: 15 - pos: -9.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 321 - type: Wire - components: - - parent: 15 - pos: -9.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 322 - type: Wire - components: - - parent: 15 - pos: -9.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 323 - type: Wire - components: - - parent: 15 - pos: -9.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 324 - type: Wire - components: - - parent: 15 - pos: -32.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 325 - type: Wire - components: - - parent: 15 - pos: -32.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 326 - type: Wire - components: - - parent: 15 - pos: -32.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 327 - type: Wire - components: - - parent: 15 - pos: -32.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 328 - type: LockerElectricalSupplies - components: - - parent: 15 - pos: 39.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 329 - type: Catwalk - components: - - parent: 15 - pos: 47.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 330 - type: Table - components: - - parent: 15 - pos: -12.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 331 - type: Chair - components: - - parent: 15 - pos: 28.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 332 - type: Chair - components: - - parent: 15 - pos: 26.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 333 - type: Wire - components: - - parent: 15 - pos: -33.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 334 - type: Wire - components: - - parent: 15 - pos: -33.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 335 - type: Wire - components: - - parent: 15 - pos: -34.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 336 - type: Wire - components: - - parent: 15 - pos: -35.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 337 - type: Wire - components: - - parent: 15 - pos: -31.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 338 - type: Wire - components: - - parent: 15 - pos: -30.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 339 - type: Wire - components: - - parent: 15 - pos: -29.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 340 - type: Wire - components: - - parent: 15 - pos: -28.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 341 - type: Wire - components: - - parent: 15 - pos: -27.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 342 - type: Wire - components: - - parent: 15 - pos: -26.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 343 - type: Wire - components: - - parent: 15 - pos: -25.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 344 - type: Wire - components: - - parent: 15 - pos: -24.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 345 - type: Wire - components: - - parent: 15 - pos: -23.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 346 - type: Wire - components: - - parent: 15 - pos: -23.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 347 - type: Wire - components: - - parent: 15 - pos: -23.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 348 - type: Wire - components: - - parent: 15 - pos: -22.5,10.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 349 - type: APC - components: - - parent: 15 - pos: -30.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 350 - type: APC - components: - - parent: 15 - pos: -22.5,10.5 - rot: 3.141592653589793 rad - type: Transform - - startingCharge: 9806.396 - type: Battery -- uid: 351 - type: Wire - components: - - parent: 15 - pos: -23.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 352 - type: Wire - components: - - parent: 15 - pos: -23.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 353 - type: Wire - components: - - parent: 15 - pos: -23.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 354 - type: Wire - components: - - parent: 15 - pos: -24.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 355 - type: Wire - components: - - parent: 15 - pos: -25.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 356 - type: Wire - components: - - parent: 15 - pos: -26.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 357 - type: Wire - components: - - parent: 15 - pos: -27.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 358 - type: Wire - components: - - parent: 15 - pos: -28.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 359 - type: Window - components: - - parent: 15 - pos: -18.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 360 - type: Window - components: - - parent: 15 - pos: -19.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 361 - type: LowWall - components: - - parent: 15 - pos: -19.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 362 - type: LowWall - components: - - parent: 15 - pos: -18.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 363 - type: Wire - components: - - parent: 15 - pos: -23.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 364 - type: Wire - components: - - parent: 15 - pos: -23.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 365 - type: Wire - components: - - parent: 15 - pos: -23.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 366 - type: Wire - components: - - parent: 15 - pos: -23.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 367 - type: Wire - components: - - parent: 15 - pos: -23.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 368 - type: Wire - components: - - parent: 15 - pos: -23.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 369 - type: Wire - components: - - parent: 15 - pos: -22.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 370 - type: ChairOfficeDark - components: - - parent: 15 - pos: -6.5,20.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 371 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,15 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 372 - type: Table - components: - - parent: 15 - pos: 10.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 373 - type: Table - components: - - parent: 15 - pos: -7.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 374 - type: ChairOfficeDark - components: - - parent: 15 - pos: -11.5,8.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 375 - type: Chair - components: - - parent: 15 - pos: -13.5,8.5 - type: Transform - - anchored: False - type: Collidable -- uid: 376 - type: Wire - components: - - parent: 15 - pos: -23.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 377 - type: Wire - components: - - parent: 15 - pos: -23.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 378 - type: Wire - components: - - parent: 15 - pos: -23.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 379 - type: Wire - components: - - parent: 15 - pos: -23.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 380 - type: Wire - components: - - parent: 15 - pos: -23.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 381 - type: Wire - components: - - parent: 15 - pos: -22.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 382 - type: Wire - components: - - parent: 15 - pos: -21.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 383 - type: Wire - components: - - parent: 15 - pos: -20.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 384 - type: Wire - components: - - parent: 15 - pos: -19.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 385 - type: Wire - components: - - parent: 15 - pos: -20.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 386 - type: Wire - components: - - parent: 15 - pos: -20.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 387 - type: Wire - components: - - parent: 15 - pos: -20.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 388 - type: Wire - components: - - parent: 15 - pos: -20.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 389 - type: ComputerPowerMonitoring - components: - - parent: 15 - pos: 29.5,-1.5 - type: Transform -- uid: 390 - type: LockerToolFilled - components: - - parent: 15 - pos: 35.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 391 - type: Multitool - components: - - parent: 15 - pos: -29.340704,7.4573865 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 392 - type: LockerToolFilled - components: - - parent: 15 - pos: 35.5,0.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 393 - type: Wire - components: - - parent: 15 - pos: -33.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 394 - type: Wire - components: - - parent: 15 - pos: -33.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 395 - type: Wire - components: - - parent: 15 - pos: -33.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 396 - type: Wire - components: - - parent: 15 - pos: -33.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 397 - type: Wire - components: - - parent: 15 - pos: -33.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 398 - type: Wire - components: - - parent: 15 - pos: -33.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 399 - type: Wire - components: - - parent: 15 - pos: -32.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 400 - type: Wire - components: - - parent: 15 - pos: -32.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 401 - type: Wire - components: - - parent: 15 - pos: -32.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 402 - type: Wire - components: - - parent: 15 - pos: -32.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 403 - type: Wire - components: - - parent: 15 - pos: -32.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 404 - type: Wire - components: - - parent: 15 - pos: -32.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 405 - type: Wire - components: - - parent: 15 - pos: -32.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 406 - type: Wire - components: - - parent: 15 - pos: -33.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 407 - type: Wire - components: - - parent: 15 - pos: -34.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 408 - type: Wire - components: - - parent: 15 - pos: -35.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 409 - type: Wire - components: - - parent: 15 - pos: -36.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 410 - type: Wire - components: - - parent: 15 - pos: -37.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 411 - type: Wire - components: - - parent: 15 - pos: -37.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 412 - type: Wire - components: - - parent: 15 - pos: -37.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 413 - type: Wire - components: - - parent: 15 - pos: -37.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 414 - type: Wire - components: - - parent: 15 - pos: -37.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 415 - type: Wire - components: - - parent: 15 - pos: -19.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 416 - type: Wire - components: - - parent: 15 - pos: -18.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 417 - type: Wire - components: - - parent: 15 - pos: -17.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 418 - type: Wire - components: - - parent: 15 - pos: -17.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 419 - type: Wire - components: - - parent: 15 - pos: -17.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 420 - type: Wire - components: - - parent: 15 - pos: -18.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 421 - type: Wire - components: - - parent: 15 - pos: -18.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 422 - type: Wire - components: - - parent: 15 - pos: -18.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 423 - type: Wire - components: - - parent: 15 - pos: -18.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 424 - type: Wire - components: - - parent: 15 - pos: -18.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 425 - type: Wire - components: - - parent: 15 - pos: -18.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 426 - type: Wire - components: - - parent: 15 - pos: -18.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 427 - type: Wire - components: - - parent: 15 - pos: -18.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 428 - type: Wire - components: - - parent: 15 - pos: -18.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 429 - type: Wire - components: - - parent: 15 - pos: -18.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 430 - type: Wire - components: - - parent: 15 - pos: -18.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 431 - type: Wire - components: - - parent: 15 - pos: -17.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 432 - type: Wire - components: - - parent: 15 - pos: -16.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 433 - type: Wire - components: - - parent: 15 - pos: -15.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 434 - type: Wire - components: - - parent: 15 - pos: -14.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 435 - type: Wire - components: - - parent: 15 - pos: -13.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 436 - type: Wire - components: - - parent: 15 - pos: -12.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 437 - type: Wire - components: - - parent: 15 - pos: -11.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 438 - type: Wire - components: - - parent: 15 - pos: -10.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 439 - type: Wire - components: - - parent: 15 - pos: -9.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 440 - type: Wire - components: - - parent: 15 - pos: -8.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 441 - type: Wire - components: - - parent: 15 - pos: -7.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 442 - type: Wire - components: - - parent: 15 - pos: -7.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 443 - type: Wire - components: - - parent: 15 - pos: -6.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 444 - type: Wire - components: - - parent: 15 - pos: -5.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 445 - type: Wire - components: - - parent: 15 - pos: -4.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 446 - type: Wire - components: - - parent: 15 - pos: -4.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 447 - type: Wire - components: - - parent: 15 - pos: -4.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 448 - type: Wire - components: - - parent: 15 - pos: -4.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 449 - type: Wire - components: - - parent: 15 - pos: -3.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 450 - type: Wire - components: - - parent: 15 - pos: -2.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 451 - type: Wire - components: - - parent: 15 - pos: -1.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 452 - type: Wire - components: - - parent: 15 - pos: -0.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 453 - type: Wire - components: - - parent: 15 - pos: -0.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 454 - type: Wire - components: - - parent: 15 - pos: 0.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 455 - type: Wire - components: - - parent: 15 - pos: 1.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 456 - type: Wire - components: - - parent: 15 - pos: 2.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 457 - type: Wire - components: - - parent: 15 - pos: 2.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 458 - type: Wire - components: - - parent: 15 - pos: 2.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 459 - type: Wire - components: - - parent: 15 - pos: 2.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 460 - type: Wire - components: - - parent: 15 - pos: 2.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 461 - type: Wire - components: - - parent: 15 - pos: 2.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 462 - type: Wire - components: - - parent: 15 - pos: 2.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 463 - type: Wire - components: - - parent: 15 - pos: 2.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 464 - type: Wire - components: - - parent: 15 - pos: 2.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 465 - type: Wire - components: - - parent: 15 - pos: 0.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 466 - type: Wire - components: - - parent: 15 - pos: 0.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 467 - type: APC - components: - - parent: 15 - pos: 0.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 468 - type: APC - components: - - parent: 15 - pos: 7.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 469 - type: Wire - components: - - parent: 15 - pos: 1.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 470 - type: Wire - components: - - parent: 15 - pos: 3.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 471 - type: Wire - components: - - parent: 15 - pos: 4.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 472 - type: Wire - components: - - parent: 15 - pos: 5.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 473 - type: Wire - components: - - parent: 15 - pos: 6.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 474 - type: Wire - components: - - parent: 15 - pos: 7.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 475 - type: Wire - components: - - parent: 15 - pos: -6.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 476 - type: Wire - components: - - parent: 15 - pos: -6.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 477 - type: Wire - components: - - parent: 15 - pos: -6.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 478 - type: Wire - components: - - parent: 15 - pos: -6.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 479 - type: Wire - components: - - parent: 15 - pos: -6.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 480 - type: Wire - components: - - parent: 15 - pos: -6.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 481 - type: Wire - components: - - parent: 15 - pos: -6.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 482 - type: Wire - components: - - parent: 15 - pos: -16.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 483 - type: Wire - components: - - parent: 15 - pos: -16.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 484 - type: Wire - components: - - parent: 15 - pos: -16.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 485 - type: Wire - components: - - parent: 15 - pos: -17.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 486 - type: Wire - components: - - parent: 15 - pos: -17.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 487 - type: Wire - components: - - parent: 15 - pos: -17.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 488 - type: Wire - components: - - parent: 15 - pos: -17.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 489 - type: Wire - components: - - parent: 15 - pos: -17.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 490 - type: Wire - components: - - parent: 15 - pos: -17.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 491 - type: Wire - components: - - parent: 15 - pos: -16.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 492 - type: Wire - components: - - parent: 15 - pos: -15.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 493 - type: Wire - components: - - parent: 15 - pos: -14.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 494 - type: Wire - components: - - parent: 15 - pos: -13.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 495 - type: Wire - components: - - parent: 15 - pos: -12.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 496 - type: Wire - components: - - parent: 15 - pos: -11.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 497 - type: Wire - components: - - parent: 15 - pos: -10.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 498 - type: Wire - components: - - parent: 15 - pos: -9.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 499 - type: Wire - components: - - parent: 15 - pos: -8.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 500 - type: Wire - components: - - parent: 15 - pos: -7.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 501 - type: Wire - components: - - parent: 15 - pos: -6.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 502 - type: Wire - components: - - parent: 15 - pos: -6.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 503 - type: Wire - components: - - parent: 15 - pos: -6.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 504 - type: Wire - components: - - parent: 15 - pos: -6.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 505 - type: Wire - components: - - parent: 15 - pos: -7.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 506 - type: Wire - components: - - parent: 15 - pos: -8.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 507 - type: Wire - components: - - parent: 15 - pos: -9.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 508 - type: Wire - components: - - parent: 15 - pos: -10.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 509 - type: Wire - components: - - parent: 15 - pos: -11.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 510 - type: Wire - components: - - parent: 15 - pos: -12.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 511 - type: Wire - components: - - parent: 15 - pos: 1.5,11.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 512 - type: APC - components: - - parent: 15 - pos: 1.5,11.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 513 - type: Wire - components: - - parent: 15 - pos: -5.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 514 - type: Wire - components: - - parent: 15 - pos: -4.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 515 - type: Wire - components: - - parent: 15 - pos: -3.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 516 - type: Wire - components: - - parent: 15 - pos: -2.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 517 - type: Wire - components: - - parent: 15 - pos: -1.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 518 - type: Wire - components: - - parent: 15 - pos: -0.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 519 - type: Wire - components: - - parent: 15 - pos: 0.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 520 - type: Wire - components: - - parent: 15 - pos: -8.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 521 - type: Wire - components: - - parent: 15 - pos: -8.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 522 - type: Wire - components: - - parent: 15 - pos: -8.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 523 - type: Wire - components: - - parent: 15 - pos: -8.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 524 - type: Wire - components: - - parent: 15 - pos: -8.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 525 - type: Catwalk - components: - - parent: 15 - pos: 7.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 526 - type: Catwalk - components: - - parent: 15 - pos: 14.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 527 - type: Catwalk - components: - - parent: 15 - pos: 21.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 528 - type: Catwalk - components: - - parent: 15 - pos: 26.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 529 - type: APC - components: - - parent: 15 - pos: -9.5,26.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 530 - type: Wire - components: - - parent: 15 - pos: -15.5,15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 531 - type: APC - components: - - parent: 15 - pos: -15.5,15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 532 - type: Wire - components: - - parent: 15 - pos: -14.5,15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 533 - type: Wire - components: - - parent: 15 - pos: 2.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 534 - type: Wire - components: - - parent: 15 - pos: 1.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 535 - type: Wire - components: - - parent: 15 - pos: 0.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 536 - type: Wire - components: - - parent: 15 - pos: -1.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 537 - type: Wire - components: - - parent: 15 - pos: 29.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 538 - type: Wire - components: - - parent: 15 - pos: 29.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 539 - type: Wire - components: - - parent: 15 - pos: 30.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 540 - type: Wire - components: - - parent: 15 - pos: 32.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 541 - type: Wire - components: - - parent: 15 - pos: 31.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 542 - type: Wire - components: - - parent: 15 - pos: 33.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 543 - type: Wire - components: - - parent: 15 - pos: 33.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 544 - type: Wire - components: - - parent: 15 - pos: 33.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 545 - type: Wire - components: - - parent: 15 - pos: 33.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 546 - type: Wire - components: - - parent: 15 - pos: 33.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 547 - type: Wire - components: - - parent: 15 - pos: 33.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 548 - type: Wire - components: - - parent: 15 - pos: 33.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 549 - type: Wire - components: - - parent: 15 - pos: 33.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 550 - type: Wire - components: - - parent: 15 - pos: 34.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 551 - type: Wire - components: - - parent: 15 - pos: 35.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 552 - type: Wire - components: - - parent: 15 - pos: 36.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 553 - type: Wire - components: - - parent: 15 - pos: 37.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 554 - type: Wire - components: - - parent: 15 - pos: 38.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 555 - type: Wire - components: - - parent: 15 - pos: 39.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 556 - type: Wire - components: - - parent: 15 - pos: 40.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 557 - type: Wire - components: - - parent: 15 - pos: 40.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 558 - type: Wire - components: - - parent: 15 - pos: 40.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 559 - type: Wire - components: - - parent: 15 - pos: 40.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 560 - type: ReinforcedWindow - components: - - parent: 15 - pos: 51.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 561 - type: Wire - components: - - parent: 15 - pos: 38.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 562 - type: Wire - components: - - parent: 15 - pos: 37.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 563 - type: Wire - components: - - parent: 15 - pos: 39.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 564 - type: Wire - components: - - parent: 15 - pos: 38.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 565 - type: Wire - components: - - parent: 15 - pos: 38.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 566 - type: Wire - components: - - parent: 15 - pos: 38.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 567 - type: Wire - components: - - parent: 15 - pos: 38.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 568 - type: Wire - components: - - parent: 15 - pos: 38.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 569 - type: Wire - components: - - parent: 15 - pos: 33.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 570 - type: Wire - components: - - parent: 15 - pos: 33.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 571 - type: Wire - components: - - parent: 15 - pos: 33.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 572 - type: Wire - components: - - parent: 15 - pos: 33.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 573 - type: Wire - components: - - parent: 15 - pos: 33.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 574 - type: Wire - components: - - parent: 15 - pos: 33.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 575 - type: Wire - components: - - parent: 15 - pos: 33.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 576 - type: Wire - components: - - parent: 15 - pos: 33.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 577 - type: Wire - components: - - parent: 15 - pos: 33.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 578 - type: Wire - components: - - parent: 15 - pos: 33.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 579 - type: Wire - components: - - parent: 15 - pos: 33.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 580 - type: Wire - components: - - parent: 15 - pos: 33.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 581 - type: Wire - components: - - parent: 15 - pos: 32.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 582 - type: Wire - components: - - parent: 15 - pos: 31.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 583 - type: Wire - components: - - parent: 15 - pos: 30.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 584 - type: Wire - components: - - parent: 15 - pos: 29.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 585 - type: Wire - components: - - parent: 15 - pos: 29.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 586 - type: Wire - components: - - parent: 15 - pos: 28.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 587 - type: Wire - components: - - parent: 15 - pos: 27.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 588 - type: Wire - components: - - parent: 15 - pos: -3.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 589 - type: Wire - components: - - parent: 15 - pos: -3.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 590 - type: Wire - components: - - parent: 15 - pos: -3.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 591 - type: Wire - components: - - parent: 15 - pos: -3.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 592 - type: Wire - components: - - parent: 15 - pos: -3.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 593 - type: Wire - components: - - parent: 15 - pos: -3.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 594 - type: Wire - components: - - parent: 15 - pos: -3.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 595 - type: Wire - components: - - parent: 15 - pos: -3.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 596 - type: Wire - components: - - parent: 15 - pos: -3.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 597 - type: Wire - components: - - parent: 15 - pos: 14.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 598 - type: Wire - components: - - parent: 15 - pos: 14.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 599 - type: Wire - components: - - parent: 15 - pos: 14.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 600 - type: Wire - components: - - parent: 15 - pos: 14.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 601 - type: Wire - components: - - parent: 15 - pos: 14.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 602 - type: Wire - components: - - parent: 15 - pos: 14.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 603 - type: Wire - components: - - parent: 15 - pos: 14.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 604 - type: Wire - components: - - parent: 15 - pos: 14.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 605 - type: Wire - components: - - parent: 15 - pos: 14.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 606 - type: Wire - components: - - parent: 15 - pos: 14.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 607 - type: Wire - components: - - parent: 15 - pos: 13.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 608 - type: Wire - components: - - parent: 15 - pos: 12.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 609 - type: Wire - components: - - parent: 15 - pos: 11.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 610 - type: Wire - components: - - parent: 15 - pos: 10.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 611 - type: Wire - components: - - parent: 15 - pos: 9.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 612 - type: Wire - components: - - parent: 15 - pos: 8.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 613 - type: Wire - components: - - parent: 15 - pos: 8.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 614 - type: Wire - components: - - parent: 15 - pos: 8.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 615 - type: Wire - components: - - parent: 15 - pos: 8.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 616 - type: Wire - components: - - parent: 15 - pos: 8.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 617 - type: Wire - components: - - parent: 15 - pos: 9.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 618 - type: Wire - components: - - parent: 15 - pos: 10.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 619 - type: Wire - components: - - parent: 15 - pos: 10.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 620 - type: Wire - components: - - parent: 15 - pos: 10.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 621 - type: Wire - components: - - parent: 15 - pos: 10.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 622 - type: Wire - components: - - parent: 15 - pos: 10.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 623 - type: Wire - components: - - parent: 15 - pos: 10.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 624 - type: Wire - components: - - parent: 15 - pos: 10.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 625 - type: Wire - components: - - parent: 15 - pos: 10.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 626 - type: Wire - components: - - parent: 15 - pos: 10.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 627 - type: Wire - components: - - parent: 15 - pos: 10.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 628 - type: Wire - components: - - parent: 15 - pos: 10.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 629 - type: Wire - components: - - parent: 15 - pos: 9.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 630 - type: Wire - components: - - parent: 15 - pos: 8.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 631 - type: Wire - components: - - parent: 15 - pos: 7.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 632 - type: Wire - components: - - parent: 15 - pos: 6.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 633 - type: Wire - components: - - parent: 15 - pos: 5.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 634 - type: Wire - components: - - parent: 15 - pos: 4.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 635 - type: Wire - components: - - parent: 15 - pos: 17.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 636 - type: Wire - components: - - parent: 15 - pos: 17.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 637 - type: Wire - components: - - parent: 15 - pos: 17.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 638 - type: Wire - components: - - parent: 15 - pos: 17.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 639 - type: Wire - components: - - parent: 15 - pos: 17.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 640 - type: Wire - components: - - parent: 15 - pos: 17.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 641 - type: Wire - components: - - parent: 15 - pos: 17.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 642 - type: Wire - components: - - parent: 15 - pos: 17.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 643 - type: Wire - components: - - parent: 15 - pos: 18.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 644 - type: Wire - components: - - parent: 15 - pos: 19.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 645 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-6.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 646 - type: Wire - components: - - parent: 15 - pos: 20.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 647 - type: Wire - components: - - parent: 15 - pos: 19.5,-5.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 648 - type: Wire - components: - - parent: 15 - pos: 19.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 649 - type: Wire - components: - - parent: 15 - pos: 17.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 650 - type: Wire - components: - - parent: 15 - pos: 17.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 651 - type: Wire - components: - - parent: 15 - pos: 17.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 652 - type: Wire - components: - - parent: 15 - pos: 17.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 653 - type: Wire - components: - - parent: 15 - pos: 18.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 654 - type: Wire - components: - - parent: 15 - pos: 19.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 655 - type: Wire - components: - - parent: 15 - pos: 20.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 656 - type: Wire - components: - - parent: 15 - pos: 21.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 657 - type: Wire - components: - - parent: 15 - pos: 21.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 658 - type: Wire - components: - - parent: 15 - pos: 22.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 659 - type: Wire - components: - - parent: 15 - pos: 23.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 660 - type: Wire - components: - - parent: 15 - pos: 24.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 661 - type: Wire - components: - - parent: 15 - pos: 25.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 662 - type: Wire - components: - - parent: 15 - pos: 16.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 663 - type: Wire - components: - - parent: 15 - pos: 15.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 664 - type: Wire - components: - - parent: 15 - pos: 18.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 665 - type: Wire - components: - - parent: 15 - pos: 18.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 666 - type: Wire - components: - - parent: 15 - pos: 18.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 667 - type: Wire - components: - - parent: 15 - pos: 19.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 668 - type: Wire - components: - - parent: 15 - pos: 20.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 669 - type: Wire - components: - - parent: 15 - pos: 21.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 670 - type: Wire - components: - - parent: 15 - pos: 22.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 671 - type: Wire - components: - - parent: 15 - pos: 23.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 672 - type: Table - components: - - parent: 15 - pos: 6.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 673 - type: Wire - components: - - parent: 15 - pos: -4.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 674 - type: Wire - components: - - parent: 15 - pos: 0.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 675 - type: Wire - components: - - parent: 15 - pos: 0.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 676 - type: Wire - components: - - parent: 15 - pos: 0.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 677 - type: Wire - components: - - parent: 15 - pos: 0.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 678 - type: Wire - components: - - parent: 15 - pos: -0.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 679 - type: Wire - components: - - parent: 15 - pos: -1.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 680 - type: Wire - components: - - parent: 15 - pos: -2.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 681 - type: Wire - components: - - parent: 15 - pos: -3.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 682 - type: Wire - components: - - parent: 15 - pos: -4.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 683 - type: Wire - components: - - parent: 15 - pos: -5.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 684 - type: Wire - components: - - parent: 15 - pos: -6.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 685 - type: Wire - components: - - parent: 15 - pos: -7.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 686 - type: Wire - components: - - parent: 15 - pos: -8.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 687 - type: Wire - components: - - parent: 15 - pos: -9.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 688 - type: Wire - components: - - parent: 15 - pos: -9.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 689 - type: Wire - components: - - parent: 15 - pos: -9.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 690 - type: Wire - components: - - parent: 15 - pos: -8.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 691 - type: Wire - components: - - parent: 15 - pos: -7.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 692 - type: Wire - components: - - parent: 15 - pos: -6.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 693 - type: Wire - components: - - parent: 15 - pos: -6.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 694 - type: Wire - components: - - parent: 15 - pos: -6.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 695 - type: Wire - components: - - parent: 15 - pos: -6.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 696 - type: Wire - components: - - parent: 15 - pos: -7.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 697 - type: Wire - components: - - parent: 15 - pos: -8.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 698 - type: Wire - components: - - parent: 15 - pos: -8.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 699 - type: Wire - components: - - parent: 15 - pos: -8.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 700 - type: Wire - components: - - parent: 15 - pos: -8.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 701 - type: Wire - components: - - parent: 15 - pos: -8.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 702 - type: Wire - components: - - parent: 15 - pos: -11.5,0.5 - type: Transform -- uid: 703 - type: Chair - components: - - parent: 15 - pos: -3.5,-23.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 704 - type: Chair - components: - - parent: 15 - pos: 38.5,-0.5 - type: Transform - - anchored: False - type: Collidable -- uid: 705 - type: Table - components: - - parent: 15 - pos: 39.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 706 - type: VendingMachineYouTool - components: - - parent: 15 - pos: 31.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 707 - type: Wire - components: - - parent: 15 - pos: 2.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 708 - type: Wire - components: - - parent: 15 - pos: 1.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 709 - type: Wire - components: - - parent: 15 - pos: 0.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 710 - type: Wire - components: - - parent: 15 - pos: -0.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 711 - type: WeldingFuelTank - components: - - parent: 15 - pos: 33.5,12.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 712 - type: Table - components: - - parent: 15 - pos: 29.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 713 - type: ComputerAlert - components: - - parent: 15 - pos: 29.5,-2.5 - type: Transform -- uid: 714 - type: Wire - components: - - parent: 15 - pos: -32.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 715 - type: Wire - components: - - parent: 15 - pos: -31.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 716 - type: Wire - components: - - parent: 15 - pos: -30.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 717 - type: Wire - components: - - parent: 15 - pos: -29.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 718 - type: Wire - components: - - parent: 15 - pos: -28.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 719 - type: Wire - components: - - parent: 15 - pos: -27.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 720 - type: Wire - components: - - parent: 15 - pos: -26.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 721 - type: Wire - components: - - parent: 15 - pos: -25.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 722 - type: Wire - components: - - parent: 15 - pos: -24.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 723 - type: Wire - components: - - parent: 15 - pos: -23.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 724 - type: Wire - components: - - parent: 15 - pos: -22.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 725 - type: Wire - components: - - parent: 15 - pos: -21.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 726 - type: Wire - components: - - parent: 15 - pos: -20.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 727 - type: Wire - components: - - parent: 15 - pos: -24.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 728 - type: Wire - components: - - parent: 15 - pos: -25.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 729 - type: Wire - components: - - parent: 15 - pos: -26.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 730 - type: Wire - components: - - parent: 15 - pos: -27.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 731 - type: Wire - components: - - parent: 15 - pos: -28.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 732 - type: Catwalk - components: - - parent: 15 - pos: -16.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 733 - type: Catwalk - components: - - parent: 15 - pos: -13.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 734 - type: Table - components: - - parent: 15 - pos: 31.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 735 - type: Catwalk - components: - - parent: 15 - pos: -8.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 736 - type: Catwalk - components: - - parent: 15 - pos: -9.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 737 - type: Catwalk - components: - - parent: 15 - pos: -9.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 738 - type: SignHead - components: - - parent: 15 - pos: -9.687853,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 739 - type: ChairOfficeDark - components: - - parent: 15 - pos: 30.5,-2.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 740 - type: Catwalk - components: - - parent: 15 - pos: 0.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 741 - type: CrateGeneric - components: - - parent: 15 - pos: 39.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 742 - type: CrateGeneric - components: - - parent: 15 - pos: 38.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 743 - type: Table - components: - - parent: 15 - pos: 6.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 744 - type: Catwalk - components: - - parent: 15 - pos: -32.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 745 - type: Catwalk - components: - - parent: 15 - pos: -33.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 746 - type: Catwalk - components: - - parent: 15 - pos: -32.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 747 - type: Catwalk - components: - - parent: 15 - pos: -32.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 748 - type: Catwalk - components: - - parent: 15 - pos: -15.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 749 - type: Catwalk - components: - - parent: 15 - pos: -16.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 750 - type: Catwalk - components: - - parent: 15 - pos: -20.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 751 - type: Catwalk - components: - - parent: 15 - pos: -16.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 752 - type: Catwalk - components: - - parent: 15 - pos: -4.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 753 - type: Catwalk - components: - - parent: 15 - pos: -4.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 754 - type: Catwalk - components: - - parent: 15 - pos: -4.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 755 - type: Catwalk - components: - - parent: 15 - pos: -0.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 756 - type: Catwalk - components: - - parent: 15 - pos: 6.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 757 - type: Catwalk - components: - - parent: 15 - pos: 8.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 758 - type: Catwalk - components: - - parent: 15 - pos: 12.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 759 - type: AirlockMaintEngiLocked - components: - - parent: 15 - pos: 33.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 760 - type: Catwalk - components: - - parent: 15 - pos: 27.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 761 - type: Catwalk - components: - - parent: 15 - pos: 21.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 762 - type: ReinforcedWindow - components: - - parent: 15 - pos: 51.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 763 - type: Generator - components: - - parent: 15 - pos: 40.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 764 - type: APC - components: - - parent: 15 - pos: 37.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 765 - type: reinforced_wall - components: - - parent: 15 - pos: 39.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 766 - type: reinforced_wall - components: - - parent: 15 - pos: 38.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 767 - type: reinforced_wall - components: - - parent: 15 - pos: 37.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 768 - type: reinforced_wall - components: - - parent: 15 - pos: 37.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 769 - type: reinforced_wall - components: - - parent: 15 - pos: 37.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 770 - type: reinforced_wall - components: - - parent: 15 - pos: 37.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 771 - type: reinforced_wall - components: - - parent: 15 - pos: 37.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 772 - type: reinforced_wall - components: - - parent: 15 - pos: 38.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 773 - type: reinforced_wall - components: - - parent: 15 - pos: 39.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 774 - type: reinforced_wall - components: - - parent: 15 - pos: 40.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 775 - type: reinforced_wall - components: - - parent: 15 - pos: 41.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 776 - type: reinforced_wall - components: - - parent: 15 - pos: 42.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 777 - type: reinforced_wall - components: - - parent: 15 - pos: 43.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 778 - type: reinforced_wall - components: - - parent: 15 - pos: 44.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 779 - type: reinforced_wall - components: - - parent: 15 - pos: 44.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 780 - type: reinforced_wall - components: - - parent: 15 - pos: 44.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 781 - type: reinforced_wall - components: - - parent: 15 - pos: 44.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 782 - type: reinforced_wall - components: - - parent: 15 - pos: 44.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 783 - type: reinforced_wall - components: - - parent: 15 - pos: 43.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 784 - type: reinforced_wall - components: - - parent: 15 - pos: 42.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 785 - type: LowWall - components: - - parent: 15 - pos: 40.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 786 - type: LowWall - components: - - parent: 15 - pos: 39.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 787 - type: LowWall - components: - - parent: 15 - pos: 36.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 788 - type: Poweredlight - components: - - parent: 15 - pos: -10,-3.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 789 - type: PoweredSmallLight - components: - - parent: 15 - pos: -12.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 790 - type: PoweredSmallLight - components: - - parent: 15 - pos: -25.5,-10 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 791 - type: APC - components: - - parent: 15 - pos: -20.5,-8.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 792 - type: solid_wall - components: - - parent: 15 - pos: 37.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 793 - type: solid_wall - components: - - parent: 15 - pos: 37.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 794 - type: solid_wall - components: - - parent: 15 - pos: 37.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 795 - type: solid_wall - components: - - parent: 15 - pos: 36.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 796 - type: solid_wall - components: - - parent: 15 - pos: 35.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 797 - type: VendingMachineDinnerware - components: - - parent: 15 - pos: -11.5,-3.5 - type: Transform -- uid: 798 - type: solid_wall - components: - - parent: 15 - pos: 36.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 799 - type: LowWall - components: - - parent: 15 - pos: 51.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 800 - type: LowWall - components: - - parent: 15 - pos: 51.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 801 - type: solid_wall - components: - - parent: 15 - pos: 41.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 802 - type: solid_wall - components: - - parent: 15 - pos: 41.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 803 - type: solid_wall - components: - - parent: 15 - pos: 41.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 804 - type: solid_wall - components: - - parent: 15 - pos: 41.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 805 - type: solid_wall - components: - - parent: 15 - pos: 41.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 806 - type: solid_wall - components: - - parent: 15 - pos: 40.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 807 - type: solid_wall - components: - - parent: 15 - pos: 39.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 808 - type: solid_wall - components: - - parent: 15 - pos: 38.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 809 - type: solid_wall - components: - - parent: 15 - pos: 37.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 810 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 811 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 812 - type: solid_wall - components: - - parent: 15 - pos: 36.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 813 - type: solid_wall - components: - - parent: 15 - pos: 36.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 814 - type: LowWall - components: - - parent: 15 - pos: 37.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 815 - type: solid_wall - components: - - parent: 15 - pos: 36.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 816 - type: LowWall - components: - - parent: 15 - pos: 51.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 817 - type: solid_wall - components: - - parent: 15 - pos: 35.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 818 - type: solid_wall - components: - - parent: 15 - pos: 31.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 819 - type: solid_wall - components: - - parent: 15 - pos: 42.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 820 - type: solid_wall - components: - - parent: 15 - pos: 45.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 821 - type: solid_wall - components: - - parent: 15 - pos: 44.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 822 - type: WaterTankFull - components: - - parent: 15 - pos: 10.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 823 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 824 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 825 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 826 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 827 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 828 - type: solid_wall - components: - - parent: 15 - pos: 44.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 829 - type: solid_wall - components: - - parent: 15 - pos: 43.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 830 - type: solid_wall - components: - - parent: 15 - pos: 42.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 831 - type: solid_wall - components: - - parent: 15 - pos: 41.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 832 - type: solid_wall - components: - - parent: 15 - pos: 40.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 833 - type: solid_wall - components: - - parent: 15 - pos: 39.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 834 - type: solid_wall - components: - - parent: 15 - pos: 39.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 835 - type: solid_wall - components: - - parent: 15 - pos: 39.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 836 - type: solid_wall - components: - - parent: 15 - pos: 39.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 837 - type: solid_wall - components: - - parent: 15 - pos: 38.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 838 - type: solid_wall - components: - - parent: 15 - pos: 37.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 839 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 840 - type: solid_wall - components: - - parent: 15 - pos: 35.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 841 - type: solid_wall - components: - - parent: 15 - pos: 34.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 842 - type: solid_wall - components: - - parent: 15 - pos: 33.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 843 - type: solid_wall - components: - - parent: 15 - pos: 32.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 844 - type: solid_wall - components: - - parent: 15 - pos: 31.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 845 - type: solid_wall - components: - - parent: 15 - pos: 30.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 846 - type: solid_wall - components: - - parent: 15 - pos: 29.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 847 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 848 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 849 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 850 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 851 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 852 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 853 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 854 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 855 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 856 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 857 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - uid: 858 - type: solid_wall + type: Catwalk components: - - parent: 15 - pos: 28.5,-18.5 + - parent: 857 + pos: 49.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 859 - type: solid_wall + type: Catwalk components: - - parent: 15 - pos: 28.5,-19.5 + - parent: 857 + pos: 48.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 860 - type: solid_wall + type: Catwalk components: - - parent: 15 - pos: 27.5,-19.5 + - parent: 857 + pos: 47.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 861 - type: solid_wall + type: Poweredlight components: - - parent: 15 - pos: 26.5,-19.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 52,-4.5 + rot: 3.141592653589793 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - uid: 862 - type: solid_wall + type: Poweredlight components: - - parent: 15 - pos: 25.5,-19.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 47,-4.5 type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - uid: 863 - type: solid_wall + type: LowWall components: - - parent: 15 - pos: 24.5,-19.5 + - parent: 857 + pos: -38.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 864 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 23.5,-19.5 + - parent: 857 + pos: 50.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 865 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 23.5,-20.5 + - parent: 857 + pos: 48.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 866 type: solid_wall components: - - parent: 15 - pos: 23.5,-21.5 + - parent: 857 + pos: 51.5,5.5 rot: -1.5707963267948966 rad type: Transform - uid: 867 type: solid_wall components: - - parent: 15 - pos: 45.5,8.5 + - parent: 857 + pos: 50.5,5.5 rot: -1.5707963267948966 rad type: Transform - uid: 868 - type: Wire + type: solid_wall components: - - parent: 15 - pos: 14.5,-23.5 + - parent: 857 + pos: 47.5,0.5 rot: -1.5707963267948966 rad type: Transform - uid: 869 type: solid_wall components: - - parent: 15 - pos: 0.5,-28.5 + - parent: 857 + pos: 47.5,-0.5 rot: -1.5707963267948966 rad type: Transform - uid: 870 type: solid_wall components: - - parent: 15 - pos: 0.5,-27.5 + - parent: 857 + pos: 46.5,0.5 rot: -1.5707963267948966 rad type: Transform - uid: 871 type: solid_wall components: - - parent: 15 - pos: 0.5,-26.5 + - parent: 857 + pos: 49.5,5.5 rot: -1.5707963267948966 rad type: Transform - uid: 872 - type: ReinforcedWindow + type: solid_wall components: - - parent: 15 - pos: 51.5,0.5 + - parent: 857 + pos: 51.5,4.5 rot: -1.5707963267948966 rad type: Transform - uid: 873 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 51.5,0.5 + - parent: 857 + pos: 47.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 874 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 18.5,-23.5 + - parent: 857 + pos: 51.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 875 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 19.5,-23.5 + - parent: 857 + pos: 52.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 876 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 13.5,-21.5 + - parent: 857 + pos: 52.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 877 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 12.5,-21.5 + - parent: 857 + pos: 52.5,-3.5 rot: -1.5707963267948966 rad type: Transform - uid: 878 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 1.5,-24.5 + - parent: 857 + pos: 52.5,-4.5 rot: -1.5707963267948966 rad type: Transform - uid: 879 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 0.5,-24.5 + - parent: 857 + pos: 52.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 880 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 0.5,-25.5 + - parent: 857 + pos: 52.5,-6.5 rot: -1.5707963267948966 rad type: Transform - uid: 881 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 8.5,-21.5 + - parent: 857 + pos: 52.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 882 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 7.5,-21.5 + - parent: 857 + pos: 51.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 883 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 6.5,-21.5 + - parent: 857 + pos: 50.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 884 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 6.5,-22.5 + - parent: 857 + pos: 49.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 885 - type: solid_wall + type: reinforced_wall components: - - parent: 15 - pos: 5.5,-22.5 + - parent: 857 + pos: 48.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 886 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 5.5,-23.5 + - parent: 857 + pos: 47.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 887 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 5.5,-24.5 + - parent: 857 + pos: 46.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 888 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 4.5,-24.5 + - parent: 857 + pos: 46.5,-6.5 rot: -1.5707963267948966 rad type: Transform - uid: 889 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 3.5,-24.5 + - parent: 857 + pos: 46.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 890 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 2.5,-24.5 + - parent: 857 + pos: 46.5,-4.5 rot: -1.5707963267948966 rad type: Transform - uid: 891 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 9.5,-21.5 + - parent: 857 + pos: 46.5,-3.5 rot: -1.5707963267948966 rad type: Transform - uid: 892 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 10.5,-21.5 + - parent: 857 + pos: 46.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 893 - type: LowWall + type: reinforced_wall components: - - parent: 15 - pos: 11.5,-21.5 + - parent: 857 + pos: 46.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 894 - type: solid_wall + type: GravityGenerator components: - - parent: 15 - pos: 45.5,10.5 + - parent: 857 + pos: 49.5,-4.5 rot: -1.5707963267948966 rad type: Transform - uid: 895 - type: LowWall + type: Table components: - - parent: 15 - pos: 34.5,7.5 + - parent: 857 + pos: -18.5,-9.5 rot: -1.5707963267948966 rad type: Transform - uid: 896 - type: LowWall + type: PoweredSmallLight components: - - parent: 15 - pos: 32.5,7.5 + - parent: 857 + pos: -12.5,-5 rot: -1.5707963267948966 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - uid: 897 - type: solid_wall + type: Poweredlight components: - - parent: 15 - pos: 31.5,7.5 + - parent: 857 + pos: -13.5,2 rot: -1.5707963267948966 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - uid: 898 - type: solid_wall + type: Poweredlight components: - - parent: 15 - pos: 30.5,7.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -13.5,-2 + rot: 1.5707963267948966 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer - uid: 899 - type: solid_wall + type: KitchenMicrowave components: - - parent: 15 - pos: 29.5,7.5 + - parent: 857 + pos: -14.5,-1.5 rot: -1.5707963267948966 rad type: Transform + - containers: + microwave_entity_container: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer - uid: 900 - type: solid_wall + type: Table components: - - parent: 15 - pos: 29.5,8.5 + - parent: 857 + pos: -14.5,-0.5 rot: -1.5707963267948966 rad type: Transform - uid: 901 - type: solid_wall + type: Table components: - - parent: 15 - pos: 29.5,9.5 + - parent: 857 + pos: -14.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 902 - type: solid_wall + type: Stool components: - - parent: 15 - pos: 28.5,7.5 + - parent: 857 + pos: -9.5,-3.5 rot: -1.5707963267948966 rad type: Transform + - anchored: False + type: Collidable - uid: 903 - type: solid_wall + type: PianoInstrument components: - - parent: 15 - pos: 30.5,6.5 + - parent: 857 + pos: -9.5,-4.5 rot: -1.5707963267948966 rad type: Transform + - anchored: False + type: Collidable - uid: 904 - type: solid_wall + type: VendingMachineTheater components: - - parent: 15 - pos: 30.5,2.5 + - parent: 857 + pos: -17.5,-9.5 rot: -1.5707963267948966 rad type: Transform - uid: 905 - type: solid_wall + type: SpawnPointSecurityOfficer components: - - parent: 15 - pos: 30.5,1.5 + - parent: 857 + pos: -11.5,8.5 rot: -1.5707963267948966 rad type: Transform - uid: 906 - type: LowWall + type: Table components: - - parent: 15 - pos: 32.5,1.5 + - parent: 857 + pos: -10.5,1.5 rot: -1.5707963267948966 rad type: Transform - uid: 907 - type: LowWall + type: Table components: - - parent: 15 - pos: 34.5,1.5 + - parent: 857 + pos: -10.5,0.5 rot: -1.5707963267948966 rad type: Transform - uid: 908 - type: LowWall + type: Table components: - - parent: 15 - pos: 30.5,4.5 + - parent: 857 + pos: -10.5,-0.5 rot: -1.5707963267948966 rad type: Transform - uid: 909 - type: LowWall + type: SpawnPointLatejoin components: - - parent: 15 - pos: 30.5,14.5 + - parent: 857 + pos: -36.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 910 - type: LowWall + type: Catwalk components: - - parent: 15 - pos: 30.5,15.5 + - parent: 857 + pos: -9.5,-7.5 rot: -1.5707963267948966 rad type: Transform - uid: 911 - type: LowWall + type: Catwalk components: - - parent: 15 - pos: 31.5,15.5 + - parent: 857 + pos: -17.5,-14.5 rot: -1.5707963267948966 rad type: Transform - uid: 912 - type: LowWall + type: Catwalk components: - - parent: 15 - pos: 32.5,15.5 + - parent: 857 + pos: -23.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 913 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 33.5,15.5 + - parent: 857 + pos: -14.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 914 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 34.5,15.5 + - parent: 857 + pos: -13.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 915 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 35.5,15.5 + - parent: 857 + pos: -12.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 916 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 36.5,15.5 + - parent: 857 + pos: -11.5,-5.5 rot: -1.5707963267948966 rad type: Transform - uid: 917 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 36.5,14.5 + - parent: 857 + pos: -10.5,-4.5 rot: -1.5707963267948966 rad type: Transform - uid: 918 type: solid_wall components: - - parent: 15 - pos: 29.5,11.5 + - parent: 857 + pos: -10.5,-3.5 rot: -1.5707963267948966 rad type: Transform - uid: 919 type: solid_wall components: - - parent: 15 - pos: 29.5,12.5 + - parent: 857 + pos: -14.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 920 type: solid_wall components: - - parent: 15 - pos: 29.5,13.5 + - parent: 857 + pos: -13.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 921 type: solid_wall components: - - parent: 15 - pos: 29.5,14.5 + - parent: 857 + pos: -11.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 922 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 19.5,16.5 + - parent: 857 + pos: -10.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 923 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 21.5,14.5 + - parent: 857 + pos: -15.5,-2.5 rot: -1.5707963267948966 rad type: Transform - uid: 924 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 23.5,14.5 + - parent: 857 + pos: -15.5,-1.5 rot: -1.5707963267948966 rad type: Transform - uid: 925 type: solid_wall components: - - parent: 15 - pos: 25.5,14.5 + - parent: 857 + pos: -15.5,-0.5 rot: -1.5707963267948966 rad type: Transform - uid: 926 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 19.5,14.5 + - parent: 857 + pos: -15.5,-3.5 rot: -1.5707963267948966 rad type: Transform - uid: 927 - type: ReinforcedWindow + type: solid_wall components: - - parent: 15 - pos: 21.5,15.5 + - parent: 857 + pos: -15.5,1.5 rot: -1.5707963267948966 rad type: Transform - uid: 928 type: solid_wall components: - - parent: 15 - pos: 25.5,13.5 + - parent: 857 + pos: -12.5,2.5 rot: -1.5707963267948966 rad type: Transform - uid: 929 type: solid_wall components: - - parent: 15 - pos: 25.5,12.5 + - parent: 857 + pos: -13.5,2.5 rot: -1.5707963267948966 rad type: Transform - uid: 930 type: solid_wall components: - - parent: 15 - pos: 25.5,11.5 + - parent: 857 + pos: -14.5,2.5 rot: -1.5707963267948966 rad type: Transform - uid: 931 type: solid_wall components: - - parent: 15 - pos: 25.5,10.5 + - parent: 857 + pos: -15.5,2.5 rot: -1.5707963267948966 rad type: Transform - uid: 932 type: solid_wall components: - - parent: 15 - pos: 25.5,8.5 + - parent: 857 + pos: -20.5,-8.5 rot: -1.5707963267948966 rad type: Transform - uid: 933 type: solid_wall components: - - parent: 15 - pos: 25.5,7.5 + - parent: 857 + pos: -17.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 934 type: solid_wall components: - - parent: 15 - pos: 26.5,7.5 + - parent: 857 + pos: -18.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 935 type: solid_wall components: - - parent: 15 - pos: 24.5,7.5 + - parent: 857 + pos: -19.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 936 type: solid_wall components: - - parent: 15 - pos: 24.5,6.5 + - parent: 857 + pos: -20.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 937 type: solid_wall components: - - parent: 15 - pos: 23.5,6.5 + - parent: 857 + pos: -20.5,-9.5 rot: -1.5707963267948966 rad type: Transform - uid: 938 - type: solid_wall + type: Brutepack components: - - parent: 15 - pos: 18.5,6.5 + - parent: 857 + pos: 7.370505,-3.4650035 rot: -1.5707963267948966 rad type: Transform + - anchored: False + type: Collidable - uid: 939 - type: solid_wall + type: TrashSpawner components: - - parent: 15 - pos: 17.5,6.5 + - parent: 857 + pos: 7.5,13.5 rot: -1.5707963267948966 rad type: Transform - uid: 940 - type: solid_wall + type: SignBar components: - - parent: 15 - pos: 17.5,7.5 + - parent: 857 + pos: -4.6859417,2.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 941 - type: solid_wall + type: SignSmoking components: - - parent: 15 - pos: 17.5,8.5 + - parent: 857 + pos: 23.462582,6.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 942 type: solid_wall components: - - parent: 15 - pos: 17.5,9.5 + - parent: 857 + pos: -16.5,-6.5 rot: -1.5707963267948966 rad type: Transform - uid: 943 type: solid_wall components: - - parent: 15 - pos: 16.5,8.5 + - parent: 857 + pos: -0.5,-6.5 rot: -1.5707963267948966 rad type: Transform - uid: 944 type: solid_wall components: - - parent: 15 - pos: 12.5,8.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 33.5,11.5 + rot: 1.5707963267948966 rad type: Transform - uid: 945 - type: LowWall + type: SignDirectionalBridge components: - - parent: 15 - pos: 19.5,6.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 5.641159,-12.7475605 + rot: 1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 946 - type: LowWall + type: Brutepack components: - - parent: 15 - pos: 20.5,6.5 + - parent: 857 + pos: 6.97988,-3.2306285 rot: -1.5707963267948966 rad type: Transform + - anchored: False + type: Collidable - uid: 947 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 21.5,6.5 + - parent: 857 + pos: -26.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 948 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 22.5,6.5 + - parent: 857 + pos: -27.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 949 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 23.5,15.5 + - parent: 857 + pos: -28.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 950 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 23.5,16.5 + - parent: 857 + pos: -29.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 951 - type: SignDirectionalBridge + type: solid_wall components: - - parent: 15 - pos: -20.49181,6.256847 + - parent: 857 + pos: -30.5,-12.5 + rot: -1.5707963267948966 rad type: Transform - uid: 952 - type: SignDirectionalSec + type: solid_wall components: - - parent: 15 - pos: 5.9947615,6.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -31.5,-12.5 + rot: -1.5707963267948966 rad type: Transform - uid: 953 - type: LowWall + type: solid_wall components: - - parent: 15 - pos: 19.5,15.5 + - parent: 857 + pos: -32.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 954 type: solid_wall components: - - parent: 15 - pos: -0.5,-7.5 + - parent: 857 + pos: -33.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 955 type: solid_wall components: - - parent: 15 - pos: -19.5,-16.5 + - parent: 857 + pos: -34.5,-12.5 rot: -1.5707963267948966 rad type: Transform - uid: 956 type: solid_wall components: - - parent: 15 - pos: -21.5,-16.5 + - parent: 857 + pos: -34.5,-11.5 rot: -1.5707963267948966 rad type: Transform - uid: 957 type: solid_wall components: - - parent: 15 - pos: 17.5,12.5 + - parent: 857 + pos: -34.5,-10.5 rot: -1.5707963267948966 rad type: Transform - uid: 958 type: solid_wall components: - - parent: 15 - pos: 17.5,13.5 + - parent: 857 + pos: -34.5,-9.5 rot: -1.5707963267948966 rad type: Transform - uid: 959 - type: solid_wall + type: Paper components: - - parent: 15 - pos: 17.5,14.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 9.699392,17.630365 + rot: 3.141592653589793 rad type: Transform + - anchored: False + type: Collidable - uid: 960 - type: solid_wall + type: ChairOfficeDark components: - - parent: 15 - pos: 17.5,15.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 10.5,17.5 + rot: 3.141592653589793 rad type: Transform + - anchored: False + type: Collidable - uid: 961 - type: solid_wall + type: Chair components: - - parent: 15 - pos: 16.5,16.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: 8.5,17.5 type: Transform + - anchored: False + type: Collidable - uid: 962 - type: solid_wall + type: Table components: - - parent: 15 - pos: 17.5,16.5 + - parent: 857 + pos: 9.5,17.5 rot: -1.5707963267948966 rad type: Transform - uid: 963 - type: solid_wall - components: - - parent: 15 - pos: 16.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 964 - type: solid_wall - components: - - parent: 15 - pos: 15.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 965 - type: solid_wall - components: - - parent: 15 - pos: 14.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 966 - type: solid_wall - components: - - parent: 15 - pos: 13.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 967 - type: solid_wall - components: - - parent: 15 - pos: 12.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 968 - type: solid_wall - components: - - parent: 15 - pos: 11.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 969 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 970 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 971 - type: reinforced_wall - components: - - parent: 15 - pos: 9.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 972 - type: reinforced_wall - components: - - parent: 15 - pos: 7.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 973 - type: reinforced_wall - components: - - parent: 15 - pos: 6.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 974 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 975 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 976 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 977 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 978 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 979 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 980 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 981 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 982 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 983 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 984 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 985 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 986 - type: reinforced_wall - components: - - parent: 15 - pos: 11.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 987 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 988 - type: reinforced_wall - components: - - parent: 15 - pos: 6.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 989 - type: LowWall - components: - - parent: 15 - pos: 8.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 990 - type: solid_wall - components: - - parent: 15 - pos: 14.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 991 - type: solid_wall - components: - - parent: 15 - pos: 14.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 992 - type: solid_wall - components: - - parent: 15 - pos: 14.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 993 - type: ReinforcedWindow - components: - - parent: 15 - pos: 19.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 994 - type: ReinforcedWindow - components: - - parent: 15 - pos: 19.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 995 - type: ReinforcedWindow - components: - - parent: 15 - pos: 19.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 996 - type: solid_wall - components: - - parent: 15 - pos: 14.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 997 - type: solid_wall - components: - - parent: 15 - pos: 14.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 998 - type: solid_wall - components: - - parent: 15 - pos: 13.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 999 - type: solid_wall - components: - - parent: 15 - pos: 12.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1000 - type: solid_wall - components: - - parent: 15 - pos: 11.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1001 - type: solid_wall - components: - - parent: 15 - pos: 11.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1002 - type: solid_wall - components: - - parent: 15 - pos: 11.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1003 - type: solid_wall - components: - - parent: 15 - pos: 11.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1004 - type: solid_wall - components: - - parent: 15 - pos: 11.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1005 - type: solid_wall - components: - - parent: 15 - pos: 11.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1006 - type: solid_wall - components: - - parent: 15 - pos: 11.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1007 - type: solid_wall - components: - - parent: 15 - pos: 10.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1008 - type: solid_wall - components: - - parent: 15 - pos: 9.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1009 - type: Wire - components: - - parent: 15 - pos: 8.5,16.5 - type: Transform -- uid: 1010 - type: Wire - components: - - parent: 15 - pos: 8.5,17.5 - type: Transform -- uid: 1011 - type: solid_wall - components: - - parent: 15 - pos: 6.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1012 - type: solid_wall - components: - - parent: 15 - pos: 5.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1013 - type: solid_wall - components: - - parent: 15 - pos: 6.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1014 - type: solid_wall - components: - - parent: 15 - pos: 5.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1015 - type: solid_wall - components: - - parent: 15 - pos: 6.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1016 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1017 - type: reinforced_wall - components: - - parent: 15 - pos: 9.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1018 - type: reinforced_wall - components: - - parent: 15 - pos: 8.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1019 - type: reinforced_wall - components: - - parent: 15 - pos: 7.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1020 - type: reinforced_wall - components: - - parent: 15 - pos: 6.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1021 - type: reinforced_wall - components: - - parent: 15 - pos: 5.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1022 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1023 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1024 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1025 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1026 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1027 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1028 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1029 - type: reinforced_wall - components: - - parent: 15 - pos: 10.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1030 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1031 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1032 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1033 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1034 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1035 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1036 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1037 - type: reinforced_wall - components: - - parent: 15 - pos: 0.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1038 - type: reinforced_wall - components: - - parent: 15 - pos: -0.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1039 - type: AirlockCommandLocked - components: - - name: Head of Personnel's Office - type: MetaData - - parent: 15 - pos: 6.5,17.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - HeadOfPersonnel - type: AccessReader -- uid: 1040 - type: reinforced_wall - components: - - parent: 15 - pos: -2.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1041 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1042 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1043 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1044 - type: solid_wall - components: - - parent: 15 - pos: 1.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1045 - type: solid_wall - components: - - parent: 15 - pos: 1.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1046 - type: solid_wall - components: - - parent: 15 - pos: 0.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1047 - type: solid_wall - components: - - parent: 15 - pos: -2.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1048 - type: solid_wall - components: - - parent: 15 - pos: 1.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1049 - type: solid_wall - components: - - parent: 15 - pos: 5.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1050 - type: solid_wall - components: - - parent: 15 - pos: 5.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1051 - type: solid_wall - components: - - parent: 15 - pos: 5.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1052 - type: solid_wall - components: - - parent: 15 - pos: 5.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1053 - type: solid_wall - components: - - parent: 15 - pos: 6.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1054 - type: solid_wall - components: - - parent: 15 - pos: 7.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1055 - type: solid_wall - components: - - parent: 15 - pos: 8.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1056 - type: solid_wall - components: - - parent: 15 - pos: 9.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1057 - type: LowWall - components: - - parent: 15 - pos: 3.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1058 - type: LowWall - components: - - parent: 15 - pos: -1.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1059 - type: LowWall - components: - - parent: 15 - pos: -0.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1060 - type: LowWall - components: - - parent: 15 - pos: -3.5,29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1061 - type: LowWall - components: - - parent: 15 - pos: 10.5,29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1062 - type: LowWall - components: - - parent: 15 - pos: 9.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1063 - type: LowWall - components: - - parent: 15 - pos: 9.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1064 - type: LowWall - components: - - parent: 15 - pos: 8.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1065 - type: LowWall - components: - - parent: 15 - pos: 8.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1066 - type: LowWall - components: - - parent: 15 - pos: 7.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1067 - type: LowWall - components: - - parent: 15 - pos: 6.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1068 - type: LowWall - components: - - parent: 15 - pos: 5.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1069 - type: LowWall - components: - - parent: 15 - pos: 4.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1070 - type: LowWall - components: - - parent: 15 - pos: 3.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1071 - type: LowWall - components: - - parent: 15 - pos: 2.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1072 - type: LowWall - components: - - parent: 15 - pos: 1.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1073 - type: LowWall - components: - - parent: 15 - pos: 0.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1074 - type: LowWall - components: - - parent: 15 - pos: -0.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1075 - type: LowWall - components: - - parent: 15 - pos: -1.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1076 - type: LowWall - components: - - parent: 15 - pos: -1.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1077 - type: LowWall - components: - - parent: 15 - pos: -2.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1078 - type: LowWall - components: - - parent: 15 - pos: -2.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1079 - type: LowWall - components: - - parent: 15 - pos: 6.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1080 - type: LowWall - components: - - parent: 15 - pos: 6.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1081 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1082 - type: reinforced_wall - components: - - parent: 15 - pos: 0.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1083 - type: reinforced_wall - components: - - parent: 15 - pos: -0.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1084 - type: reinforced_wall - components: - - parent: 15 - pos: -1.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1085 - type: reinforced_wall - components: - - parent: 15 - pos: -2.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1086 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1087 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1088 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1089 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1090 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1091 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1092 - type: reinforced_wall - components: - - parent: 15 - pos: -5.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1093 - type: LowWall - components: - - parent: 15 - pos: -7.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1094 - type: reinforced_wall - components: - - parent: 15 - pos: -3.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1095 - type: reinforced_wall - components: - - parent: 15 - pos: -2.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1096 - type: reinforced_wall - components: - - parent: 15 - pos: -1.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1097 - type: reinforced_wall - components: - - parent: 15 - pos: -0.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1098 - type: reinforced_wall - components: - - parent: 15 - pos: 0.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1099 - type: reinforced_wall - components: - - parent: 15 - pos: 0.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1100 - type: reinforced_wall - components: - - parent: 15 - pos: 0.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1101 - type: reinforced_wall - components: - - parent: 15 - pos: -5.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1102 - type: reinforced_wall - components: - - parent: 15 - pos: -5.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1103 - type: reinforced_wall - components: - - parent: 15 - pos: -5.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1104 - type: reinforced_wall - components: - - parent: 15 - pos: -6.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1105 - type: reinforced_wall - components: - - parent: 15 - pos: -7.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1106 - type: reinforced_wall - components: - - parent: 15 - pos: -8.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1107 - type: reinforced_wall - components: - - parent: 15 - pos: -9.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1108 - type: Wire - components: - - parent: 15 - pos: -13.5,15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1109 - type: reinforced_wall - components: - - parent: 15 - pos: -11.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1110 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1111 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1112 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1113 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1114 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1115 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1116 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1117 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1118 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1119 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1120 - type: reinforced_wall - components: - - parent: 15 - pos: -11.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1121 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1122 - type: Wire - components: - - parent: 15 - pos: -9.5,26.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1123 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1124 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1125 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1126 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1127 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1128 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1129 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1130 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1131 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1132 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1133 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1134 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1135 - type: reinforced_wall - components: - - parent: 15 - pos: -11.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1136 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1137 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1138 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1139 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1140 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1141 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1142 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1143 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1144 - type: reinforced_wall - components: - - parent: 15 - pos: -11.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1145 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1146 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1147 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1148 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1149 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1150 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1151 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1152 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1153 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1154 - type: AirlockMaintSecLocked - components: - - parent: 15 - pos: -14.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1155 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1156 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1157 - type: solid_wall - components: - - parent: 15 - pos: -6.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1158 - type: LowWall - components: - - parent: 15 - pos: -10.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1159 - type: solid_wall - components: - - parent: 15 - pos: -9.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1160 - type: solid_wall - components: - - parent: 15 - pos: -10.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1161 - type: solid_wall - components: - - parent: 15 - pos: -10.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1162 - type: solid_wall - components: - - parent: 15 - pos: -10.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1163 - type: solid_wall - components: - - parent: 15 - pos: -11.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1164 - type: solid_wall - components: - - parent: 15 - pos: -12.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1165 - type: solid_wall - components: - - parent: 15 - pos: -13.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1166 - type: solid_wall - components: - - parent: 15 - pos: -5.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1167 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1168 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1169 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1170 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1171 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1172 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1173 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1174 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1175 - type: reinforced_wall - components: - - parent: 15 - pos: 1.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1176 - type: reinforced_wall - components: - - parent: 15 - pos: -4.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1177 - type: reinforced_wall - components: - - parent: 15 - pos: -1.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1178 - type: reinforced_wall - components: - - parent: 15 - pos: -7.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1179 - type: solid_wall - components: - - parent: 15 - pos: -4.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1180 - type: solid_wall - components: - - parent: 15 - pos: -4.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1181 - type: solid_wall - components: - - parent: 15 - pos: -4.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1182 - type: solid_wall - components: - - parent: 15 - pos: -1.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1183 - type: solid_wall - components: - - parent: 15 - pos: -1.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1184 - type: solid_wall - components: - - parent: 15 - pos: -1.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1185 - type: LowWall - components: - - parent: 15 - pos: -0.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1186 - type: LowWall - components: - - parent: 15 - pos: -3.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1187 - type: LowWall - components: - - parent: 15 - pos: -7.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1188 - type: LowWall - components: - - parent: 15 - pos: -8.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1189 - type: solid_wall - components: - - parent: 15 - pos: -15.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1190 - type: solid_wall - components: - - parent: 15 - pos: -17.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1191 - type: solid_wall - components: - - parent: 15 - pos: -18.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1192 - type: solid_wall - components: - - parent: 15 - pos: -18.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1193 - type: solid_wall - components: - - parent: 15 - pos: -18.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1194 - type: solid_wall - components: - - parent: 15 - pos: -18.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1195 - type: solid_wall - components: - - parent: 15 - pos: -18.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1196 - type: solid_wall - components: - - parent: 15 - pos: -18.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1197 - type: solid_wall - components: - - parent: 15 - pos: -19.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1198 - type: solid_wall - components: - - parent: 15 - pos: -18.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1199 - type: solid_wall - components: - - parent: 15 - pos: -19.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1200 - type: solid_wall - components: - - parent: 15 - pos: -19.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1201 - type: solid_wall - components: - - parent: 15 - pos: -19.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1202 - type: solid_wall - components: - - parent: 15 - pos: -19.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1203 - type: solid_wall - components: - - parent: 15 - pos: -19.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1204 - type: solid_wall - components: - - parent: 15 - pos: -19.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1205 - type: solid_wall - components: - - parent: 15 - pos: -19.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1206 - type: solid_wall - components: - - parent: 15 - pos: -19.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1207 - type: solid_wall - components: - - parent: 15 - pos: -19.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1208 - type: solid_wall - components: - - parent: 15 - pos: -19.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1209 - type: solid_wall - components: - - parent: 15 - pos: -19.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1210 - type: solid_wall - components: - - parent: 15 - pos: -19.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1211 - type: solid_wall - components: - - parent: 15 - pos: -19.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1212 - type: solid_wall - components: - - parent: 15 - pos: -18.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1213 - type: solid_wall - components: - - parent: 15 - pos: -17.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1214 - type: solid_wall - components: - - parent: 15 - pos: -16.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1215 - type: solid_wall - components: - - parent: 15 - pos: -15.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1216 - type: solid_wall - components: - - parent: 15 - pos: -14.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1217 - type: solid_wall - components: - - parent: 15 - pos: -13.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1218 - type: solid_wall - components: - - parent: 15 - pos: -12.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1219 - type: solid_wall - components: - - parent: 15 - pos: -11.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1220 - type: solid_wall - components: - - parent: 15 - pos: -10.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1221 - type: solid_wall - components: - - parent: 15 - pos: -9.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1222 - type: solid_wall - components: - - parent: 15 - pos: -8.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1223 - type: solid_wall - components: - - parent: 15 - pos: -7.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1224 - type: solid_wall - components: - - parent: 15 - pos: -6.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1225 - type: solid_wall - components: - - parent: 15 - pos: -6.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1226 - type: solid_wall - components: - - parent: 15 - pos: -4.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1227 - type: solid_wall - components: - - parent: 15 - pos: -5.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1228 - type: solid_wall - components: - - parent: 15 - pos: -20.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1229 - type: solid_wall - components: - - parent: 15 - pos: -21.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1230 - type: solid_wall - components: - - parent: 15 - pos: -22.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1231 - type: solid_wall - components: - - parent: 15 - pos: -23.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1232 - type: solid_wall - components: - - parent: 15 - pos: -24.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1233 - type: solid_wall - components: - - parent: 15 - pos: -25.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1234 - type: solid_wall - components: - - parent: 15 - pos: -26.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1235 - type: solid_wall - components: - - parent: 15 - pos: -27.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1236 - type: solid_wall - components: - - parent: 15 - pos: -28.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1237 - type: solid_wall - components: - - parent: 15 - pos: -29.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1238 - type: solid_wall - components: - - parent: 15 - pos: -30.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1239 - type: solid_wall - components: - - parent: 15 - pos: -31.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1240 - type: solid_wall - components: - - parent: 15 - pos: -32.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1241 - type: solid_wall - components: - - parent: 15 - pos: -33.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1242 - type: solid_wall - components: - - parent: 15 - pos: -33.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1243 - type: solid_wall - components: - - parent: 15 - pos: -33.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1244 - type: solid_wall - components: - - parent: 15 - pos: -33.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1245 - type: solid_wall - components: - - parent: 15 - pos: -33.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1246 - type: solid_wall - components: - - parent: 15 - pos: -33.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1247 - type: APC - components: - - parent: 15 - pos: -34.5,-5.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1248 - type: solid_wall - components: - - parent: 15 - pos: -33.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1249 - type: solid_wall - components: - - parent: 15 - pos: -33.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1250 - type: solid_wall - components: - - parent: 15 - pos: -32.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1251 - type: solid_wall - components: - - parent: 15 - pos: -31.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1252 - type: solid_wall - components: - - parent: 15 - pos: -30.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1253 - type: LowWall - components: - - parent: 15 - pos: -28.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1254 - type: Window - components: - - parent: 15 - pos: -8.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1255 - type: Window - components: - - parent: 15 - pos: -7.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1256 - type: solid_wall - components: - - parent: 15 - pos: -26.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1257 - type: solid_wall - components: - - parent: 15 - pos: -26.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1258 - type: solid_wall - components: - - parent: 15 - pos: -25.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1259 - type: solid_wall - components: - - parent: 15 - pos: -30.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1260 - type: solid_wall - components: - - parent: 15 - pos: -30.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1261 - type: solid_wall - components: - - parent: 15 - pos: -30.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1262 - type: solid_wall - components: - - parent: 15 - pos: -30.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1263 - type: solid_wall - components: - - parent: 15 - pos: -30.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1264 - type: solid_wall - components: - - parent: 15 - pos: -30.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1265 - type: solid_wall - components: - - parent: 15 - pos: -28.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1266 - type: solid_wall - components: - - parent: 15 - pos: -27.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1267 - type: solid_wall - components: - - parent: 15 - pos: -26.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1268 - type: solid_wall - components: - - parent: 15 - pos: -25.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1269 - type: solid_wall - components: - - parent: 15 - pos: -24.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1270 - type: solid_wall - components: - - parent: 15 - pos: -23.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1271 - type: solid_wall - components: - - parent: 15 - pos: -22.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1272 - type: solid_wall - components: - - parent: 15 - pos: -29.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1273 - type: solid_wall - components: - - parent: 15 - pos: -22.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1274 - type: solid_wall - components: - - parent: 15 - pos: -22.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1275 - type: solid_wall - components: - - parent: 15 - pos: -21.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1276 - type: solid_wall - components: - - parent: 15 - pos: -22.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1277 - type: solid_wall - components: - - parent: 15 - pos: -22.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1278 - type: solid_wall - components: - - parent: 15 - pos: -22.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1279 - type: solid_wall - components: - - parent: 15 - pos: -21.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1280 - type: solid_wall - components: - - parent: 15 - pos: -21.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1281 - type: solid_wall - components: - - parent: 15 - pos: -20.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1282 - type: solid_wall - components: - - parent: 15 - pos: -19.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1283 - type: solid_wall - components: - - parent: 15 - pos: -25.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1284 - type: LowWall - components: - - parent: 15 - pos: -25.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1285 - type: LowWall - components: - - parent: 15 - pos: -2.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1286 - type: LowWall - components: - - parent: 15 - pos: -3.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1287 - type: LowWall - components: - - parent: 15 - pos: -0.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1288 - type: LowWall - components: - - parent: 15 - pos: 0.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1289 - type: LowWall - components: - - parent: 15 - pos: 14.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1290 - type: solid_wall - components: - - parent: 15 - pos: 30.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1291 - type: solid_wall - components: - - parent: 15 - pos: 30.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1292 - type: solid_wall - components: - - parent: 15 - pos: 29.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1293 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1294 - type: solid_wall - components: - - parent: 15 - pos: 27.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1295 - type: solid_wall - components: - - parent: 15 - pos: 26.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1296 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1297 - type: solid_wall - components: - - parent: 15 - pos: 24.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1298 - type: solid_wall - components: - - parent: 15 - pos: 24.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1299 - type: solid_wall - components: - - parent: 15 - pos: 24.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1300 - type: solid_wall - components: - - parent: 15 - pos: 24.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1301 - type: solid_wall - components: - - parent: 15 - pos: 23.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1302 - type: solid_wall - components: - - parent: 15 - pos: 22.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1303 - type: solid_wall - components: - - parent: 15 - pos: 19.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1304 - type: solid_wall - components: - - parent: 15 - pos: 18.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1305 - type: solid_wall - components: - - parent: 15 - pos: 17.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1306 - type: solid_wall - components: - - parent: 15 - pos: 16.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1307 - type: solid_wall - components: - - parent: 15 - pos: 15.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1308 - type: solid_wall - components: - - parent: 15 - pos: 14.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1309 - type: solid_wall - components: - - parent: 15 - pos: 13.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1310 - type: solid_wall - components: - - parent: 15 - pos: 12.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1311 - type: solid_wall - components: - - parent: 15 - pos: 6.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1312 - type: solid_wall - components: - - parent: 15 - pos: 5.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1313 - type: solid_wall - components: - - parent: 15 - pos: 5.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1314 - type: solid_wall - components: - - parent: 15 - pos: 20.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1315 - type: solid_wall - components: - - parent: 15 - pos: 19.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1316 - type: solid_wall - components: - - parent: 15 - pos: 19.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1317 - type: solid_wall - components: - - parent: 15 - pos: 19.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1318 - type: solid_wall - components: - - parent: 15 - pos: 19.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1319 - type: solid_wall - components: - - parent: 15 - pos: 19.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1320 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1321 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1322 - type: solid_wall - components: - - parent: 15 - pos: 14.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1323 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1324 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1325 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1326 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1327 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1328 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1329 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1330 - type: solid_wall - components: - - parent: 15 - pos: 5.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1331 - type: LowWall - components: - - parent: 15 - pos: 5.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1332 - type: LowWall - components: - - parent: 15 - pos: 5.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1333 - type: LowWall - components: - - parent: 15 - pos: 5.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1334 - type: LowWall - components: - - parent: 15 - pos: 13.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1335 - type: LowWall - components: - - parent: 15 - pos: 13.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1336 - type: LowWall - components: - - parent: 15 - pos: 13.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1337 - type: LowWall - components: - - parent: 15 - pos: 16.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1338 - type: LowWall - components: - - parent: 15 - pos: 11.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1339 - type: LowWall - components: - - parent: 15 - pos: 10.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1340 - type: LowWall - components: - - parent: 15 - pos: 9.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1341 - type: LowWall - components: - - parent: 15 - pos: 8.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1342 - type: LowWall - components: - - parent: 15 - pos: 7.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1343 - type: LowWall - components: - - parent: 15 - pos: 6.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1344 - type: LowWall - components: - - parent: 15 - pos: 9.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1345 - type: LowWall - components: - - parent: 15 - pos: 8.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1346 - type: LowWall - components: - - parent: 15 - pos: 13.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1347 - type: LowWall - components: - - parent: 15 - pos: 13.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1348 - type: LowWall - components: - - parent: 15 - pos: 12.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1349 - type: LowWall - components: - - parent: 15 - pos: 18.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1350 - type: solid_wall - components: - - parent: 15 - pos: 19.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1351 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1352 - type: solid_wall - components: - - parent: 15 - pos: 21.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1353 - type: solid_wall - components: - - parent: 15 - pos: 22.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1354 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1355 - type: solid_wall - components: - - parent: 15 - pos: 24.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1356 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1357 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1358 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1359 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1360 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1361 - type: solid_wall - components: - - parent: 15 - pos: 24.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1362 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1363 - type: solid_wall - components: - - parent: 15 - pos: 22.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1364 - type: solid_wall - components: - - parent: 15 - pos: 21.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1365 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1366 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1367 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1368 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1369 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1370 - type: Window - components: - - parent: 15 - pos: 20.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1371 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1372 - type: solid_wall - components: - - parent: 15 - pos: 21.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1373 - type: solid_wall - components: - - parent: 15 - pos: 22.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1374 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1375 - type: solid_wall - components: - - parent: 15 - pos: 24.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1376 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1377 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1378 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1379 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1380 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1381 - type: solid_wall - components: - - parent: 15 - pos: 25.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1382 - type: solid_wall - components: - - parent: 15 - pos: 24.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1383 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1384 - type: solid_wall - components: - - parent: 15 - pos: 22.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1385 - type: solid_wall - components: - - parent: 15 - pos: 21.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1386 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1387 - type: Window - components: - - parent: 15 - pos: 20.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1388 - type: solid_wall - components: - - parent: 15 - pos: 15.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1389 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1390 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1391 - type: solid_wall - components: - - parent: 15 - pos: 46.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1392 - type: solid_wall - components: - - parent: 15 - pos: 45.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1393 - type: solid_wall - components: - - parent: 15 - pos: 48.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1394 - type: LowWall - components: - - parent: 15 - pos: 20.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1395 - type: LowWall - components: - - parent: 15 - pos: 20.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1396 - type: LowWall - components: - - parent: 15 - pos: 11.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1397 - type: LowWall - components: - - parent: 15 - pos: 11.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1398 - type: LowWall - components: - - parent: 15 - pos: 9.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1399 - type: Window - components: - - parent: 15 - pos: 9.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1400 - type: solid_wall - components: - - parent: 15 - pos: 11.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1401 - type: Window - components: - - parent: 15 - pos: 11.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1402 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1403 - type: Window - components: - - parent: 15 - pos: 20.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1404 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1405 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1406 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1407 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1408 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1409 - type: solid_wall - components: - - parent: 15 - pos: 7.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1410 - type: solid_wall - components: - - parent: 15 - pos: 8.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1411 - type: solid_wall - components: - - parent: 15 - pos: 9.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1412 - type: solid_wall - components: - - parent: 15 - pos: 10.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1413 - type: solid_wall - components: - - parent: 15 - pos: 11.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1414 - type: Window - components: - - parent: 15 - pos: 11.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1415 - type: solid_wall - components: - - parent: 15 - pos: 11.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1416 - type: solid_wall - components: - - parent: 15 - pos: 12.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1417 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1418 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1419 - type: solid_wall - components: - - parent: 15 - pos: 6.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1420 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1421 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1422 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1423 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1424 - type: solid_wall - components: - - parent: 15 - pos: 28.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1425 - type: solid_wall - components: - - parent: 15 - pos: 29.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1426 - type: solid_wall - components: - - parent: 15 - pos: 30.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1427 - type: solid_wall - components: - - parent: 15 - pos: 31.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1428 - type: solid_wall - components: - - parent: 15 - pos: 32.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1429 - type: solid_wall - components: - - parent: 15 - pos: 34.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1430 - type: solid_wall - components: - - parent: 15 - pos: 35.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1431 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1432 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1433 - type: solid_wall - components: - - parent: 15 - pos: 36.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1434 - type: solid_wall - components: - - parent: 15 - pos: 1.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1435 - type: solid_wall - components: - - parent: 15 - pos: 1.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1436 - type: solid_wall - components: - - parent: 15 - pos: 0.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1437 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1438 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1439 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1440 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1441 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1442 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1443 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1444 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1445 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1446 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1447 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1448 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1449 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1450 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1451 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1452 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1453 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1454 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1455 - type: solid_wall - components: - - parent: 15 - pos: -5.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1456 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1457 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1458 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1459 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1460 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1461 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1462 - type: solid_wall - components: - - parent: 15 - pos: -3.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1463 - type: AirlockServiceLocked - components: - - name: Freezer - type: MetaData - - parent: 15 - pos: -12.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1464 - type: solid_wall - components: - - parent: 15 - pos: -5.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1465 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1466 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1467 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1468 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1469 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1470 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1471 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1472 - type: LowWall - components: - - parent: 15 - pos: -2.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1473 - type: LowWall - components: - - parent: 15 - pos: -4.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1474 - type: LowWall - components: - - parent: 15 - pos: 0.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1475 - type: solid_wall - components: - - parent: 15 - pos: -7.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1476 - type: solid_wall - components: - - parent: 15 - pos: 1.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1477 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1478 - type: solid_wall - components: - - parent: 15 - pos: 0.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1479 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1480 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1481 - type: LowWall - components: - - parent: 15 - pos: -4.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1482 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1483 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1484 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1485 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1486 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1487 - type: solid_wall - components: - - parent: 15 - pos: -3.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1488 - type: solid_wall - components: - - parent: 15 - pos: -4.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1489 - type: solid_wall - components: - - parent: 15 - pos: -5.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1490 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1491 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1492 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1493 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1494 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1495 - type: LowWall - components: - - parent: 15 - pos: -2.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1496 - type: LowWall - components: - - parent: 15 - pos: -5.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1497 - type: solid_wall - components: - - parent: 15 - pos: -9.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1498 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1499 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1500 - type: reinforced_wall - components: - - parent: 15 - pos: -14.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1501 - type: reinforced_wall - components: - - parent: 15 - pos: -15.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1502 - type: reinforced_wall - components: - - parent: 15 - pos: -16.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1503 - type: reinforced_wall - components: - - parent: 15 - pos: -17.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1504 - type: reinforced_wall - components: - - parent: 15 - pos: -18.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1505 - type: reinforced_wall - components: - - parent: 15 - pos: -18.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1506 - type: reinforced_wall - components: - - parent: 15 - pos: -18.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1507 - type: reinforced_wall - components: - - parent: 15 - pos: -18.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1508 - type: reinforced_wall - components: - - parent: 15 - pos: -18.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1509 - type: reinforced_wall - components: - - parent: 15 - pos: -17.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1510 - type: reinforced_wall - components: - - parent: 15 - pos: -13.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1511 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1512 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1513 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1514 - type: reinforced_wall - components: - - parent: 15 - pos: -12.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1515 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1516 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1517 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1518 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1519 - type: solid_wall - components: - - parent: 15 - pos: -5.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1520 - type: solid_wall - components: - - parent: 15 - pos: -4.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1521 - type: solid_wall - components: - - parent: 15 - pos: -3.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1522 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1523 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1524 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1525 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1526 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1527 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1528 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1529 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1530 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1531 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1532 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1533 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1534 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1535 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1536 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1537 - type: solid_wall - components: - - parent: 15 - pos: -9.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1538 - type: solid_wall - components: - - parent: 15 - pos: -8.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1539 - type: solid_wall - components: - - parent: 15 - pos: -7.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1540 - type: solid_wall - components: - - parent: 15 - pos: -13.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1541 - type: solid_wall - components: - - parent: 15 - pos: -14.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1542 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1543 - type: solid_wall - components: - - parent: 15 - pos: -17.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1544 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1545 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1546 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1547 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1548 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1549 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1550 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1551 type: Table components: - - parent: 15 - pos: 6.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1552 - type: Table - components: - - parent: 15 - pos: 5.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1553 - type: VendingMachineCoffee - components: - - parent: 15 - pos: 5.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1554 - type: ToolboxElectricalFilled - components: - - parent: 15 - pos: 8.259691,28.555487 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 1555 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1556 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1557 - type: solid_wall - components: - - parent: 15 - pos: -14.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1558 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1559 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1560 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1561 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1562 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1563 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1564 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1565 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1566 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1567 - type: solid_wall - components: - - parent: 15 - pos: -13.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1568 - type: solid_wall - components: - - parent: 15 - pos: -14.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1569 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1570 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1571 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1572 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1573 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1574 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1575 - type: solid_wall - components: - - parent: 15 - pos: -9.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1576 - type: solid_wall - components: - - parent: 15 - pos: -8.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1577 - type: solid_wall - components: - - parent: 15 - pos: -7.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1578 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1579 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1580 - type: solid_wall - components: - - parent: 15 - pos: -2.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1581 - type: solid_wall - components: - - parent: 15 - pos: -3.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1582 - type: solid_wall - components: - - parent: 15 - pos: -4.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1583 - type: solid_wall - components: - - parent: 15 - pos: -5.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1584 - type: solid_wall - components: - - parent: 15 - pos: -6.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1585 - type: solid_wall - components: - - parent: 15 - pos: -7.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1586 - type: solid_wall - components: - - parent: 15 - pos: -8.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1587 - type: solid_wall - components: - - parent: 15 - pos: -8.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1588 - type: solid_wall - components: - - parent: 15 - pos: -8.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1589 - type: solid_wall - components: - - parent: 15 - pos: -7.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1590 - type: solid_wall - components: - - parent: 15 - pos: -9.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1591 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1592 - type: Table - components: - - parent: 15 - pos: -15.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1593 - type: Table - components: - - parent: 15 - pos: -15.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1594 - type: Table - components: - - parent: 15 - pos: -29.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1595 - type: DisposalTrunk - components: - - parent: 15 - pos: -10.5,-17.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 1596 - type: VendingMachineSovietSoda - components: - - parent: 15 - pos: -11.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1597 - type: ChairOfficeDark - components: - - parent: 15 - pos: 40.5,-0.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1598 - type: solid_wall - components: - - parent: 15 - pos: -10.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1599 - type: solid_wall - components: - - parent: 15 - pos: -4.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1600 - type: solid_wall - components: - - parent: 15 - pos: -9.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1601 - type: solid_wall - components: - - parent: 15 - pos: -11.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1602 - type: Table - components: - - parent: 15 - pos: 26.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1603 - type: Multitool - components: - - parent: 15 - pos: 6.259919,28.557344 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1604 - type: Medkit - components: - - parent: 15 - pos: -0.959059,28.524237 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 1605 - type: VendingMachineCola - components: - - parent: 15 - pos: 29.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1606 - type: Table - components: - - parent: 15 - pos: 28.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1607 - type: Table - components: - - parent: 15 - pos: 20.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1608 - type: Table - components: - - parent: 15 - pos: 19.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1609 - type: WeldingFuelTank - components: - - parent: 15 - pos: -26.5,11.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1610 - type: WeldingFuelTank - components: - - parent: 15 - pos: 35.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1611 - type: WeldingFuelTank - components: - - parent: 15 - pos: -15.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1612 - type: DrinkMugMoebius - components: - - parent: 15 - pos: -8.476567,-17.420076 - rot: -1.5707963267948966 rad - type: Transform - - caps: PourIn, PourOut, Injectable - type: Solution - - anchored: False - type: Collidable -- uid: 1613 - type: VendingMachineSnack - components: - - parent: 15 - pos: 9.5,28.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1614 - type: Table - components: - - parent: 15 - pos: 0.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1615 - type: Table - components: - - parent: 15 - pos: 1.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1616 - type: Table - components: - - parent: 15 - pos: -0.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1617 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1618 - type: solid_wall - components: - - parent: 15 - pos: -22.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1619 - type: Paper - components: - - parent: 15 - pos: 9.543142,17.067865 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1620 - type: solid_wall - components: - - parent: 15 - pos: -24.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1621 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1622 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1623 - type: solid_wall - components: - - parent: 15 - pos: -27.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1624 - type: solid_wall - components: - - parent: 15 - pos: -28.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1625 - type: solid_wall - components: - - parent: 15 - pos: -29.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1626 - type: solid_wall - components: - - parent: 15 - pos: -30.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1627 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1628 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1629 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1630 - type: Table - components: - - parent: 15 - pos: -1.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1631 - type: Table - components: - - parent: 15 - pos: -2.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1632 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1633 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1634 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1635 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1636 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1637 - type: solid_wall - components: - - parent: 15 - pos: -30.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1638 - type: solid_wall - components: - - parent: 15 - pos: -29.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1639 - type: solid_wall - components: - - parent: 15 - pos: -28.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1640 - type: solid_wall - components: - - parent: 15 - pos: -27.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1641 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1642 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1643 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1644 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1645 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1646 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1647 - type: Table - components: - - parent: 15 - pos: -7.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1648 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1649 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1650 - type: solid_wall - components: - - parent: 15 - pos: -20.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1651 - type: solid_wall - components: - - parent: 15 - pos: -19.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1652 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1653 - type: solid_wall - components: - - parent: 15 - pos: -17.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1654 - type: SpawnPointLatejoin - components: - - parent: 15 - pos: -36.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1655 - type: SpawnPointLatejoin - components: - - parent: 15 - pos: -36.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1656 - type: CrateInternals - components: - - parent: 15 - pos: 42.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 1657 - type: CrateRadiation - components: - - parent: 15 - pos: 43.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 1658 - type: solid_wall - components: - - parent: 15 - pos: -17.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1659 - type: solid_wall - components: - - parent: 15 - pos: -17.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1660 - type: solid_wall - components: - - parent: 15 - pos: -17.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1661 - type: solid_wall - components: - - parent: 15 - pos: -18.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1662 - type: solid_wall - components: - - parent: 15 - pos: -19.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1663 - type: solid_wall - components: - - parent: 15 - pos: -20.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1664 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1665 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1666 - type: solid_wall - components: - - parent: 15 - pos: -17.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1667 - type: solid_wall - components: - - parent: 15 - pos: -20.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1668 - type: solid_wall - components: - - parent: 15 - pos: -21.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1669 - type: solid_wall - components: - - parent: 15 - pos: -21.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1670 - type: solid_wall - components: - - parent: 15 - pos: -21.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1671 - type: solid_wall - components: - - parent: 15 - pos: -21.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1672 - type: solid_wall - components: - - parent: 15 - pos: -22.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1673 - type: solid_wall - components: - - parent: 15 - pos: -25.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1674 - type: solid_wall - components: - - parent: 15 - pos: -26.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1675 - type: solid_wall - components: - - parent: 15 - pos: -26.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1676 - type: solid_wall - components: - - parent: 15 - pos: -26.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1677 - type: solid_wall - components: - - parent: 15 - pos: -27.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1678 - type: Poweredlight - components: - - parent: 15 - pos: -35,-4.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1679 - type: Window - components: - - parent: 15 - pos: -25.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1680 - type: solid_wall - components: - - parent: 15 - pos: -30.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1681 - type: solid_wall - components: - - parent: 15 - pos: -31.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1682 - type: solid_wall - components: - - parent: 15 - pos: -31.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1683 - type: solid_wall - components: - - parent: 15 - pos: -31.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1684 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1685 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1686 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1687 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1688 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1689 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1690 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1691 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1692 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1693 - type: solid_wall - components: - - parent: 15 - pos: -34.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1694 - type: solid_wall - components: - - parent: 15 - pos: -34.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1695 - type: solid_wall - components: - - parent: 15 - pos: -33.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1696 - type: solid_wall - components: - - parent: 15 - pos: -33.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1697 - type: LowWall - components: - - parent: 15 - pos: -5.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1698 - type: LowWall - components: - - parent: 15 - pos: -6.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1699 - type: LowWall - components: - - parent: 15 - pos: -7.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1700 - type: LowWall - components: - - parent: 15 - pos: -8.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1701 - type: LowWall - components: - - parent: 15 - pos: -35.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1702 - type: LowWall - components: - - parent: 15 - pos: -36.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1703 - type: LowWall - components: - - parent: 15 - pos: -37.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1704 - type: LowWall - components: - - parent: 15 - pos: -38.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1705 - type: LowWall - components: - - parent: 15 - pos: -38.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1706 - type: LowWall - components: - - parent: 15 - pos: -38.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1707 - type: LowWall - components: - - parent: 15 - pos: -38.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1708 - type: LowWall - components: - - parent: 15 - pos: -38.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1709 - type: LowWall - components: - - parent: 15 - pos: -39.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1710 - type: LowWall - components: - - parent: 15 - pos: -37.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1711 - type: LowWall - components: - - parent: 15 - pos: -39.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1712 - type: LowWall - components: - - parent: 15 - pos: -38.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1713 - type: LowWall - components: - - parent: 15 - pos: -37.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1714 - type: LowWall - components: - - parent: 15 - pos: -38.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1715 - type: LowWall - components: - - parent: 15 - pos: -38.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1716 - type: LowWall - components: - - parent: 15 - pos: -38.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1717 - type: ReinforcedWindow - components: - - parent: 15 - pos: -37.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1718 - type: LowWall - components: - - parent: 15 - pos: -39.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1719 - type: LowWall - components: - - parent: 15 - pos: -40.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1720 - type: LowWall - components: - - parent: 15 - pos: -40.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1721 - type: LowWall - components: - - parent: 15 - pos: -40.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1722 - type: LowWall - components: - - parent: 15 - pos: -41.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1723 - type: LowWall - components: - - parent: 15 - pos: -39.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1724 - type: LowWall - components: - - parent: 15 - pos: -39.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1725 - type: LowWall - components: - - parent: 15 - pos: -40.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1726 - type: LowWall - components: - - parent: 15 - pos: -41.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1727 - type: LowWall - components: - - parent: 15 - pos: -40.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1728 - type: LowWall - components: - - parent: 15 - pos: -40.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1729 - type: LowWall - components: - - parent: 15 - pos: -41.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1730 - type: LowWall - components: - - parent: 15 - pos: -39.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1731 - type: LowWall - components: - - parent: 15 - pos: -39.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1732 - type: LowWall - components: - - parent: 15 - pos: -40.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1733 - type: LowWall - components: - - parent: 15 - pos: -41.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1734 - type: LowWall - components: - - parent: 15 - pos: -40.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1735 - type: Poweredlight - components: - - parent: 15 - pos: -38.5,2 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1736 - type: solid_wall - components: - - parent: 15 - pos: -40.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1737 - type: LowWall - components: - - parent: 15 - pos: -37.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1738 - type: LowWall - components: - - parent: 15 - pos: -36.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1739 - type: LowWall - components: - - parent: 15 - pos: -35.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1740 - type: Catwalk - components: - - parent: 15 - pos: -32.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1741 - type: solid_wall - components: - - parent: 15 - pos: 0.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1742 - type: ReinforcedWindow - components: - - parent: 15 - pos: 30.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1743 - type: Window - components: - - parent: 15 - pos: 32.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1744 - type: Window - components: - - parent: 15 - pos: 34.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1745 - type: Window - components: - - parent: 15 - pos: 36.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1746 - type: Window - components: - - parent: 15 - pos: 37.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1747 - type: Window - components: - - parent: 15 - pos: 39.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1748 - type: Window - components: - - parent: 15 - pos: 40.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1749 - type: APC - components: - - parent: 15 - pos: -11.5,2.5 - type: Transform -- uid: 1750 - type: Poweredlight - components: - - parent: 15 - pos: -24.5,-9 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1751 - type: SignCloning - components: - - parent: 15 - pos: 7.326743,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1752 - type: SignSmoking - components: - - parent: 15 - pos: 42.70487,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1753 - type: Window - components: - - parent: 15 - pos: 32.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1754 - type: Window - components: - - parent: 15 - pos: 34.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1755 - type: ReinforcedWindow - components: - - parent: 15 - pos: 30.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1756 - type: ReinforcedWindow - components: - - parent: 15 - pos: 30.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1757 - type: ReinforcedWindow - components: - - parent: 15 - pos: 31.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1758 - type: ReinforcedWindow - components: - - parent: 15 - pos: 32.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1759 - type: ReinforcedWindow - components: - - parent: 15 - pos: 33.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1760 - type: ReinforcedWindow - components: - - parent: 15 - pos: 34.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1761 - type: ReinforcedWindow - components: - - parent: 15 - pos: 35.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1762 - type: ReinforcedWindow - components: - - parent: 15 - pos: 36.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1763 - type: ReinforcedWindow - components: - - parent: 15 - pos: 36.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1764 - type: solid_wall - components: - - parent: 15 - pos: -20.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1765 - type: solid_wall - components: - - parent: 15 - pos: -1.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1766 - type: SignSmoking - components: - - parent: 15 - pos: -1.2919803,-7.6148567 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1767 - type: ReinforcedWindow - components: - - parent: 15 - pos: 21.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1768 - type: ReinforcedWindow - components: - - parent: 15 - pos: 23.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1769 - type: ReinforcedWindow - components: - - parent: 15 - pos: 23.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1770 - type: ReinforcedWindow - components: - - parent: 15 - pos: 23.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1771 - type: SignDirectionalBridge - components: - - parent: 15 - pos: 1.3437586,6.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1772 - type: SignConference - components: - - parent: 15 - pos: -2.6767635,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1773 - type: SignArmory - components: - - parent: 15 - pos: -13.678196,17.5 - type: Transform -- uid: 1774 - type: ReinforcedWindow - components: - - parent: 15 - pos: 21.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1775 - type: LowWall - components: - - parent: 15 - pos: 14.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1776 - type: LowWall - components: - - parent: 15 - pos: 14.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1777 - type: LowWall - components: - - parent: 15 - pos: 14.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1778 - type: ReinforcedWindow - components: - - parent: 15 - pos: 14.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1779 - type: ReinforcedWindow - components: - - parent: 15 - pos: 14.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1780 - type: ReinforcedWindow - components: - - parent: 15 - pos: 14.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1781 - type: ReinforcedWindow - components: - - parent: 15 - pos: 6.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1782 - type: ReinforcedWindow - components: - - parent: 15 - pos: 6.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1783 - type: ReinforcedWindow - components: - - parent: 15 - pos: 8.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1784 - type: Window - components: - - parent: 15 - pos: 14.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1785 - type: Window - components: - - parent: 15 - pos: 19.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1786 - type: Window - components: - - parent: 15 - pos: 20.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1787 - type: Window - components: - - parent: 15 - pos: 21.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1788 - type: Window - components: - - parent: 15 - pos: 22.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1789 - type: Window - components: - - parent: 15 - pos: 13.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1790 - type: Window - components: - - parent: 15 - pos: 13.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1791 - type: Window - components: - - parent: 15 - pos: 13.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1792 - type: Window - components: - - parent: 15 - pos: 11.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1793 - type: Window - components: - - parent: 15 - pos: 10.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1794 - type: Window - components: - - parent: 15 - pos: 9.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1795 - type: Window - components: - - parent: 15 - pos: 8.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1796 - type: Window - components: - - parent: 15 - pos: 7.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1797 - type: Window - components: - - parent: 15 - pos: 8.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1798 - type: Window - components: - - parent: 15 - pos: 9.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1799 - type: Window - components: - - parent: 15 - pos: 6.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1800 - type: Window - components: - - parent: 15 - pos: 12.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1801 - type: Window - components: - - parent: 15 - pos: 13.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1802 - type: Window - components: - - parent: 15 - pos: 13.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1803 - type: Window - components: - - parent: 15 - pos: 16.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1804 - type: Window - components: - - parent: 15 - pos: 18.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1805 - type: LowWall - components: - - parent: 15 - pos: 20.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1806 - type: LowWall - components: - - parent: 15 - pos: 20.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1807 - type: Window - components: - - parent: 15 - pos: 20.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1808 - type: LowWall - components: - - parent: 15 - pos: 10.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1809 - type: LowWall - components: - - parent: 15 - pos: 7.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1810 - type: LowWall - components: - - parent: 15 - pos: 11.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1811 - type: LowWall - components: - - parent: 15 - pos: 11.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1812 - type: Window - components: - - parent: 15 - pos: 11.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1813 - type: Window - components: - - parent: 15 - pos: 11.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1814 - type: Window - components: - - parent: 15 - pos: 10.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1815 - type: Window - components: - - parent: 15 - pos: 7.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1816 - type: Window - components: - - parent: 15 - pos: 5.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1817 - type: Window - components: - - parent: 15 - pos: 5.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1818 - type: Window - components: - - parent: 15 - pos: 5.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1819 - type: Window - components: - - parent: 15 - pos: 0.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1820 - type: Window - components: - - parent: 15 - pos: -2.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1821 - type: Window - components: - - parent: 15 - pos: -4.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1822 - type: Window - components: - - parent: 15 - pos: -5.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1823 - type: Window - components: - - parent: 15 - pos: -4.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1824 - type: Window - components: - - parent: 15 - pos: -2.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1825 - type: Window - components: - - parent: 15 - pos: -5.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1826 - type: Window - components: - - parent: 15 - pos: -6.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1827 - type: Window - components: - - parent: 15 - pos: -27.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1828 - type: Window - components: - - parent: 15 - pos: -28.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1829 - type: Window - components: - - parent: 15 - pos: -29.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1830 - type: LowWall - components: - - parent: 15 - pos: -29.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1831 - type: LowWall - components: - - parent: 15 - pos: -27.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1832 - type: ReinforcedWindow - components: - - parent: 15 - pos: -35.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1833 - type: ReinforcedWindow - components: - - parent: 15 - pos: -36.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1834 - type: ReinforcedWindow - components: - - parent: 15 - pos: -37.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1835 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1836 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1837 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1838 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1839 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1840 - type: ReinforcedWindow - components: - - parent: 15 - pos: -37.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1841 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1842 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1843 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1844 - type: solid_wall - components: - - parent: 15 - pos: -38.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1845 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1846 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1847 - type: ReinforcedWindow - components: - - parent: 15 - pos: -38.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1848 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1849 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1850 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1851 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1852 - type: ReinforcedWindow - components: - - parent: 15 - pos: -41.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1853 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1854 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1855 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1856 - type: ReinforcedWindow - components: - - parent: 15 - pos: -41.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1857 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1858 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1859 - type: ReinforcedWindow - components: - - parent: 15 - pos: -41.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1860 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1861 - type: ReinforcedWindow - components: - - parent: 15 - pos: -39.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1862 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1863 - type: ReinforcedWindow - components: - - parent: 15 - pos: -41.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1864 - type: ReinforcedWindow - components: - - parent: 15 - pos: -40.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1865 - type: APC - components: - - parent: 15 - pos: -33.5,7.5 - type: Transform -- uid: 1866 - type: solid_wall - components: - - parent: 15 - pos: -39.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1867 - type: ReinforcedWindow - components: - - parent: 15 - pos: -37.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1868 - type: ReinforcedWindow - components: - - parent: 15 - pos: -36.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1869 - type: ReinforcedWindow - components: - - parent: 15 - pos: -35.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1870 - type: solid_wall - components: - - parent: 15 - pos: -29.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1871 - type: solid_wall - components: - - parent: 15 - pos: -28.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1872 - type: ReinforcedWindow - components: - - parent: 15 - pos: -3.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1873 - type: ReinforcedWindow - components: - - parent: 15 - pos: -2.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1874 - type: ReinforcedWindow - components: - - parent: 15 - pos: -0.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1875 - type: ReinforcedWindow - components: - - parent: 15 - pos: 0.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1876 - type: ReinforcedWindow - components: - - parent: 15 - pos: -0.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1877 - type: ReinforcedWindow - components: - - parent: 15 - pos: -3.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1878 - type: ReinforcedWindow - components: - - parent: 15 - pos: -8.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1879 - type: ReinforcedWindow - components: - - parent: 15 - pos: -7.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1880 - type: Window - components: - - parent: 15 - pos: -10.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1881 - type: Window - components: - - parent: 15 - pos: -7.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1882 - type: ReinforcedWindow - components: - - parent: 15 - pos: -2.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1883 - type: ReinforcedWindow - components: - - parent: 15 - pos: -2.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1884 - type: ReinforcedWindow - components: - - parent: 15 - pos: -3.5,29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1885 - type: ReinforcedWindow - components: - - parent: 15 - pos: -1.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1886 - type: ReinforcedWindow - components: - - parent: 15 - pos: -1.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1887 - type: ReinforcedWindow - components: - - parent: 15 - pos: -0.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1888 - type: ReinforcedWindow - components: - - parent: 15 - pos: 0.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1889 - type: ReinforcedWindow - components: - - parent: 15 - pos: 1.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1890 - type: ReinforcedWindow - components: - - parent: 15 - pos: 2.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1891 - type: ReinforcedWindow - components: - - parent: 15 - pos: 3.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1892 - type: ReinforcedWindow - components: - - parent: 15 - pos: 4.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1893 - type: ReinforcedWindow - components: - - parent: 15 - pos: 5.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1894 - type: ReinforcedWindow - components: - - parent: 15 - pos: 6.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1895 - type: ReinforcedWindow - components: - - parent: 15 - pos: 7.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1896 - type: ReinforcedWindow - components: - - parent: 15 - pos: 8.5,33.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1897 - type: ReinforcedWindow - components: - - parent: 15 - pos: 8.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1898 - type: ReinforcedWindow - components: - - parent: 15 - pos: 9.5,31.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1899 - type: ReinforcedWindow - components: - - parent: 15 - pos: 9.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1900 - type: ReinforcedWindow - components: - - parent: 15 - pos: 10.5,29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1901 - type: ReinforcedWindow - components: - - parent: 15 - pos: 3.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1902 - type: Window - components: - - parent: 15 - pos: -0.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1903 - type: Window - components: - - parent: 15 - pos: -1.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1904 - type: ReinforcedWindow - components: - - parent: 15 - pos: 2.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1905 - type: ReinforcedWindow - components: - - parent: 15 - pos: 3.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1906 - type: ReinforcedWindow - components: - - parent: 15 - pos: 4.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1907 - type: ReinforcedWindow - components: - - parent: 15 - pos: 5.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1908 - type: ReinforcedWindow - components: - - parent: 15 - pos: 5.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1909 - type: Window - components: - - parent: 15 - pos: 9.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1910 - type: Window - components: - - parent: 15 - pos: 10.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1911 - type: Window - components: - - parent: 15 - pos: 11.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1912 - type: ReinforcedWindow - components: - - parent: 15 - pos: 51.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1913 - type: Wire - components: - - parent: 15 - pos: 40.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1914 - type: Wire - components: - - parent: 15 - pos: 41.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1915 - type: Wire - components: - - parent: 15 - pos: 42.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1916 - type: Wire - components: - - parent: 15 - pos: 43.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1917 - type: Wire - components: - - parent: 15 - pos: 43.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1918 - type: Wire - components: - - parent: 15 - pos: 43.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1919 - type: APC - components: - - parent: 15 - pos: 43.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1920 - type: Wire - components: - - parent: 15 - pos: 41.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1921 - type: Wire - components: - - parent: 15 - pos: 41.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1922 - type: Wire - components: - - parent: 15 - pos: 41.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1923 - type: Wire - components: - - parent: 15 - pos: 41.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1924 - type: APC - components: - - parent: 15 - pos: 41.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1925 - type: WaterTankFull - components: - - parent: 15 - pos: -19.5,7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1926 - type: WaterTankFull - components: - - parent: 15 - pos: 35.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1927 - type: SignDirectionalEng - components: - - parent: 15 - pos: 18.507353,6.5 - type: Transform -- uid: 1928 - type: Poweredlight - components: - - parent: 15 - pos: 37,2.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1929 - type: Poweredlight - components: - - parent: 15 - pos: 38.5,-2 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1930 - type: Poweredlight - components: - - parent: 15 - pos: 30.5,8 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1931 - type: Poweredlight - components: - - parent: 15 - pos: -14.5,17 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1932 - type: PaintingMonkey - components: - - parent: 15 - pos: -7.6996727,-5.5 - type: Transform -- uid: 1933 - type: PoweredSmallLight - components: - - parent: 15 - pos: 44,-1.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1934 - type: Poweredlight - components: - - parent: 15 - pos: 36.5,8 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1935 - type: Poweredlight - components: - - parent: 15 - pos: 37,12.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1936 - type: Poweredlight - components: - - parent: 15 - pos: 30,12.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1937 - type: Wire - components: - - parent: 15 - pos: 32.5,9.5 - type: Transform -- uid: 1938 - type: Wire - components: - - parent: 15 - pos: 31.5,9.5 - type: Transform -- uid: 1939 - type: Wire - components: - - parent: 15 - pos: 30.5,9.5 - type: Transform -- uid: 1940 - type: Wire - components: - - parent: 15 - pos: 29.5,9.5 - type: Transform -- uid: 1941 - type: APC - components: - - parent: 15 - pos: 29.5,9.5 - type: Transform -- uid: 1942 - type: Wire - components: - - parent: 15 - pos: 35.5,-1.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1943 - type: Wire - components: - - parent: 15 - pos: 34.5,-1.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1944 - type: Wire - components: - - parent: 15 - pos: 36.5,-1.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1945 - type: APC - components: - - parent: 15 - pos: 36.5,-1.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 1946 - type: Poweredlight - components: - - parent: 15 - pos: 36,-2.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1947 - type: Poweredlight - components: - - parent: 15 - pos: 29,-2.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1948 - type: Poweredlight - components: - - parent: 15 - pos: 35.5,7 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1949 - type: Poweredlight - components: - - parent: 15 - pos: 31.5,2 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1950 - type: Poweredlight - components: - - parent: 15 - pos: 31,0.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1951 - type: SignEngineering - components: - - parent: 15 - pos: 26.30795,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1952 - type: Poweredlight - components: - - parent: 15 - pos: 30,1.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1953 - type: Poweredlight - components: - - parent: 15 - pos: 25,1.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1954 - type: Wire - components: - - parent: 15 - pos: 27.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1955 - type: Wire - components: - - parent: 15 - pos: 27.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1956 - type: Wire - components: - - parent: 15 - pos: 27.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1957 - type: Wire - components: - - parent: 15 - pos: 27.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1958 - type: Wire - components: - - parent: 15 - pos: 27.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1959 - type: APC - components: - - parent: 15 - pos: 27.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1960 - type: PoweredSmallLight - components: - - parent: 15 - pos: 26,11.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1961 - type: PoweredSmallLight - components: - - parent: 15 - pos: 38.5,-3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1962 - type: PoweredSmallLight - components: - - parent: 15 - pos: 35.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1963 - type: PoweredSmallLight - components: - - parent: 15 - pos: 26,-4.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1964 - type: PoweredSmallLight - components: - - parent: 15 - pos: 24,0.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1965 - type: PoweredSmallLight - components: - - parent: 15 - pos: 28,-10.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1966 - type: PoweredSmallLight - components: - - parent: 15 - pos: 28,-15.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1967 - type: PoweredSmallLight - components: - - parent: 15 - pos: 25.5,-19 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1968 - type: solid_wall - components: - - parent: 15 - pos: 45.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1969 - type: solid_wall - components: - - parent: 15 - pos: 45.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1970 - type: PoweredSmallLight - components: - - parent: 15 - pos: 12.5,-19 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1971 - type: APC - components: - - parent: 15 - pos: 20.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1972 - type: Wire - components: - - parent: 15 - pos: 23.5,-12.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1973 - type: Wire - components: - - parent: 15 - pos: 23.5,-11.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1974 - type: APC - components: - - parent: 15 - pos: 23.5,-11.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1975 - type: Wire - components: - - parent: 15 - pos: 15.5,-16.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1976 - type: Wire - components: - - parent: 15 - pos: 16.5,-16.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1977 - type: Wire - components: - - parent: 15 - pos: 16.5,-17.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1978 - type: Wire - components: - - parent: 15 - pos: 16.5,-18.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1979 - type: APC - components: - - parent: 15 - pos: 16.5,-18.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1980 - type: Wire - components: - - parent: 15 - pos: 8.5,-15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1981 - type: Wire - components: - - parent: 15 - pos: 8.5,-17.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1982 - type: Wire - components: - - parent: 15 - pos: 8.5,-16.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1983 - type: APC - components: - - parent: 15 - pos: 8.5,-17.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 1984 - type: PoweredSmallLight - components: - - parent: 15 - pos: 9.5,-18 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1985 - type: PoweredSmallLight - components: - - parent: 15 - pos: 25.5,-1 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1986 - type: PoweredSmallLight - components: - - parent: 15 - pos: 30.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1987 - type: Poweredlight - components: - - parent: 15 - pos: 25,11.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1988 - type: Poweredlight - components: - - parent: 15 - pos: 13.5,-7 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1989 - type: Poweredlight - components: - - parent: 15 - pos: 20,-8.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1990 - type: Poweredlight - components: - - parent: 15 - pos: 19,-0.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1991 - type: Poweredlight - components: - - parent: 15 - pos: 15.5,2 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1992 - type: ChairOfficeLight - components: - - parent: 15 - pos: 14.5,0.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1993 - type: ChairOfficeLight - components: - - parent: 15 - pos: 10.5,-16.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 1994 - type: solid_wall - components: - - parent: 15 - pos: 47.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1995 - type: solid_wall - components: - - parent: 15 - pos: 51.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 1996 - type: Poweredlight - components: - - parent: 15 - pos: 12,-12.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1997 - type: Poweredlight - components: - - parent: 15 - pos: 9.5,-17 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1998 - type: Poweredlight - components: - - parent: 15 - pos: 6.5,-12 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 1999 - type: Poweredlight - components: - - parent: 15 - pos: 6,-4.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2000 - type: Wire - components: - - parent: 15 - pos: 6.5,-1.5 - type: Transform -- uid: 2001 - type: Wire - components: - - parent: 15 - pos: 6.5,-2.5 - type: Transform -- uid: 2002 - type: Wire - components: - - parent: 15 - pos: 6.5,-3.5 - type: Transform -- uid: 2003 - type: Wire - components: - - parent: 15 - pos: 5.5,-3.5 - type: Transform -- uid: 2004 - type: APC - components: - - parent: 15 - pos: 5.5,-3.5 - type: Transform -- uid: 2005 - type: SignDirectionalMed - components: - - parent: 15 - pos: 5.768486,-12.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2006 - type: Poweredlight - components: - - parent: 15 - pos: 12.5,2 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2007 - type: Wire - components: - - parent: 15 - pos: 17.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2008 - type: Wire - components: - - parent: 15 - pos: 17.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2009 - type: APC - components: - - parent: 15 - pos: 17.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2010 - type: Poweredlight - components: - - parent: 15 - pos: 13,-3.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2011 - type: SignCargo - components: - - parent: 15 - pos: 16.688538,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2012 - type: Poweredlight - components: - - parent: 15 - pos: 1,-17.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2013 - type: Poweredlight - components: - - parent: 15 - pos: 6,-17.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2014 - type: Poweredlight - components: - - parent: 15 - pos: 1.5,-22 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2015 - type: Poweredlight - components: - - parent: 15 - pos: 5.5,-22 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2016 - type: Wire - components: - - parent: 15 - pos: 14.5,11.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2017 - type: Wire - components: - - parent: 15 - pos: 14.5,12.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2018 - type: Wire - components: - - parent: 15 - pos: 14.5,13.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2019 - type: APC - components: - - parent: 15 - pos: 14.5,13.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2020 - type: Wire - components: - - parent: 15 - pos: 8.5,10.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2021 - type: Wire - components: - - parent: 15 - pos: 7.5,10.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2022 - type: Wire - components: - - parent: 15 - pos: 6.5,10.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2023 - type: Wire - components: - - parent: 15 - pos: 5.5,10.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2024 - type: APC - components: - - parent: 15 - pos: 5.5,10.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2025 - type: Poweredlight - components: - - parent: 15 - pos: 18,13.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2026 - type: Poweredlight - components: - - parent: 15 - pos: 18,8.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2027 - type: Poweredlight - components: - - parent: 15 - pos: 15.5,13 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2028 - type: Poweredlight - components: - - parent: 15 - pos: 12,10.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2029 - type: Poweredlight - components: - - parent: 15 - pos: 17,7.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2030 - type: Poweredlight - components: - - parent: 15 - pos: 23.5,3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2031 - type: Poweredlight - components: - - parent: 15 - pos: 18.5,3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2032 - type: Poweredlight - components: - - parent: 15 - pos: 13.5,3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2033 - type: Poweredlight - components: - - parent: 15 - pos: 11,9.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2034 - type: Poweredlight - components: - - parent: 15 - pos: 6,9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2035 - type: PoweredSmallLight - components: - - parent: 15 - pos: 8.5,15 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2036 - type: PoweredSmallLight - components: - - parent: 15 - pos: 14,16.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2037 - type: PoweredSmallLight - components: - - parent: 15 - pos: 17,15.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2038 - type: Wire - components: - - parent: 15 - pos: 9.5,20.5 - type: Transform -- uid: 2039 - type: Wire - components: - - parent: 15 - pos: 8.5,20.5 - type: Transform -- uid: 2040 - type: Wire - components: - - parent: 15 - pos: 8.5,19.5 - type: Transform -- uid: 2041 - type: Wire - components: - - parent: 15 - pos: 8.5,18.5 - type: Transform -- uid: 2042 - type: solid_wall - components: - - parent: 15 - pos: 7.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2043 - type: solid_wall - components: - - parent: 15 - pos: 8.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2044 - type: Wire - components: - - parent: 15 + - parent: 857 pos: 9.5,16.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2045 - type: Wire - components: - - parent: 15 - pos: 9.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2046 - type: APC - components: - - parent: 15 - pos: 9.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2047 - type: Wire - components: - - parent: 15 - pos: -2.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2048 - type: Wire - components: - - parent: 15 - pos: -2.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2049 - type: Wire - components: - - parent: 15 - pos: -2.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2050 - type: Wire - components: - - parent: 15 - pos: -0.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2051 - type: APC - components: - - parent: 15 - pos: -2.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2052 - type: Wire - components: - - parent: 15 - pos: 7.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2053 - type: Wire - components: - - parent: 15 - pos: 7.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2054 - type: Poweredlight - components: - - parent: 15 - pos: 8.5,22 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2055 - type: Poweredlight - components: - - parent: 15 - pos: 8.5,16 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2056 - type: Poweredlight - components: - - parent: 15 - pos: 1.5,16 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2057 - type: Poweredlight - components: - - parent: 15 - pos: 5.5,16 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2058 - type: Poweredlight - components: - - parent: 15 - pos: 2,23.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2059 - type: Poweredlight - components: - - parent: 15 - pos: 5,23.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2060 - type: Poweredlight - components: - - parent: 15 - pos: 10,25.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2061 - type: Poweredlight - components: - - parent: 15 - pos: 1.5,28 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2062 - type: Poweredlight - components: - - parent: 15 - pos: 5.5,28 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2063 - type: Poweredlight - components: - - parent: 15 - pos: -3,30.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2064 - type: Poweredlight - components: - - parent: 15 - pos: 10,30.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2065 - type: Poweredlight - components: - - parent: 15 - pos: -3,25.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2066 - type: PoweredSmallLight - components: - - parent: 15 - pos: -4,17.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2067 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 1.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2068 - type: PoweredSmallLight - components: - - parent: 15 - pos: -7.5,26 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2069 - type: Wire - components: - - parent: 15 - pos: -9.5,20.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2070 - type: Wire - components: - - parent: 15 - pos: -10.5,20.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2071 - type: Wire - components: - - parent: 15 - pos: -10.5,21.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2072 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2073 - type: reinforced_wall - components: - - parent: 15 - pos: -10.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2074 - type: APC - components: - - parent: 15 - pos: -10.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2075 - type: Poweredlight - components: - - parent: 15 - pos: -7.5,22 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2076 - type: Poweredlight - components: - - parent: 15 - pos: -15,20.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2077 - type: Poweredlight - components: - - parent: 15 - pos: -6.0158176,18 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2078 - type: Poweredlight - components: - - parent: 15 - pos: -5,16.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2079 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,19 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2080 - type: Poweredlight - components: - - parent: 15 - pos: -10,7.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2081 - type: Poweredlight - components: - - parent: 15 - pos: -5,7.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2082 - type: PoweredSmallLight - components: - - parent: 15 - pos: -4,8.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2083 - type: PoweredSmallLight - components: - - parent: 15 - pos: -1,8.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2084 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,10 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2085 - type: Poweredlight - components: - - parent: 15 - pos: 2,12.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2086 - type: Poweredlight - components: - - parent: 15 - pos: 2,7.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2087 - type: SignDirectionalSci - components: - - parent: 15 - pos: 1.3437586,6.2515917 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2088 - type: Poweredlight - components: - - parent: 15 - pos: 2,-4.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2089 - type: Poweredlight - components: - - parent: 15 - pos: 2,-9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2090 - type: Poweredlight - components: - - parent: 15 - pos: -0.5,-5 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2091 - type: Poweredlight - components: - - parent: 15 - pos: 6.0308504,2 - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2092 +- uid: 964 type: Table components: - - parent: 15 - pos: 29.5,0.5 + - parent: 857 + pos: 9.5,18.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2093 - type: Table - components: - - parent: 15 - pos: 25.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2094 - type: VendingMachineEngivend - components: - - parent: 15 - pos: 31.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2095 - type: Wire - components: - - parent: 15 - pos: -6.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2096 - type: APC - components: - - parent: 15 - pos: -6.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2097 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,6 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2098 - type: Poweredlight - components: - - parent: 15 - pos: -11.5,6 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2099 - type: Poweredlight - components: - - parent: 15 - pos: -18.5,6 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2100 - type: Poweredlight - components: - - parent: 15 - pos: -11,8.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2101 - type: Paper - components: - - parent: 15 - pos: 8.598616,26.075901 - type: Transform - - anchored: False - type: Collidable -- uid: 2102 - type: PoweredSmallLight - components: - - parent: 15 - pos: -0.5,-12 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2103 - type: PoweredSmallLight - components: - - parent: 15 - pos: -18,9.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2104 - type: PoweredSmallLight - components: - - parent: 15 - pos: -19,22.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2105 - type: PoweredSmallLight - components: - - parent: 15 - pos: -14.5,26 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2106 - type: PoweredSmallLight - components: - - parent: 15 - pos: -19,16.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2107 - type: Wire - components: - - parent: 15 - pos: -29.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 2108 - type: Wire - components: - - parent: 15 - pos: -30.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 2109 - type: Wire - components: - - parent: 15 - pos: -28.5,-2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 2110 - type: APC - components: - - parent: 15 - pos: -28.5,-3.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 2111 - type: Chair - components: - - parent: 15 - pos: -8.5,20.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2112 - type: APC - components: - - parent: 15 - pos: -33.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 2113 - type: solid_wall - components: - - parent: 15 - pos: -33.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2114 - type: APC - components: - - parent: 15 - pos: -12.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2115 - type: APC - components: - - parent: 15 - pos: -1.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2116 - type: APC - components: - - parent: 15 - pos: -7.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2117 - type: APC - components: - - parent: 15 - pos: -12.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2118 - type: APC - components: - - parent: 15 - pos: 0.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2119 - type: Table - components: - - parent: 15 - pos: -29.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2120 - type: Table - components: - - parent: 15 - pos: -29.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2121 - type: Poweredlight - components: - - parent: 15 - pos: -3,-6.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2122 - type: Poweredlight - components: - - parent: 15 - pos: -5.5,-8 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2123 - type: Table - components: - - parent: 15 - pos: 18.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2124 - type: Table - components: - - parent: 15 - pos: 15.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2125 - type: VendingMachineSnack - components: - - parent: 15 - pos: -22.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2126 - type: VendingMachineCola - components: - - parent: 15 - pos: -34.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2127 - type: Poweredlight - components: - - parent: 15 - pos: -27.5,12 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2128 - type: LockerToolFilled - components: - - parent: 15 - pos: -27.5,11.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2129 - type: PoweredSmallLight - components: - - parent: 15 - pos: -11,-10.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2130 - type: PoweredSmallLight - components: - - parent: 15 - pos: -7,-12.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2131 - type: PoweredSmallLight - components: - - parent: 15 - pos: -14.5,-16 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2132 - type: Table - components: - - parent: 15 - pos: 10.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2133 - type: Table - components: - - parent: 15 - pos: 10.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2134 - type: PoweredSmallLight - components: - - parent: 15 - pos: -19,9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2135 - type: Poweredlight - components: - - parent: 15 - pos: -30,9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2136 - type: Welder - components: - - parent: 15 - pos: -29.434454,8.191761 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2137 - type: LockerWeldingSupplies - components: - - parent: 15 - pos: 38.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2138 - type: Poweredlight - components: - - parent: 15 - pos: -23,8.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2139 - type: Poweredlight - components: - - parent: 15 - pos: -32.5,6 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2140 - type: Poweredlight - components: - - parent: 15 - pos: -30.5,3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2141 - type: Poweredlight - components: - - parent: 15 - pos: -20.5,3 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2142 - type: Poweredlight - components: - - parent: 15 - pos: -26,-3.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2143 - type: Poweredlight - components: - - parent: 15 - pos: -22,-3.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2144 - type: Poweredlight - components: - - parent: 15 - pos: -31,-0.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2145 - type: Poweredlight - components: - - parent: 15 - pos: -27,1.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2146 - type: PoweredSmallLight - components: - - parent: 15 - pos: -29.5,-4 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2147 - type: PoweredSmallLight - components: - - parent: 15 - pos: -29.5,-9 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2148 - type: Food4NoRaisins - components: - - parent: 15 - pos: -1.7489221,25.142187 - rot: 3.141592653589793 rad - type: Transform - - fillingSteps: 0 - type: Solution - - anchored: False - type: Collidable -- uid: 2149 - type: Pen - components: - - parent: 15 - pos: 9.652517,18.48974 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2150 - type: PoweredSmallLight - components: - - parent: 15 - pos: -18,-4.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2151 - type: PoweredSmallLight - components: - - parent: 15 - pos: -34,-0.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2152 - type: Table - components: - - parent: 15 - pos: 7.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2153 - type: Table - components: - - parent: 15 - pos: 8.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2154 - type: PoweredSmallLight - components: - - parent: 15 - pos: -29.5,15 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2155 - type: Poweredlight - components: - - parent: 15 - pos: -22,2.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2156 - type: SignShipDock - components: - - parent: 15 - pos: -33.298416,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2157 - type: Poweredlight - components: - - parent: 15 - pos: -22,0.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2158 - type: Poweredlight - components: - - parent: 15 - pos: -34,9.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2159 - type: Poweredlight - components: - - parent: 15 - pos: -35,0.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2160 - type: solid_wall - components: - - parent: 15 - pos: -38.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2161 - type: solid_wall - components: - - parent: 15 - pos: -34.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2162 - type: SpawnPointStationEngineer - components: - - parent: 15 - pos: 33.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2163 - type: SpawnPointSecurityOfficer - components: - - parent: 15 - pos: -7.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2164 - type: Table - components: - - parent: 15 - pos: 8.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2165 - type: Table - components: - - parent: 15 - pos: 8.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2166 - type: Table - components: - - parent: 15 - pos: 8.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2167 - type: Table - components: - - parent: 15 - pos: 7.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2168 - type: Table - components: - - parent: 15 - pos: 6.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2169 - type: ChairOfficeLight - components: - - parent: 15 - pos: 6.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2170 - type: ComputerMedicalRecords - components: - - parent: 15 - pos: 6.5,-5.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2171 - type: chem_dispenser - components: - - parent: 15 - pos: 14.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - ReagentDispenser-reagentContainerContainer: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2172 - type: Table - components: - - parent: 15 - pos: 14.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2173 - type: Table - components: - - parent: 15 - pos: 18.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2174 - type: Table - components: - - parent: 15 - pos: 18.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2175 - type: chem_master - components: - - parent: 15 - pos: 15.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - ChemMaster-reagentContainerContainer: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2176 - type: Table - components: - - parent: 15 - pos: 14.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2177 - type: Table - components: - - parent: 15 - pos: 15.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2178 - type: Table - components: - - parent: 15 - pos: 15.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2179 - type: LockerHeadOfSecurityFilled - components: - - parent: 15 - pos: -9.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2180 - type: LockerChemistry - components: - - parent: 15 - pos: 18.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2181 - type: Table - components: - - parent: 15 - pos: 13.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2182 - type: WarpPoint - components: - - parent: 15 - pos: 8.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - location: eva - type: WarpPoint -- uid: 2183 - type: WarpPoint - components: - - parent: 15 - pos: 7.5,25.5 - rot: -1.5707963267948966 rad - type: Transform - - location: cap - type: WarpPoint -- uid: 2184 - type: WarpPoint - components: - - parent: 15 - pos: 16.5,0.5 - rot: -1.5707963267948966 rad - type: Transform - - location: chem - type: WarpPoint -- uid: 2185 - type: WarpPoint - components: - - parent: 15 - pos: 9.5,19.5 - rot: -1.5707963267948966 rad - type: Transform - - location: hop - type: WarpPoint -- uid: 2186 - type: WarpPoint - components: - - parent: 15 - pos: 49.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - location: grav - type: WarpPoint -- uid: 2187 - type: LockerMedical - components: - - parent: 15 - pos: 21.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2188 - type: LockerMedical - components: - - parent: 15 - pos: 22.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2189 - type: VendingMachineMedical - components: - - parent: 15 - pos: 19.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2190 - type: VendingMachineMedical - components: - - parent: 15 - pos: 6.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2191 - type: Table - components: - - parent: 15 - pos: 21.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2192 - type: Table - components: - - parent: 15 - pos: 22.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2193 - type: Table - components: - - parent: 15 - pos: 23.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2194 - type: CrateMedical - components: - - parent: 15 - pos: 24.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2195 - type: Table - components: - - parent: 15 - pos: 6.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2196 - type: Table - components: - - parent: 15 - pos: 6.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2197 - type: Table - components: - - parent: 15 - pos: 6.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2198 - type: Table - components: - - parent: 15 - pos: 6.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2199 - type: Table - components: - - parent: 15 - pos: 10.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2200 - type: Table - components: - - parent: 15 - pos: 9.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2201 - type: Beaker - components: - - parent: 15 - pos: 15.07514,-0.38339257 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2202 - type: MedicalScanner - components: - - parent: 15 - pos: 16.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - MedicalScanner-bodyContainer: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2203 - type: MedicalScanner - components: - - parent: 15 - pos: 16.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - MedicalScanner-bodyContainer: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2204 - type: LowWall - components: - - parent: 15 - pos: 15.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2205 - type: LowWall - components: - - parent: 15 - pos: 16.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2206 - type: LowWall - components: - - parent: 15 - pos: 17.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2207 - type: Window - components: - - parent: 15 - pos: 15.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2208 - type: Window - components: - - parent: 15 - pos: 16.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2209 - type: Window - components: - - parent: 15 - pos: 17.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2210 - type: Poweredlight - components: - - parent: 15 - pos: 20,-11.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2211 - type: Poweredlight - components: - - parent: 15 - pos: 7,-14.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2212 - type: Poweredlight - components: - - parent: 15 - pos: 23.5,-4 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2213 - type: Poweredlight - components: - - parent: 15 - pos: 23.5,-8 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2214 - type: Medkit - components: - - parent: 15 - pos: 6.5537567,-7.609968 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2215 - type: Medkit - components: - - parent: 15 - pos: 6.5693817,-8.359968 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2216 - type: Medkit - components: - - parent: 15 - pos: 6.5225067,-9.141218 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2217 - type: Medkit - components: - - parent: 15 - pos: 6.5068817,-9.984968 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2218 - type: DisposalUnit - components: - - parent: 15 - pos: 18.5,-0.5 - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2219 - type: DisposalTrunk - components: - - parent: 15 - pos: 18.5,-0.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2220 - type: LargeBeaker - components: - - parent: 15 - pos: 14.528265,-0.44589257 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2221 - type: Beaker - components: - - parent: 15 - pos: 15.48139,-0.43026757 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2222 - type: ComputerMedicalRecords - components: - - parent: 15 - pos: 24.5,-15.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2223 - type: Table - components: - - parent: 15 - pos: 23.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2224 - type: Table - components: - - parent: 15 - pos: 23.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2225 - type: Table - components: - - parent: 15 - pos: 23.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2226 - type: ChairOfficeLight - components: - - parent: 15 - pos: 24.5,-14.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2227 - type: Poweredlight - components: - - parent: 15 - pos: 25,-14.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2228 - type: WarpPoint - components: - - parent: 15 - pos: -24.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform - - location: dorms - type: WarpPoint -- uid: 2229 - type: WarpPoint - components: - - parent: 15 - pos: -36.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - location: escape - type: WarpPoint -- uid: 2230 - type: SpawnPointChef - components: - - parent: 15 - pos: -12.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2231 - type: SpawnPointLatejoin - components: - - parent: 15 - pos: -36.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2232 - type: SpawnPointAssistant - components: - - parent: 15 - pos: -29.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2233 - type: SpawnPointAssistant - components: - - parent: 15 - pos: -23.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2234 - type: Table - components: - - parent: 15 - pos: -4.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2235 - type: Table - components: - - parent: 15 - pos: -4.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2236 - type: LowWall - components: - - parent: 15 - pos: -10.5,-29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2237 - type: LowWall - components: - - parent: 15 - pos: -10.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2238 - type: LowWall - components: - - parent: 15 - pos: -9.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2239 - type: LowWall - components: - - parent: 15 - pos: -6.5,-29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2240 - type: LowWall - components: - - parent: 15 - pos: -7.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2241 - type: LowWall - components: - - parent: 15 - pos: -6.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2242 - type: LowWall - components: - - parent: 15 - pos: -8.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2243 - type: ReinforcedWindow - components: - - parent: 15 - pos: -10.5,-29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2244 - type: ReinforcedWindow - components: - - parent: 15 - pos: -10.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2245 - type: ReinforcedWindow - components: - - parent: 15 - pos: -9.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2246 - type: ReinforcedWindow - components: - - parent: 15 - pos: -8.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2247 - type: ReinforcedWindow - components: - - parent: 15 - pos: -7.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2248 - type: ReinforcedWindow - components: - - parent: 15 - pos: -6.5,-30.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2249 - type: ReinforcedWindow - components: - - parent: 15 - pos: -6.5,-29.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2250 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,-18 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2251 - type: Poweredlight - components: - - parent: 15 - pos: -6,-14.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2252 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,-13 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2253 - type: Poweredlight - components: - - parent: 15 - pos: -9.5,-21 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2254 - type: Poweredlight - components: - - parent: 15 - pos: -9.5,-17 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2255 - type: Poweredlight - components: - - parent: 15 - pos: -1.5,-21 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2256 - type: Poweredlight - components: - - parent: 15 - pos: -2,-23.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2257 - type: PoweredSmallLight - components: - - parent: 15 - pos: -7,-23.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2258 - type: ResearchAndDevelopmentServer - components: - - parent: 15 - pos: -8.5,-23.5 - type: Transform - - points: 136000 - type: ResearchServer -- uid: 2259 - type: Poweredlight - components: - - parent: 15 - pos: -18,-25.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2260 - type: Poweredlight - components: - - parent: 15 - pos: -18,-21.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2261 - type: Poweredlight - components: - - parent: 15 - pos: -13,-21.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2262 - type: Poweredlight - components: - - parent: 15 - pos: -13,-25.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2263 - type: SignScience - components: - - parent: 15 - pos: -8.494434,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2264 - type: Wire - components: - - parent: 15 - pos: -17.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2265 - type: APC - components: - - parent: 15 - pos: -18.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2266 - type: ComputerResearchAndDevelopment - components: - - parent: 15 - pos: -5.5,-15.5 - type: Transform -- uid: 2267 - type: PoweredSmallLight - components: - - parent: 15 - pos: -6.5,-26 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2268 - type: Table - components: - - parent: 15 - pos: -0.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2269 - type: Table - components: - - parent: 15 - pos: -1.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2270 - type: Table - components: - - parent: 15 - pos: -2.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2271 - type: Table - components: - - parent: 15 - pos: 0.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2272 - type: Table - components: - - parent: 15 - pos: 0.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2273 - type: BaseResearchAndDevelopmentPointSource - components: - - parent: 15 - pos: -5.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2274 - type: ChairOfficeLight - components: - - parent: 15 - pos: -0.5,-14.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2275 - type: ChairOfficeLight - components: - - parent: 15 - pos: -5.5,-23.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2276 - type: VendingMachineCoffee - components: - - parent: 15 - pos: -7.5,-17.5 - type: Transform -- uid: 2277 - type: Table - components: - - parent: 15 - pos: -8.5,-17.5 - type: Transform -- uid: 2278 - type: ChairOfficeLight - components: - - parent: 15 - pos: -9.5,-17.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2279 - type: ChairOfficeLight - components: - - parent: 15 - pos: -8.5,-18.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2280 - type: Autolathe - components: - - parent: 15 - pos: -5.5,-12.5 - type: Transform - - recipes: - - Brutepack - - Ointment - - LightTube - - LightBulb - - MetalStack - - GlassStack - - Wirecutter - - Screwdriver - - Welder - - Wrench - - Crowbar - - Multitool - type: LatheDatabase -- uid: 2281 - type: Protolathe - components: - - parent: 15 - pos: -3.5,-12.5 - type: Transform - - protolatherecipes: - - Brutepack - - Ointment - - LightTube - - LightBulb - - MetalStack - - GlassStack - - Wirecutter - - Screwdriver - - Welder - - Wrench - - Crowbar - - Multitool - type: ProtolatheDatabase -- uid: 2282 - type: Table - components: - - parent: 15 - pos: -2.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2283 - type: Table - components: - - parent: 15 - pos: -1.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2284 - type: Table - components: - - parent: 15 - pos: -0.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2285 - type: SpawnPointStationEngineer - components: - - parent: 15 - pos: 41.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2286 - type: SpawnPointStationEngineer - components: - - parent: 15 - pos: 33.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2287 - type: SpawnPointSecurityOfficer - components: - - parent: 15 - pos: -2.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2288 - type: SpawnPointSecurityOfficer - components: - - parent: 15 - pos: -13.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2289 - type: Poweredlight - components: - - parent: 15 - pos: -38.5,11 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2290 - type: Table - components: - - parent: 15 - pos: -2.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2291 - type: Table - components: - - parent: 15 - pos: -7.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2292 - type: Table - components: - - parent: 15 - pos: -6.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2293 - type: Table - components: - - parent: 15 - pos: -5.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2294 - type: Table - components: - - parent: 15 - pos: -4.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2295 - type: Table - components: - - parent: 15 - pos: -3.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2296 - type: Table - components: - - parent: 15 - pos: -2.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2297 - type: Table - components: - - parent: 15 - pos: 39.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2298 - type: SpawnPointAssistant - components: - - parent: 15 - pos: -27.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2299 - type: SpawnPointSecurityOfficer - components: - - parent: 15 - pos: -12.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2300 - type: SpawnPointAssistant - components: - - parent: 15 - pos: -27.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2301 - type: SpawnPointStationEngineer - components: - - parent: 15 - pos: 33.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2302 - type: StoolBar - components: - - parent: 15 - pos: -7.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2303 - type: StoolBar - components: - - parent: 15 - pos: -6.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2304 - type: StoolBar - components: - - parent: 15 - pos: -5.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2305 - type: StoolBar - components: - - parent: 15 - pos: -4.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2306 - type: StoolBar - components: - - parent: 15 - pos: -3.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2307 - type: StoolBar - components: - - parent: 15 - pos: -2.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2308 - type: Fork - components: - - parent: 15 - pos: -7.6538,0.49939823 - type: Transform - - anchored: False - type: Collidable -- uid: 2309 - type: Arcade - components: - - parent: 15 - pos: -1.5,-4.5 - type: Transform -- uid: 2310 - type: TableWood - components: - - parent: 15 - pos: -7.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2311 - type: TableWood - components: - - parent: 15 - pos: -6.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2312 - type: TableWood - components: - - parent: 15 - pos: -0.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2313 - type: TableWood - components: - - parent: 15 - pos: -3.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2314 - type: ChairWood - components: - - parent: 15 - pos: -3.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2315 - type: ChairWood - components: - - parent: 15 - pos: -3.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2316 - type: ChairWood - components: - - parent: 15 - pos: -6.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2317 - type: ChairWood - components: - - parent: 15 - pos: -7.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2318 - type: ChairWood - components: - - parent: 15 - pos: -7.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2319 - type: ChairWood - components: - - parent: 15 - pos: -6.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2320 - type: ChairWood - components: - - parent: 15 - pos: -0.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2321 - type: ChairWood - components: - - parent: 15 - pos: -0.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2322 - type: BarSign - components: - - parent: 15 - pos: 1,2.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2323 - type: Spoon - components: - - parent: 15 - pos: -6.419425,0.43689823 - type: Transform - - anchored: False - type: Collidable -- uid: 2324 - type: VendingMachineCigs - components: - - parent: 15 - pos: 0.5,-4.5 - type: Transform -- uid: 2325 - type: VendingMachineSnack - components: - - parent: 15 - pos: -0.5,-4.5 - type: Transform -- uid: 2326 - type: Chair - components: - - parent: 15 - pos: 22.5,-14.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2327 - type: Stool - components: - - parent: 15 - pos: -1.5,-3.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2328 - type: Table - components: - - parent: 15 - pos: -15.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2329 - type: ComputerComms - components: - - parent: 15 - pos: 3.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2330 - type: WarpPoint - components: - - parent: 15 - pos: -4.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform - - location: bar - type: WarpPoint -- uid: 2331 - type: WarpPoint - components: - - parent: 15 - pos: -6.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform - - location: sci - type: WarpPoint -- uid: 2332 - type: WarpPoint - components: - - parent: 15 - pos: 14.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform - - location: med - type: WarpPoint -- uid: 2333 - type: WarpPoint - components: - - parent: 15 - pos: 19.5,11.5 - rot: -1.5707963267948966 rad - type: Transform - - location: cargo - type: WarpPoint -- uid: 2334 - type: WarpPoint - components: - - parent: 15 - pos: 34.5,4.5 - rot: -1.5707963267948966 rad - type: Transform - - location: eng - type: WarpPoint -- uid: 2335 - type: VendingMachineCola - components: - - parent: 15 - pos: 1.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2336 - type: VendingMachineCoffee - components: - - parent: 15 - pos: 0.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2337 - type: VendingMachineCigs - components: - - parent: 15 - pos: 6.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2338 - type: TableWood - components: - - parent: 15 - pos: 8.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2339 - type: TableWood - components: - - parent: 15 - pos: 8.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2340 - type: ChairOfficeDark - components: - - parent: 15 - pos: 3.5,31.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2341 - type: ComputerComms - components: - - parent: 15 - pos: 9.5,23.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 2342 - type: ChairOfficeDark - components: - - parent: 15 - pos: 9.5,25.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2343 - type: ChairWood - components: - - parent: 15 - pos: 7.5,25.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2344 - type: WarpPoint - components: - - parent: 15 - pos: -6.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - location: sec - type: WarpPoint -- uid: 2345 - type: WarpPoint - components: - - parent: 15 - pos: 3.5,29.5 - rot: -1.5707963267948966 rad - type: Transform - - location: bridge - type: WarpPoint -- uid: 2346 - type: Table - components: - - parent: 15 - pos: 6.5,20.5 - type: Transform -- uid: 2347 - type: ComputerId - components: - - parent: 15 - pos: 8.5,23.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - IdCardConsole-privilegedId: - type: Content.Server.GameObjects.ContainerSlot - IdCardConsole-targetId: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2348 - type: ComputerId - components: - - parent: 15 - pos: 7.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - IdCardConsole-privilegedId: - type: Content.Server.GameObjects.ContainerSlot - IdCardConsole-targetId: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2349 - type: ComputerAlert - components: - - parent: 15 - pos: 6.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2350 - type: ComputerPowerMonitoring - components: - - parent: 15 - pos: 7.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2351 - type: Paper - components: - - parent: 15 - pos: -1.344388,25.58412 - type: Transform - - anchored: False - type: Collidable -- uid: 2352 - type: Pen - components: - - parent: 15 - pos: -1.563138,24.568495 - type: Transform - - anchored: False - type: Collidable -- uid: 2353 - type: TableWood - components: - - parent: 15 - pos: -1.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2354 - type: TableWood - components: - - parent: 15 - pos: -1.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2355 - type: ChairOfficeDark - components: - - parent: 15 - pos: -0.5,24.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2356 - type: ChairOfficeDark - components: - - parent: 15 - pos: -0.5,25.5 - rot: 3.141592653589793 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2357 - type: ChairOfficeDark - components: - - parent: 15 - pos: -2.5,24.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2358 - type: ChairOfficeDark - components: - - parent: 15 - pos: -2.5,25.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2359 - type: ChairOfficeDark - components: - - parent: 15 - pos: 7.5,31.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2360 - type: ComputerMedicalRecords - components: - - parent: 15 - pos: 0.5,32.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2361 - type: ChairOfficeDark - components: - - parent: 15 - pos: 0.5,31.5 - rot: 1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2362 +- uid: 965 type: ComputerSupplyRequest components: - - parent: 15 + - parent: 857 pos: 8.5,31.5 rot: 3.141592653589793 rad type: Transform @@ -29021,775 +20628,805 @@ entities: - cargo.glass - cargo.cable type: GalacticMarket -- uid: 2363 - type: Table - components: - - parent: 15 - pos: 9.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2364 - type: Table - components: - - parent: 15 - pos: 9.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2365 - type: Table - components: - - parent: 15 - pos: 9.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2366 - type: Chair - components: - - parent: 15 - pos: 8.5,17.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2367 +- uid: 966 type: ChairOfficeDark components: - - parent: 15 - pos: 10.5,17.5 + - parent: 857 + pos: 0.5,31.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 967 + type: ComputerMedicalRecords + components: + - parent: 857 + pos: 0.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 968 + type: ChairOfficeDark + components: + - parent: 857 + pos: 7.5,31.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 969 + type: ChairOfficeDark + components: + - parent: 857 + pos: -2.5,25.5 + type: Transform + - anchored: False + type: Collidable +- uid: 970 + type: ChairOfficeDark + components: + - parent: 857 + pos: -2.5,24.5 + type: Transform + - anchored: False + type: Collidable +- uid: 971 + type: ChairOfficeDark + components: + - parent: 857 + pos: -0.5,25.5 rot: 3.141592653589793 rad type: Transform - anchored: False type: Collidable -- uid: 2368 +- uid: 972 + type: ChairOfficeDark + components: + - parent: 857 + pos: -0.5,24.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 973 + type: TableWood + components: + - parent: 857 + pos: -1.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 974 + type: TableWood + components: + - parent: 857 + pos: -1.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 975 + type: Pen + components: + - parent: 857 + pos: -1.563138,24.568495 + type: Transform + - anchored: False + type: Collidable +- uid: 976 type: Paper components: - - parent: 15 - pos: 9.699392,17.630365 + - parent: 857 + pos: -1.344388,25.58412 + type: Transform + - anchored: False + type: Collidable +- uid: 977 + type: ComputerPowerMonitoring + components: + - parent: 857 + pos: 7.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 978 + type: ComputerAlert + components: + - parent: 857 + pos: 6.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 979 + type: ComputerId + components: + - parent: 857 + pos: 7.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + IdCardConsole-privilegedId: + type: Content.Server.GameObjects.ContainerSlot + IdCardConsole-targetId: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 980 + type: ComputerId + components: + - parent: 857 + pos: 8.5,23.5 + rot: 1.5707963267948966 rad + type: Transform + - containers: + IdCardConsole-privilegedId: + type: Content.Server.GameObjects.ContainerSlot + IdCardConsole-targetId: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 981 + type: Table + components: + - parent: 857 + pos: 6.5,20.5 + type: Transform +- uid: 982 + type: WarpPoint + components: + - parent: 857 + pos: 3.5,29.5 + rot: -1.5707963267948966 rad + type: Transform + - location: bridge + type: WarpPoint +- uid: 983 + type: WarpPoint + components: + - parent: 857 + pos: -6.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - location: sec + type: WarpPoint +- uid: 984 + type: ChairWood + components: + - parent: 857 + pos: 7.5,25.5 + type: Transform + - anchored: False + type: Collidable +- uid: 985 + type: ChairOfficeDark + components: + - parent: 857 + pos: 9.5,25.5 rot: 3.141592653589793 rad type: Transform - anchored: False type: Collidable -- uid: 2369 - type: solid_wall +- uid: 986 + type: ComputerComms components: - - parent: 15 - pos: -34.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2370 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2371 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2372 - type: solid_wall - components: - - parent: 15 - pos: -34.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2373 - type: solid_wall - components: - - parent: 15 - pos: -33.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2374 - type: solid_wall - components: - - parent: 15 - pos: -32.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2375 - type: solid_wall - components: - - parent: 15 - pos: -31.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2376 - type: solid_wall - components: - - parent: 15 - pos: -30.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2377 - type: solid_wall - components: - - parent: 15 - pos: -29.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2378 - type: solid_wall - components: - - parent: 15 - pos: -28.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2379 - type: solid_wall - components: - - parent: 15 - pos: -27.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2380 - type: solid_wall - components: - - parent: 15 - pos: -26.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2381 - type: Brutepack - components: - - parent: 15 - pos: 6.97988,-3.2306285 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2382 - type: SignDirectionalBridge - components: - - parent: 15 - pos: 5.641159,-12.7475605 + - parent: 857 + pos: 9.5,23.5 rot: 1.5707963267948966 rad type: Transform -- uid: 2383 - type: solid_wall +- uid: 987 + type: ChairOfficeDark components: - - parent: 15 - pos: 33.5,11.5 + - parent: 857 + pos: 3.5,31.5 rot: 1.5707963267948966 rad type: Transform -- uid: 2384 - type: solid_wall - components: - - parent: 15 - pos: -0.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2385 - type: solid_wall - components: - - parent: 15 - pos: -16.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2386 - type: SignSmoking - components: - - parent: 15 - pos: 23.462582,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2387 - type: SignBar - components: - - parent: 15 - pos: -4.6859417,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2388 - type: TrashSpawner - components: - - parent: 15 - pos: 7.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2389 - type: Brutepack - components: - - parent: 15 - pos: 7.370505,-3.4650035 - rot: -1.5707963267948966 rad - type: Transform - anchored: False type: Collidable -- uid: 2390 - type: solid_wall +- uid: 988 + type: TableWood components: - - parent: 15 - pos: -20.5,-9.5 + - parent: 857 + pos: 8.5,26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2391 - type: solid_wall +- uid: 989 + type: TableWood components: - - parent: 15 - pos: -20.5,-10.5 + - parent: 857 + pos: 8.5,25.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2392 - type: solid_wall +- uid: 990 + type: VendingMachineCigs components: - - parent: 15 - pos: -19.5,-10.5 + - parent: 857 + pos: 6.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2393 - type: solid_wall +- uid: 991 + type: VendingMachineCoffee components: - - parent: 15 - pos: -18.5,-10.5 + - parent: 857 + pos: 0.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2394 - type: solid_wall +- uid: 992 + type: VendingMachineCola components: - - parent: 15 - pos: -17.5,-10.5 + - parent: 857 + pos: 1.5,21.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2395 - type: solid_wall +- uid: 993 + type: WarpPoint components: - - parent: 15 - pos: -20.5,-8.5 + - parent: 857 + pos: 34.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2396 - type: solid_wall + - location: eng + type: WarpPoint +- uid: 994 + type: WarpPoint components: - - parent: 15 - pos: -15.5,2.5 + - parent: 857 + pos: 19.5,11.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2397 - type: solid_wall + - location: cargo + type: WarpPoint +- uid: 995 + type: WarpPoint components: - - parent: 15 - pos: -14.5,2.5 + - parent: 857 + pos: 14.5,-9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2398 - type: solid_wall + - location: med + type: WarpPoint +- uid: 996 + type: WarpPoint components: - - parent: 15 - pos: -13.5,2.5 + - parent: 857 + pos: -6.5,-19.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2399 - type: solid_wall + - location: sci + type: WarpPoint +- uid: 997 + type: WarpPoint components: - - parent: 15 - pos: -12.5,2.5 + - parent: 857 + pos: -4.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2400 - type: solid_wall + - location: bar + type: WarpPoint +- uid: 998 + type: ComputerComms components: - - parent: 15 - pos: -15.5,1.5 + - parent: 857 + pos: 3.5,32.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2401 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2402 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2403 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2404 - type: solid_wall - components: - - parent: 15 - pos: -15.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2405 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2406 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2407 - type: solid_wall - components: - - parent: 15 - pos: -13.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2408 - type: solid_wall - components: - - parent: 15 - pos: -14.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2409 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2410 - type: solid_wall - components: - - parent: 15 - pos: -10.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2411 - type: solid_wall - components: - - parent: 15 - pos: -11.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2412 - type: solid_wall - components: - - parent: 15 - pos: -12.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2413 - type: solid_wall - components: - - parent: 15 - pos: -13.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2414 - type: solid_wall - components: - - parent: 15 - pos: -14.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2415 - type: Catwalk - components: - - parent: 15 - pos: -23.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2416 - type: Catwalk - components: - - parent: 15 - pos: -17.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2417 - type: Catwalk - components: - - parent: 15 - pos: -9.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2418 - type: Wire - components: - - parent: 15 - pos: -33.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2419 - type: Wire - components: - - parent: 15 - pos: -33.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2420 - type: Wire - components: - - parent: 15 - pos: -33.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2421 - type: Wire - components: - - parent: 15 - pos: -33.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2422 - type: Wire - components: - - parent: 15 - pos: -33.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2423 - type: Wire - components: - - parent: 15 - pos: -32.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2424 - type: Wire - components: - - parent: 15 - pos: -31.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2425 - type: Wire - components: - - parent: 15 - pos: -30.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2426 - type: Wire - components: - - parent: 15 - pos: -29.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2427 - type: Wire - components: - - parent: 15 - pos: -28.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2428 - type: Wire - components: - - parent: 15 - pos: -27.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2429 - type: Wire - components: - - parent: 15 - pos: -26.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2430 - type: Wire - components: - - parent: 15 - pos: -25.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2431 - type: Wire - components: - - parent: 15 - pos: -24.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2432 - type: Wire - components: - - parent: 15 - pos: -23.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2433 - type: Wire - components: - - parent: 15 - pos: -18.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2434 - type: Wire - components: - - parent: 15 - pos: -21.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2435 - type: Wire - components: - - parent: 15 - pos: -22.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2436 - type: Wire - components: - - parent: 15 - pos: -19.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2437 - type: Wire - components: - - parent: 15 - pos: -20.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2438 - type: Wire - components: - - parent: 15 - pos: -18.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2439 - type: Wire - components: - - parent: 15 - pos: -18.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2440 - type: Wire - components: - - parent: 15 - pos: -18.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2441 - type: Wire - components: - - parent: 15 - pos: -9.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2442 - type: Wire - components: - - parent: 15 - pos: -17.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2443 - type: Wire - components: - - parent: 15 - pos: -15.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2444 - type: Wire - components: - - parent: 15 - pos: -14.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2445 - type: Wire - components: - - parent: 15 - pos: -13.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2446 - type: Wire - components: - - parent: 15 - pos: -12.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2447 - type: Wire - components: - - parent: 15 - pos: -11.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2448 - type: Wire - components: - - parent: 15 - pos: -10.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2449 - type: Wire - components: - - parent: 15 - pos: -23.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2450 - type: Wire - components: - - parent: 15 - pos: -23.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2451 - type: Wire - components: - - parent: 15 - pos: -23.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2452 - type: Wire - components: - - parent: 15 - pos: -21.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2453 - type: Wire - components: - - parent: 15 - pos: -20.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2454 - type: SpawnPointLatejoin - components: - - parent: 15 - pos: -36.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2455 +- uid: 999 type: Table components: - - parent: 15 - pos: -10.5,-0.5 + - parent: 857 + pos: -15.5,-10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2456 - type: Table - components: - - parent: 15 - pos: -10.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2457 - type: Table - components: - - parent: 15 - pos: -10.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2458 - type: Wire - components: - - parent: 15 - pos: -9.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2459 - type: Wire - components: - - parent: 15 - pos: -10.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2460 - type: Wire - components: - - parent: 15 - pos: -11.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2461 - type: SpawnPointSecurityOfficer - components: - - parent: 15 - pos: -11.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2462 - type: VendingMachineTheater - components: - - parent: 15 - pos: -17.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2463 - type: PianoInstrument - components: - - parent: 15 - pos: -9.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2464 +- uid: 1000 type: Stool components: - - parent: 15 - pos: -9.5,-3.5 + - parent: 857 + pos: -1.5,-3.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1001 + type: Catwalk + components: + - parent: 857 + pos: 22.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1002 + type: Chair + components: + - parent: 857 + pos: 22.5,-14.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1003 + type: VendingMachineSnack + components: + - parent: 857 + pos: -0.5,-4.5 + type: Transform +- uid: 1004 + type: VendingMachineCigs + components: + - parent: 857 + pos: 0.5,-4.5 + type: Transform +- uid: 1005 + type: Spoon + components: + - parent: 857 + pos: -6.419425,0.43689823 + type: Transform + - anchored: False + type: Collidable +- uid: 1006 + type: BarSign + components: + - parent: 857 + pos: 1,2.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 1007 + type: ChairWood + components: + - parent: 857 + pos: -0.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1008 + type: ChairWood + components: + - parent: 857 + pos: -0.5,1.5 rot: -1.5707963267948966 rad type: Transform - anchored: False type: Collidable -- uid: 2465 +- uid: 1009 + type: ChairWood + components: + - parent: 857 + pos: -6.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1010 + type: ChairWood + components: + - parent: 857 + pos: -7.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1011 + type: ChairWood + components: + - parent: 857 + pos: -7.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1012 + type: ChairWood + components: + - parent: 857 + pos: -6.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1013 + type: ChairWood + components: + - parent: 857 + pos: -3.5,-0.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1014 + type: ChairWood + components: + - parent: 857 + pos: -3.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1015 + type: TableWood + components: + - parent: 857 + pos: -3.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1016 + type: TableWood + components: + - parent: 857 + pos: -0.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1017 + type: TableWood + components: + - parent: 857 + pos: -6.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1018 + type: TableWood + components: + - parent: 857 + pos: -7.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1019 + type: Arcade + components: + - parent: 857 + pos: -1.5,-4.5 + type: Transform +- uid: 1020 + type: Fork + components: + - parent: 857 + pos: -7.6538,0.49939823 + type: Transform + - anchored: False + type: Collidable +- uid: 1021 + type: StoolBar + components: + - parent: 857 + pos: -2.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1022 + type: StoolBar + components: + - parent: 857 + pos: -3.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1023 + type: StoolBar + components: + - parent: 857 + pos: -4.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1024 + type: StoolBar + components: + - parent: 857 + pos: -5.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1025 + type: StoolBar + components: + - parent: 857 + pos: -6.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1026 + type: StoolBar + components: + - parent: 857 + pos: -7.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1027 + type: Catwalk + components: + - parent: 857 + pos: 10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1028 + type: Catwalk + components: + - parent: 857 + pos: 12.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1029 + type: Catwalk + components: + - parent: 857 + pos: 11.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1030 + type: SpawnPointStationEngineer + components: + - parent: 857 + pos: 33.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1031 + type: SpawnPointAssistant + components: + - parent: 857 + pos: -27.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1032 + type: SpawnPointSecurityOfficer + components: + - parent: 857 + pos: -12.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1033 + type: SpawnPointAssistant + components: + - parent: 857 + pos: -27.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1034 type: Table components: - - parent: 15 - pos: -14.5,-1.5 + - parent: 857 + pos: 39.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2466 +- uid: 1035 type: Table components: - - parent: 15 - pos: -14.5,-0.5 + - parent: 857 + pos: -2.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2467 - type: KitchenMicrowave +- uid: 1036 + type: Table components: - - parent: 15 - pos: -14.5,-1.5 + - parent: 857 + pos: -3.5,-3.5 rot: -1.5707963267948966 rad type: Transform - - containers: - microwave_entity_container: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2468 - type: Wire +- uid: 1037 + type: Table components: - - parent: 15 - pos: -11.5,-0.5 + - parent: 857 + pos: -4.5,-3.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 2469 - type: Wire +- uid: 1038 + type: Table components: - - parent: 15 - pos: -11.5,1.5 + - parent: 857 + pos: -5.5,-3.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 2470 +- uid: 1039 + type: Table + components: + - parent: 857 + pos: -6.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1040 + type: Table + components: + - parent: 857 + pos: -7.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1041 + type: Table + components: + - parent: 857 + pos: -2.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1042 type: Poweredlight components: - - parent: 15 - pos: -13.5,-2 + - parent: 857 + pos: -38.5,11 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1043 + type: SpawnPointSecurityOfficer + components: + - parent: 857 + pos: -13.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1044 + type: SpawnPointSecurityOfficer + components: + - parent: 857 + pos: -2.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1045 + type: SpawnPointStationEngineer + components: + - parent: 857 + pos: 33.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1046 + type: SpawnPointStationEngineer + components: + - parent: 857 + pos: 41.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1047 + type: Table + components: + - parent: 857 + pos: -0.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1048 + type: Table + components: + - parent: 857 + pos: -1.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1049 + type: Table + components: + - parent: 857 + pos: -2.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1050 + type: Protolathe + components: + - parent: 857 + pos: -3.5,-12.5 + type: Transform + - protolatherecipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: ProtolatheDatabase +- uid: 1051 + type: Autolathe + components: + - parent: 857 + pos: -5.5,-12.5 + type: Transform + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 1052 + type: ChairOfficeLight + components: + - parent: 857 + pos: -8.5,-18.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1053 + type: ChairOfficeLight + components: + - parent: 857 + pos: -9.5,-17.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1054 + type: Table + components: + - parent: 857 + pos: -8.5,-17.5 + type: Transform +- uid: 1055 + type: VendingMachineCoffee + components: + - parent: 857 + pos: -7.5,-17.5 + type: Transform +- uid: 1056 + type: ChairOfficeLight + components: + - parent: 857 + pos: -5.5,-23.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1057 + type: ChairOfficeLight + components: + - parent: 857 + pos: -0.5,-14.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1058 + type: BaseResearchAndDevelopmentPointSource + components: + - parent: 857 + pos: -5.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1059 + type: Table + components: + - parent: 857 + pos: 0.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1060 + type: Table + components: + - parent: 857 + pos: 0.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1061 + type: Table + components: + - parent: 857 + pos: -2.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1062 + type: Table + components: + - parent: 857 + pos: -1.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1063 + type: Table + components: + - parent: 857 + pos: -0.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1064 + type: PoweredSmallLight + components: + - parent: 857 + pos: -6.5,-26 rot: 1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' @@ -29800,12 +21437,34 @@ entities: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2471 +- uid: 1065 + type: ComputerResearchAndDevelopment + components: + - parent: 857 + pos: -5.5,-15.5 + type: Transform +- uid: 1066 + type: LowWall + components: + - parent: 857 + pos: -38.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1067 + type: SignScience + components: + - parent: 857 + pos: -8.494434,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1068 type: Poweredlight components: - - parent: 15 - pos: -13.5,2 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -13,-25.5 + rot: 3.141592653589793 rad type: Transform - color: '#FFFFFFFF' type: PointLight @@ -29815,11 +21474,104 @@ entities: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2472 +- uid: 1069 + type: Poweredlight + components: + - parent: 857 + pos: -13,-21.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1070 + type: Poweredlight + components: + - parent: 857 + pos: -18,-21.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1071 + type: Poweredlight + components: + - parent: 857 + pos: -18,-25.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1072 + type: ResearchAndDevelopmentServer + components: + - parent: 857 + pos: -8.5,-23.5 + type: Transform + - points: 136000 + type: ResearchServer +- uid: 1073 type: PoweredSmallLight components: - - parent: 15 - pos: -12.5,-5 + - parent: 857 + pos: -7,-23.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1074 + type: Poweredlight + components: + - parent: 857 + pos: -2,-23.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1075 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,-21 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1076 + type: Poweredlight + components: + - parent: 857 + pos: -9.5,-17 rot: -1.5707963267948966 rad type: Transform - color: '#FFFFFFFF' @@ -29830,359 +21582,1310 @@ entities: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2473 +- uid: 1077 + type: Poweredlight + components: + - parent: 857 + pos: -9.5,-21 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1078 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,-13 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1079 + type: Poweredlight + components: + - parent: 857 + pos: -6,-14.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1080 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,-18 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1081 + type: ReinforcedWindow + components: + - parent: 857 + pos: -6.5,-29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1082 + type: ReinforcedWindow + components: + - parent: 857 + pos: -6.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1083 + type: ReinforcedWindow + components: + - parent: 857 + pos: -7.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1084 + type: ReinforcedWindow + components: + - parent: 857 + pos: -8.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1085 + type: ReinforcedWindow + components: + - parent: 857 + pos: -9.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1086 + type: ReinforcedWindow + components: + - parent: 857 + pos: -10.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1087 + type: ReinforcedWindow + components: + - parent: 857 + pos: -10.5,-29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1088 + type: LowWall + components: + - parent: 857 + pos: -8.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1089 + type: LowWall + components: + - parent: 857 + pos: -6.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1090 + type: LowWall + components: + - parent: 857 + pos: -7.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1091 + type: LowWall + components: + - parent: 857 + pos: -6.5,-29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1092 + type: LowWall + components: + - parent: 857 + pos: -9.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1093 + type: LowWall + components: + - parent: 857 + pos: -10.5,-30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1094 + type: LowWall + components: + - parent: 857 + pos: -10.5,-29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1095 type: Table components: - - parent: 15 - pos: -18.5,-9.5 + - parent: 857 + pos: -4.5,-24.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2474 - type: GravityGenerator +- uid: 1096 + type: Table components: - - parent: 15 - pos: 49.5,-4.5 + - parent: 857 + pos: -4.5,-23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2475 - type: reinforced_wall +- uid: 1097 + type: SpawnPointAssistant components: - - parent: 15 - pos: 46.5,-1.5 + - parent: 857 + pos: -23.5,-2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2476 - type: reinforced_wall +- uid: 1098 + type: SpawnPointAssistant components: - - parent: 15 - pos: 46.5,-2.5 + - parent: 857 + pos: -29.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2477 - type: reinforced_wall +- uid: 1099 + type: SpawnPointLatejoin components: - - parent: 15 - pos: 46.5,-3.5 + - parent: 857 + pos: -36.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2478 - type: reinforced_wall +- uid: 1100 + type: SpawnPointChef components: - - parent: 15 - pos: 46.5,-4.5 + - parent: 857 + pos: -12.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2479 - type: reinforced_wall +- uid: 1101 + type: WarpPoint components: - - parent: 15 - pos: 46.5,-5.5 + - parent: 857 + pos: -36.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2480 - type: reinforced_wall + - location: escape + type: WarpPoint +- uid: 1102 + type: WarpPoint components: - - parent: 15 - pos: 46.5,-6.5 + - parent: 857 + pos: -24.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2481 - type: reinforced_wall + - location: dorms + type: WarpPoint +- uid: 1103 + type: Poweredlight components: - - parent: 15 - pos: 46.5,-7.5 + - parent: 857 + pos: 25,-14.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1104 + type: ChairOfficeLight + components: + - parent: 857 + pos: 24.5,-14.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1105 + type: Table + components: + - parent: 857 + pos: 23.5,-15.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2482 - type: reinforced_wall +- uid: 1106 + type: Table components: - - parent: 15 - pos: 47.5,-7.5 + - parent: 857 + pos: 23.5,-14.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2483 - type: reinforced_wall +- uid: 1107 + type: Table components: - - parent: 15 - pos: 48.5,-7.5 + - parent: 857 + pos: 23.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2484 - type: reinforced_wall +- uid: 1108 + type: ComputerMedicalRecords components: - - parent: 15 - pos: 49.5,-7.5 + - parent: 857 + pos: 24.5,-15.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 1109 + type: Beaker + components: + - parent: 857 + pos: 15.48139,-0.43026757 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1110 + type: LargeBeaker + components: + - parent: 857 + pos: 14.528265,-0.44589257 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1111 + type: DisposalTrunk + components: + - parent: 857 + pos: 18.5,-0.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 1112 + type: DisposalUnit + components: + - parent: 857 + pos: 18.5,-0.5 + type: Transform + + - deadThreshold: 100 + type: Destructible + - containers: + DisposalUnit: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1113 + type: Medkit + components: + - parent: 857 + pos: 6.5068817,-9.984968 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1114 + type: Medkit + components: + - parent: 857 + pos: 6.5225067,-9.141218 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1115 + type: Medkit + components: + - parent: 857 + pos: 6.5693817,-8.359968 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1116 + type: Catwalk + components: + - parent: 857 + pos: -11.5,-22.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2485 - type: reinforced_wall +- uid: 1117 + type: Catwalk components: - - parent: 15 - pos: 50.5,-7.5 + - parent: 857 + pos: -11.5,-23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2486 - type: reinforced_wall +- uid: 1118 + type: Catwalk components: - - parent: 15 - pos: 51.5,-7.5 + - parent: 857 + pos: -11.5,-24.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2487 - type: reinforced_wall +- uid: 1119 + type: Catwalk components: - - parent: 15 - pos: 52.5,-7.5 + - parent: 857 + pos: -11.5,-25.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2488 - type: reinforced_wall +- uid: 1120 + type: Catwalk components: - - parent: 15 - pos: 52.5,-6.5 + - parent: 857 + pos: -11.5,-26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2489 - type: reinforced_wall +- uid: 1121 + type: Catwalk components: - - parent: 15 - pos: 52.5,-5.5 + - parent: 857 + pos: -0.5,-26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2490 - type: reinforced_wall +- uid: 1122 + type: Catwalk components: - - parent: 15 - pos: 52.5,-4.5 + - parent: 857 + pos: -0.5,-25.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2491 - type: reinforced_wall +- uid: 1123 + type: Catwalk components: - - parent: 15 - pos: 52.5,-3.5 + - parent: 857 + pos: -0.5,-24.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2492 - type: reinforced_wall +- uid: 1124 + type: Catwalk components: - - parent: 15 - pos: 52.5,-2.5 + - parent: 857 + pos: -0.5,-23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2493 - type: reinforced_wall +- uid: 1125 + type: Catwalk components: - - parent: 15 - pos: 52.5,-1.5 + - parent: 857 + pos: 0.5,-23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2494 - type: reinforced_wall +- uid: 1126 + type: Catwalk components: - - parent: 15 - pos: 51.5,-1.5 + - parent: 857 + pos: -9.5,-26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2495 - type: reinforced_wall +- uid: 1127 + type: Catwalk components: - - parent: 15 - pos: 47.5,-1.5 + - parent: 857 + pos: -8.5,-26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2496 - type: solid_wall +- uid: 1128 + type: Catwalk components: - - parent: 15 - pos: 51.5,4.5 + - parent: 857 + pos: -7.5,-26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2497 - type: solid_wall +- uid: 1129 + type: Medkit components: - - parent: 15 - pos: 49.5,5.5 + - parent: 857 + pos: 6.5537567,-7.609968 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1130 + type: Poweredlight + components: + - parent: 857 + pos: 23.5,-8 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1131 + type: Poweredlight + components: + - parent: 857 + pos: 23.5,-4 rot: -1.5707963267948966 rad type: Transform -- uid: 2498 - type: solid_wall + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1132 + type: Poweredlight components: - - parent: 15 - pos: 46.5,0.5 + - parent: 857 + pos: 7,-14.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1133 + type: Poweredlight + components: + - parent: 857 + pos: 20,-11.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1134 + type: Window + components: + - parent: 857 + pos: 17.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2499 - type: solid_wall +- uid: 1135 + type: Window components: - - parent: 15 - pos: 47.5,-0.5 + - parent: 857 + pos: 16.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2500 - type: solid_wall +- uid: 1136 + type: Window components: - - parent: 15 - pos: 47.5,0.5 + - parent: 857 + pos: 15.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2501 - type: solid_wall +- uid: 1137 + type: LowWall components: - - parent: 15 - pos: 50.5,5.5 + - parent: 857 + pos: 17.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2502 - type: solid_wall +- uid: 1138 + type: LowWall components: - - parent: 15 - pos: 51.5,5.5 + - parent: 857 + pos: 16.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2503 - type: reinforced_wall +- uid: 1139 + type: LowWall components: - - parent: 15 - pos: 48.5,-1.5 + - parent: 857 + pos: 15.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2504 - type: reinforced_wall +- uid: 1140 + type: MedicalScanner components: - - parent: 15 - pos: 50.5,-1.5 + - parent: 857 + pos: 16.5,-11.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2505 - type: Wire + - containers: + MedicalScanner-bodyContainer: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1141 + type: LowWall components: - - parent: 15 - pos: 42.5,4.5 + - parent: 857 + pos: -38.5,-7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2506 - type: Wire +- uid: 1142 + type: Table components: - - parent: 15 - pos: 43.5,4.5 + - parent: 857 + pos: 30.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2507 - type: Wire +- uid: 1143 + type: MedicalScanner components: - - parent: 15 - pos: 44.5,4.5 + - parent: 857 + pos: 16.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2508 - type: Wire + - containers: + MedicalScanner-bodyContainer: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1144 + type: Beaker components: - - parent: 15 - pos: 45.5,4.5 + - parent: 857 + pos: 15.07514,-0.38339257 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1145 + type: Table + components: + - parent: 857 + pos: 9.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2509 - type: Wire +- uid: 1146 + type: Catwalk components: - - parent: 15 - pos: 46.5,4.5 + - parent: 857 + pos: 29.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2510 - type: Wire +- uid: 1147 + type: Table components: - - parent: 15 - pos: 47.5,4.5 + - parent: 857 + pos: 10.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2511 - type: Wire +- uid: 1148 + type: Catwalk components: - - parent: 15 - pos: 48.5,4.5 + - parent: 857 + pos: 33.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2512 - type: Wire +- uid: 1149 + type: Table components: - - parent: 15 - pos: 49.5,4.5 + - parent: 857 + pos: 6.5,-7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2513 - type: Wire +- uid: 1150 + type: Table components: - - parent: 15 - pos: 49.5,3.5 + - parent: 857 + pos: 6.5,-8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2514 - type: Wire +- uid: 1151 + type: Catwalk components: - - parent: 15 - pos: 49.5,2.5 + - parent: 857 + pos: 28.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2515 - type: Wire +- uid: 1152 + type: Table components: - - parent: 15 - pos: 49.5,1.5 + - parent: 857 + pos: 6.5,-9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2516 - type: Wire +- uid: 1153 + type: Table components: - - parent: 15 - pos: 49.5,0.5 + - parent: 857 + pos: 6.5,-10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2517 - type: Wire +- uid: 1154 + type: CrateMedical components: - - parent: 15 - pos: 49.5,-0.5 + - parent: 857 + pos: 24.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2518 - type: Wire + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1155 + type: Table components: - - parent: 15 - pos: 49.5,-1.5 + - parent: 857 + pos: 23.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2519 - type: Wire +- uid: 1156 + type: Table components: - - parent: 15 + - parent: 857 + pos: 22.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1157 + type: Table + components: + - parent: 857 + pos: 21.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1158 + type: VendingMachineMedical + components: + - parent: 857 + pos: 6.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1159 + type: VendingMachineMedical + components: + - parent: 857 + pos: 19.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1160 + type: LockerMedical + components: + - parent: 857 + pos: 22.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1161 + type: Catwalk + components: + - parent: 857 + pos: 27.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1162 + type: LockerMedical + components: + - parent: 857 + pos: 21.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1163 + type: WarpPoint + components: + - parent: 857 pos: 49.5,-2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2520 - type: APC + - location: grav + type: WarpPoint +- uid: 1164 + type: WarpPoint components: - - parent: 15 - pos: 50.5,-1.5 + - parent: 857 + pos: 9.5,19.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2521 + - location: hop + type: WarpPoint +- uid: 1165 + type: WarpPoint + components: + - parent: 857 + pos: 16.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - location: chem + type: WarpPoint +- uid: 1166 + type: WarpPoint + components: + - parent: 857 + pos: 7.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - location: cap + type: WarpPoint +- uid: 1167 + type: WarpPoint + components: + - parent: 857 + pos: 8.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - location: eva + type: WarpPoint +- uid: 1168 + type: Table + components: + - parent: 857 + pos: 13.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1169 + type: LockerChemistry + components: + - parent: 857 + pos: 18.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1170 + type: LockerElectricalSupplies + components: + - parent: 857 + pos: 39.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1171 + type: Catwalk + components: + - parent: 857 + pos: 47.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1172 + type: Table + components: + - parent: 857 + pos: -12.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1173 + type: Chair + components: + - parent: 857 + pos: 28.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1174 + type: Chair + components: + - parent: 857 + pos: 26.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1175 + type: LockerHeadOfSecurityFilled + components: + - parent: 857 + pos: -9.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1176 + type: Table + components: + - parent: 857 + pos: 15.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1177 + type: Table + components: + - parent: 857 + pos: 15.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1178 + type: Table + components: + - parent: 857 + pos: 14.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1179 + type: chem_master + components: + - parent: 857 + pos: 15.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + ChemMaster-reagentContainerContainer: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1180 + type: Table + components: + - parent: 857 + pos: 18.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1181 + type: Table + components: + - parent: 857 + pos: 18.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1182 + type: Table + components: + - parent: 857 + pos: 14.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1183 + type: chem_dispenser + components: + - parent: 857 + pos: 14.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - containers: + ReagentDispenser-reagentContainerContainer: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1184 + type: ComputerMedicalRecords + components: + - parent: 857 + pos: 6.5,-5.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 1185 + type: ChairOfficeLight + components: + - parent: 857 + pos: 6.5,-4.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1186 + type: Table + components: + - parent: 857 + pos: 6.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1187 + type: Table + components: + - parent: 857 + pos: 7.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1188 + type: Table + components: + - parent: 857 + pos: 8.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1189 + type: Table + components: + - parent: 857 + pos: 8.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1190 + type: Table + components: + - parent: 857 + pos: 8.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1191 + type: LowWall + components: + - parent: 857 + pos: -38.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1192 + type: LowWall + components: + - parent: 857 + pos: -37.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1193 + type: SpawnPointSecurityOfficer + components: + - parent: 857 + pos: -7.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1194 + type: SpawnPointStationEngineer + components: + - parent: 857 + pos: 33.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1195 + type: solid_wall + components: + - parent: 857 + pos: -34.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1196 + type: solid_wall + components: + - parent: 857 + pos: -38.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1197 type: Poweredlight components: - - parent: 15 - pos: 47,-4.5 + - parent: 857 + pos: -35,0.5 + rot: 3.141592653589793 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2522 +- uid: 1198 type: Poweredlight components: - - parent: 15 - pos: 52,-4.5 + - parent: 857 + pos: -34,9.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1199 + type: Poweredlight + components: + - parent: 857 + pos: -22,0.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1200 + type: SignShipDock + components: + - parent: 857 + pos: -33.298416,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1201 + type: Window + components: + - parent: 857 + pos: -18.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1202 + type: Window + components: + - parent: 857 + pos: -19.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1203 + type: LowWall + components: + - parent: 857 + pos: -19.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1204 + type: LowWall + components: + - parent: 857 + pos: -18.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1205 + type: Poweredlight + components: + - parent: 857 + pos: -22,2.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1206 + type: PoweredSmallLight + components: + - parent: 857 + pos: -29.5,15 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1207 + type: Table + components: + - parent: 857 + pos: 8.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1208 + type: Table + components: + - parent: 857 + pos: 7.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1209 + type: PoweredSmallLight + components: + - parent: 857 + pos: -34,-0.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1210 + type: PoweredSmallLight + components: + - parent: 857 + pos: -18,-4.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1211 + type: Pen + components: + - parent: 857 + pos: 9.652517,18.48974 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1212 + type: ChairOfficeDark + components: + - parent: 857 + pos: -6.5,20.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1213 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,15 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1214 + type: Table + components: + - parent: 857 + pos: 10.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1215 + type: Table + components: + - parent: 857 + pos: -7.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1216 + type: ChairOfficeDark + components: + - parent: 857 + pos: -11.5,8.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1217 + type: Chair + components: + - parent: 857 + pos: -13.5,8.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1218 + type: Food4NoRaisins + components: + - parent: 857 + pos: -1.7489221,25.142187 + rot: 3.141592653589793 rad + type: Transform + - fillingSteps: 0 + type: Solution + - anchored: False + type: Collidable +- uid: 1219 + type: PoweredSmallLight + components: + - parent: 857 + pos: -29.5,-9 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1220 + type: PoweredSmallLight + components: + - parent: 857 + pos: -29.5,-4 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1221 + type: Poweredlight + components: + - parent: 857 + pos: -27,1.5 rot: 3.141592653589793 rad type: Transform - color: '#FFFFFFFF' @@ -30191,914 +22894,114 @@ entities: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2523 - type: Catwalk +- uid: 1222 + type: Poweredlight components: - - parent: 15 - pos: 47.5,-2.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -31,-0.5 type: Transform -- uid: 2524 - type: Catwalk - components: - - parent: 15 - pos: 48.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2525 - type: Catwalk - components: - - parent: 15 - pos: 49.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2526 - type: Catwalk - components: - - parent: 15 - pos: 50.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2527 - type: Catwalk - components: - - parent: 15 - pos: 51.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2528 - type: Catwalk - components: - - parent: 15 - pos: 51.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2529 - type: Catwalk - components: - - parent: 15 - pos: 51.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2530 - type: Catwalk - components: - - parent: 15 - pos: 51.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2531 - type: Catwalk - components: - - parent: 15 - pos: 51.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2532 - type: Catwalk - components: - - parent: 15 - pos: 50.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2533 - type: Catwalk - components: - - parent: 15 - pos: 49.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2534 - type: Catwalk - components: - - parent: 15 - pos: 48.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2535 - type: Catwalk - components: - - parent: 15 - pos: 47.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2536 - type: Catwalk - components: - - parent: 15 - pos: 47.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2537 - type: Catwalk - components: - - parent: 15 - pos: 47.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2538 - type: WardrobePajamaFilled - components: - - parent: 15 - pos: -27.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2539 - type: WardrobeGreyFilled - components: - - parent: 15 - pos: -27.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2540 - type: LockerGeneric - components: - - parent: 15 - pos: -11.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2541 - type: LockerL3JanitorFilled - components: - - parent: 15 - pos: -13.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2542 - type: WardrobeScienceFilled - components: - - parent: 15 - pos: -11.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2543 - type: LockerResearchDirectorFilled - components: - - parent: 15 - pos: -2.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2544 - type: LockerEngineerFilled - components: - - parent: 15 - pos: 35.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2545 - type: LockerEngineerFilled - components: - - parent: 15 - pos: 35.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2546 - type: LockerChiefEngineerFilled - components: - - parent: 15 - pos: 37.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2547 - type: LockerAtmosphericsFilled - components: - - parent: 15 - pos: 36.5,8.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2548 - type: LockerAtmosphericsFilled - components: - - parent: 15 - pos: 36.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2549 - type: WardrobeAtmosphericsFilled - components: - - parent: 15 - pos: 36.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2550 - type: WardrobeEngineeringFilled - components: - - parent: 15 - pos: 32.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2551 - type: LockerHeadOfPersonnelFilled - components: - - parent: 15 - pos: 10.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2552 - type: WardrobeBlackFilled - components: - - parent: 15 - pos: -28.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2553 - type: LockerChiefMedicalOfficerFilled - components: - - parent: 15 - pos: 21.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2554 - type: LockerL3SecurityFilled - components: - - parent: 15 - pos: -11.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2555 - type: WardrobeMedicalDoctorFilled - components: - - parent: 15 - pos: 23.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2556 - type: LockerSecurityFilled - components: - - parent: 15 - pos: -14.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2557 - type: LockerSecurityFilled - components: - - parent: 15 - pos: -13.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2558 - type: LockerSecurityFilled - components: - - parent: 15 - pos: -12.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2559 - type: LockerL3VirologyFilled - components: - - parent: 15 - pos: 24.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2560 - type: LockerMedicineFilled - components: - - parent: 15 - pos: 18.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2561 - type: WardrobeWhiteFilled - components: - - parent: 15 - pos: 7.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2562 - type: LockerChefFilled - components: - - parent: 15 - pos: -14.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2563 - type: LockerJanitorFilled - components: - - parent: 15 - pos: -19.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2564 - type: LockerL3JanitorFilled - components: - - parent: 15 - pos: -19.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2565 - type: WardrobePrisonFilled - components: - - parent: 15 - pos: 0.5,14.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2566 - type: PottedPlantRandom - components: - - parent: 15 - pos: 0.5,26.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2567 - type: WardrobeCargoFilled +- uid: 1223 + type: Poweredlight components: - - parent: 15 - pos: 23.5,7.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -22,-3.5 + rot: 3.141592653589793 rad type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2568 - type: LockerCaptainFilled - components: - - parent: 15 - pos: 6.5,26.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2569 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -34.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2570 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -39.5,2.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2571 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -37.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2572 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -11.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2573 - type: LockerFireFilled - components: - - parent: 15 - pos: -14.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2574 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: 23.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2575 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: 26.5,12.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2576 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -7.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2577 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -15.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2578 - type: LockerFireFilled - components: - - parent: 15 - pos: 9.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2579 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: 8.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2580 - type: LockerFireFilled - components: - - parent: 15 - pos: 23.5,0.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2581 - type: LockerFireFilled - components: - - parent: 15 - pos: 44.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2582 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: 43.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2583 - type: LockerFireFilled - components: - - parent: 15 - pos: 28.5,12.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2584 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: 12.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2585 - type: LockerFireFilled - components: - - parent: 15 - pos: 13.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2586 - type: LockerBombFilled - components: - - parent: 15 - pos: -12.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2587 - type: LockerBombFilled - components: - - parent: 15 - pos: -17.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2588 - type: LockerFireFilled - components: - - parent: 15 - pos: -11.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2589 - type: LockerFireFilled - components: - - parent: 15 - pos: -37.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2590 - type: PottedPlantRandom - components: - - parent: 15 - pos: -39.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2591 - type: PottedPlantRandom +- uid: 1224 + type: Poweredlight components: - - parent: 15 - pos: -25.5,-8.5 - rot: -1.5707963267948966 rad + - parent: 857 + pos: -26,-3.5 type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2592 - type: LockerEmergencyFilledRandom +- uid: 1225 + type: Poweredlight components: - - parent: 15 - pos: -21.5,-8.5 + - parent: 857 + pos: -20.5,3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1226 + type: Poweredlight + components: + - parent: 857 + pos: -30.5,3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1227 + type: Poweredlight + components: + - parent: 857 + pos: -32.5,6 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1228 + type: Poweredlight + components: + - parent: 857 + pos: -23,8.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1229 + type: LockerWeldingSupplies + components: + - parent: 857 + pos: 38.5,9.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -31109,22 +23012,26 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 2593 - type: PottedPlantRD +- uid: 1230 + type: Welder components: - - parent: 15 - pos: -2.5,-22.5 + - parent: 857 + pos: -29.434454,8.191761 rot: -1.5707963267948966 rad type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2594 - type: LockerEmergencyFilledRandom + - anchored: False + type: Collidable +- uid: 1231 + type: ComputerPowerMonitoring components: - - parent: 15 - pos: -0.5,14.5 + - parent: 857 + pos: 29.5,-1.5 + type: Transform +- uid: 1232 + type: LockerToolFilled + components: + - parent: 857 + pos: 35.5,-0.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -31135,11 +23042,20 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 2595 - type: LockerEmergencyFilledRandom +- uid: 1233 + type: Multitool components: - - parent: 15 - pos: 9.5,30.5 + - parent: 857 + pos: -29.340704,7.4573865 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1234 + type: LockerToolFilled + components: + - parent: 857 + pos: 35.5,0.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -31150,11 +23066,96 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 2596 - type: LockerEmergencyFilledRandom +- uid: 1235 + type: Poweredlight components: - - parent: 15 - pos: -2.5,30.5 + - parent: 857 + pos: -30,9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1236 + type: PoweredSmallLight + components: + - parent: 857 + pos: -19,9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1237 + type: Table + components: + - parent: 857 + pos: 10.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1238 + type: Table + components: + - parent: 857 + pos: 10.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1239 + type: PoweredSmallLight + components: + - parent: 857 + pos: -14.5,-16 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1240 + type: PoweredSmallLight + components: + - parent: 857 + pos: -7,-12.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1241 + type: PoweredSmallLight + components: + - parent: 857 + pos: -11,-10.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1242 + type: LockerToolFilled + components: + - parent: 857 + pos: -27.5,11.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -31165,682 +23166,3136 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 2597 - type: PottedPlantRandom +- uid: 1243 + type: Poweredlight components: - - parent: 15 - pos: 7.5,23.5 + - parent: 857 + pos: -27.5,12 rot: -1.5707963267948966 rad type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2598 - type: PottedPlantRandom +- uid: 1244 + type: VendingMachineCola components: - - parent: 15 - pos: 10.5,16.5 + - parent: 857 + pos: -34.5,2.5 rot: -1.5707963267948966 rad type: Transform +- uid: 1245 + type: VendingMachineSnack + components: + - parent: 857 + pos: -22.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1246 + type: Table + components: + - parent: 857 + pos: 15.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1247 + type: Table + components: + - parent: 857 + pos: 18.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1248 + type: Poweredlight + components: + - parent: 857 + pos: -5.5,-8 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2599 - type: LockerEmergencyFilledRandom +- uid: 1249 + type: Poweredlight components: - - parent: 15 - pos: 24.5,13.5 + - parent: 857 + pos: -3,-6.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1250 + type: Table + components: + - parent: 857 + pos: -29.5,9.5 rot: -1.5707963267948966 rad type: Transform +- uid: 1251 + type: Table + components: + - parent: 857 + pos: -29.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1252 + type: LowWall + components: + - parent: 857 + pos: -36.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1253 + type: LowWall + components: + - parent: 857 + pos: -35.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1254 + type: LowWall + components: + - parent: 857 + pos: -8.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1255 + type: LowWall + components: + - parent: 857 + pos: -7.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1256 + type: LowWall + components: + - parent: 857 + pos: -6.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1257 + type: solid_wall + components: + - parent: 857 + pos: -33.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1258 + type: LowWall + components: + - parent: 857 + pos: -5.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1259 + type: Chair + components: + - parent: 857 + pos: -8.5,20.5 + type: Transform - anchored: False type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2600 - type: LockerEmergencyFilledRandom +- uid: 1260 + type: solid_wall components: - - parent: 15 - pos: -23.5,11.5 + - parent: 857 + pos: -33.5,2.5 rot: -1.5707963267948966 rad type: Transform +- uid: 1261 + type: PoweredSmallLight + components: + - parent: 857 + pos: -19,16.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1262 + type: PoweredSmallLight + components: + - parent: 857 + pos: -14.5,26 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1263 + type: PoweredSmallLight + components: + - parent: 857 + pos: -19,22.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1264 + type: PoweredSmallLight + components: + - parent: 857 + pos: -18,9.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1265 + type: PoweredSmallLight + components: + - parent: 857 + pos: -0.5,-12 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1266 + type: Paper + components: + - parent: 857 + pos: 8.598616,26.075901 + type: Transform - anchored: False type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2601 - type: PottedPlantRandom +- uid: 1267 + type: Poweredlight components: - - parent: 15 - pos: -24.5,11.5 + - parent: 857 + pos: -11,8.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1268 + type: Poweredlight + components: + - parent: 857 + pos: -18.5,6 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1269 + type: Poweredlight + components: + - parent: 857 + pos: -11.5,6 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1270 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,6 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1271 + type: solid_wall + components: + - parent: 857 + pos: -33.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1272 + type: VendingMachineEngivend + components: + - parent: 857 + pos: 31.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1273 + type: Table + components: + - parent: 857 + pos: 25.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1274 + type: Table + components: + - parent: 857 + pos: 29.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1275 + type: Poweredlight + components: + - parent: 857 + pos: 6.0308504,2 + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1276 + type: Poweredlight + components: + - parent: 857 + pos: -0.5,-5 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1277 + type: Poweredlight + components: + - parent: 857 + pos: 2,-9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1278 + type: Poweredlight + components: + - parent: 857 + pos: 2,-4.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1279 + type: SignDirectionalSci + components: + - parent: 857 + pos: 1.3437586,6.2515917 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1280 + type: Poweredlight + components: + - parent: 857 + pos: 2,7.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1281 + type: Poweredlight + components: + - parent: 857 + pos: 2,12.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1282 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,10 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1283 + type: PoweredSmallLight + components: + - parent: 857 + pos: -1,8.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1284 + type: PoweredSmallLight + components: + - parent: 857 + pos: -4,8.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1285 + type: Poweredlight + components: + - parent: 857 + pos: -5,7.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1286 + type: Poweredlight + components: + - parent: 857 + pos: -10,7.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1287 + type: Poweredlight + components: + - parent: 857 + pos: -1.5,19 rot: -1.5707963267948966 rad type: Transform - containers: - potted_plant_hide: + light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2602 - type: LockerEmergencyFilledRandom +- uid: 1288 + type: Poweredlight components: - - parent: 15 - pos: 5.5,-21.5 + - parent: 857 + pos: -5,16.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1289 + type: Poweredlight + components: + - parent: 857 + pos: -6.0158176,18 rot: -1.5707963267948966 rad type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1290 + type: Poweredlight + components: + - parent: 857 + pos: -15,20.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1291 + type: Poweredlight + components: + - parent: 857 + pos: -7.5,22 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1292 + type: solid_wall + components: + - parent: 857 + pos: -34.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1293 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1294 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1295 + type: PoweredSmallLight + components: + - parent: 857 + pos: -7.5,26 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1296 + type: AirlockMaintCommonLocked + components: + - parent: 857 + pos: 1.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1297 + type: PoweredSmallLight + components: + - parent: 857 + pos: -4,17.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1298 + type: Poweredlight + components: + - parent: 857 + pos: -3,25.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1299 + type: Poweredlight + components: + - parent: 857 + pos: 10,30.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1300 + type: Poweredlight + components: + - parent: 857 + pos: -3,30.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1301 + type: Poweredlight + components: + - parent: 857 + pos: 5.5,28 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1302 + type: Poweredlight + components: + - parent: 857 + pos: 1.5,28 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1303 + type: Poweredlight + components: + - parent: 857 + pos: 10,25.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1304 + type: Poweredlight + components: + - parent: 857 + pos: 5,23.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1305 + type: Poweredlight + components: + - parent: 857 + pos: 2,23.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1306 + type: Poweredlight + components: + - parent: 857 + pos: 5.5,16 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1307 + type: Poweredlight + components: + - parent: 857 + pos: 1.5,16 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1308 + type: Poweredlight + components: + - parent: 857 + pos: 8.5,16 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1309 + type: solid_wall + components: + - parent: 857 + pos: -34.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1310 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1311 + type: Poweredlight + components: + - parent: 857 + pos: 8.5,22 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1312 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1313 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1314 + type: solid_wall + components: + - parent: 857 + pos: 8.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1315 + type: solid_wall + components: + - parent: 857 + pos: 7.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1316 + type: PoweredSmallLight + components: + - parent: 857 + pos: 17,15.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1317 + type: PoweredSmallLight + components: + - parent: 857 + pos: 14,16.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1318 + type: PoweredSmallLight + components: + - parent: 857 + pos: 8.5,15 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1319 + type: Poweredlight + components: + - parent: 857 + pos: 6,9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1320 + type: Poweredlight + components: + - parent: 857 + pos: 11,9.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1321 + type: Poweredlight + components: + - parent: 857 + pos: 13.5,3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1322 + type: Poweredlight + components: + - parent: 857 + pos: 18.5,3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1323 + type: Poweredlight + components: + - parent: 857 + pos: 23.5,3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1324 + type: Poweredlight + components: + - parent: 857 + pos: 17,7.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1325 + type: Poweredlight + components: + - parent: 857 + pos: 12,10.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1326 + type: Poweredlight + components: + - parent: 857 + pos: 15.5,13 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1327 + type: Poweredlight + components: + - parent: 857 + pos: 18,8.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1328 + type: Poweredlight + components: + - parent: 857 + pos: 18,13.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1329 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1330 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1331 + type: Poweredlight + components: + - parent: 857 + pos: 5.5,-22 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1332 + type: Poweredlight + components: + - parent: 857 + pos: 1.5,-22 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1333 + type: Poweredlight + components: + - parent: 857 + pos: 6,-17.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1334 + type: Poweredlight + components: + - parent: 857 + pos: 1,-17.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1335 + type: SignCargo + components: + - parent: 857 + pos: 16.688538,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1336 + type: Poweredlight + components: + - parent: 857 + pos: 13,-3.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1337 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1338 + type: Poweredlight + components: + - parent: 857 + pos: 12.5,2 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1339 + type: SignDirectionalMed + components: + - parent: 857 + pos: 5.768486,-12.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1340 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1341 + type: Poweredlight + components: + - parent: 857 + pos: 6,-4.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1342 + type: Poweredlight + components: + - parent: 857 + pos: 6.5,-12 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1343 + type: Poweredlight + components: + - parent: 857 + pos: 9.5,-17 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1344 + type: Poweredlight + components: + - parent: 857 + pos: 12,-12.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1345 + type: solid_wall + components: + - parent: 857 + pos: 51.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1346 + type: solid_wall + components: + - parent: 857 + pos: 47.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1347 + type: ChairOfficeLight + components: + - parent: 857 + pos: 10.5,-16.5 + rot: 3.141592653589793 rad + type: Transform - anchored: False type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2603 - type: PottedPlantRandom +- uid: 1348 + type: ChairOfficeLight components: - - parent: 15 - pos: 1.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2604 - type: LockerBoozeFilled - components: - - parent: 15 - pos: -3.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2605 - type: VendingMachineBooze - components: - - parent: 15 - pos: -4.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2606 - type: LockerEmergencyFilledRandom - components: - - parent: 15 - pos: -9.5,23.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2607 - type: PottedPlantRandom - components: - - parent: 15 - pos: 5.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2608 - type: PottedPlantRandom - components: - - parent: 15 - pos: 12.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2609 - type: PottedPlantRandomPlastic - components: - - parent: 15 - pos: 29.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2610 - type: PottedPlantRandom - components: - - parent: 15 - pos: 21.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2611 - type: PottedPlantRandomPlastic - components: - - parent: 15 - pos: -12.5,7.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - potted_plant_hide: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2612 - type: SpawnPointCargoTechnician - components: - - parent: 15 - pos: 14.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2613 - type: SpawnPointCargoTechnician - components: - - parent: 15 - pos: 21.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2614 - type: SpawnPointChiefMedicalOfficer - components: - - parent: 15 - pos: 24.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2615 - type: SpawnPointMedicalDoctor - components: - - parent: 15 - pos: 6.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2616 - type: SpawnPointMedicalDoctor - components: - - parent: 15 + - parent: 857 pos: 14.5,0.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1349 + type: Poweredlight + components: + - parent: 857 + pos: 15.5,2 rot: -1.5707963267948966 rad type: Transform -- uid: 2617 - type: SpawnPointMedicalDoctor + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1350 + type: Poweredlight components: - - parent: 15 - pos: 22.5,-6.5 + - parent: 857 + pos: 19,-0.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1351 + type: Poweredlight + components: + - parent: 857 + pos: 20,-8.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1352 + type: Poweredlight + components: + - parent: 857 + pos: 13.5,-7 rot: -1.5707963267948966 rad type: Transform -- uid: 2618 - type: SpawnPointMedicalDoctor + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1353 + type: Poweredlight components: - - parent: 15 - pos: 16.5,-9.5 + - parent: 857 + pos: 25,11.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1354 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2619 - type: SpawnPointMedicalDoctor +- uid: 1355 + type: PoweredSmallLight components: - - parent: 15 - pos: 11.5,-9.5 + - parent: 857 + pos: 30.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1356 + type: PoweredSmallLight + components: + - parent: 857 + pos: 25.5,-1 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1357 + type: PoweredSmallLight + components: + - parent: 857 + pos: 9.5,-18 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1358 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2620 - type: SpawnPointMedicalDoctor +- uid: 1359 + type: solid_wall components: - - parent: 15 - pos: 15.5,-15.5 + - parent: 857 + pos: -31.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2621 - type: SpawnPointResearchDirector +- uid: 1360 + type: ApcExtensionCable components: - - parent: 15 - pos: -5.5,-23.5 + - parent: 857 + pos: -32.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2622 - type: SpawnPointScientist + - deadThreshold: 100 + type: Destructible +- uid: 1361 + type: solid_wall components: - - parent: 15 - pos: -9.5,-17.5 + - parent: 857 + pos: -31.5,2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2623 - type: SpawnPointScientist +- uid: 1362 + type: PoweredSmallLight components: - - parent: 15 - pos: -8.5,-18.5 + - parent: 857 + pos: 12.5,-19 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1363 + type: solid_wall + components: + - parent: 857 + pos: 45.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2624 - type: SpawnPointScientist +- uid: 1364 + type: solid_wall components: - - parent: 15 - pos: -0.5,-14.5 + - parent: 857 + pos: 45.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2625 - type: SpawnPointScientist +- uid: 1365 + type: PoweredSmallLight components: - - parent: 15 - pos: -4.5,-15.5 + - parent: 857 + pos: 25.5,-19 rot: -1.5707963267948966 rad type: Transform -- uid: 2626 - type: SpawnPointScientist + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1366 + type: PoweredSmallLight components: - - parent: 15 - pos: -15.5,-19.5 + - parent: 857 + pos: 28,-15.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1367 + type: Catwalk + components: + - parent: 857 + pos: 7.5,-19.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2627 - type: SpawnPointBartender +- uid: 1368 + type: Catwalk components: - - parent: 15 - pos: -5.5,-5.5 + - parent: 857 + pos: 14.5,-19.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2628 - type: SpawnPointClown +- uid: 1369 + type: Catwalk components: - - parent: 15 - pos: -18.5,-8.5 + - parent: 857 + pos: 21.5,-10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2629 - type: SpawnPointJanitor +- uid: 1370 + type: Catwalk components: - - parent: 15 - pos: -20.5,9.5 + - parent: 857 + pos: 26.5,-10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2630 - type: SpawnPointHeadOfSecurity +- uid: 1371 + type: solid_wall components: - - parent: 15 - pos: -6.5,20.5 + - parent: 857 + pos: -30.5,2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2631 - type: SpawnPointCaptain +- uid: 1372 + type: PoweredSmallLight components: - - parent: 15 - pos: 9.5,25.5 + - parent: 857 + pos: 28,-10.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1373 + type: Window + components: + - parent: 857 + pos: -25.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2632 - type: SpawnPointHeadOfPersonnel +- uid: 1374 + type: PoweredSmallLight components: - - parent: 15 - pos: 7.5,20.5 + - parent: 857 + pos: 24,0.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1375 + type: PoweredSmallLight + components: + - parent: 857 + pos: 26,-4.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1376 + type: PoweredSmallLight + components: + - parent: 857 + pos: 35.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1377 + type: PoweredSmallLight + components: + - parent: 857 + pos: 38.5,-3 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1378 + type: PoweredSmallLight + components: + - parent: 857 + pos: 26,11.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1379 + type: Poweredlight + components: + - parent: 857 + pos: -35,-4.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1380 + type: Poweredlight + components: + - parent: 857 + pos: 25,1.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1381 + type: Poweredlight + components: + - parent: 857 + pos: 30,1.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1382 + type: SignEngineering + components: + - parent: 857 + pos: 26.30795,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2633 - type: SpawnPointChiefEngineer + - deadThreshold: 100 + type: Destructible +- uid: 1383 + type: Poweredlight components: - - parent: 15 - pos: 40.5,-0.5 + - parent: 857 + pos: 31,0.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1384 + type: Poweredlight + components: + - parent: 857 + pos: 31.5,2 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1385 + type: Poweredlight + components: + - parent: 857 + pos: 35.5,7 rot: -1.5707963267948966 rad type: Transform -- uid: 2634 - type: SpawnPointStationEngineer + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1386 + type: Poweredlight components: - - parent: 15 + - parent: 857 + pos: 29,-2.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1387 + type: Poweredlight + components: + - parent: 857 + pos: 36,-2.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1388 + type: solid_wall + components: + - parent: 857 + pos: -27.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1389 + type: solid_wall + components: + - parent: 857 + pos: -26.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1390 + type: Poweredlight + components: + - parent: 857 + pos: 30,12.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1391 + type: Poweredlight + components: + - parent: 857 + pos: 37,12.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1392 + type: Poweredlight + components: + - parent: 857 + pos: 36.5,8 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1393 + type: PoweredSmallLight + components: + - parent: 857 + pos: 44,-1.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1394 + type: PaintingMonkey + components: + - parent: 857 + pos: -7.6996727,-5.5 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1395 + type: reinforced_wall + components: + - parent: 857 + pos: 12.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1396 + type: Poweredlight + components: + - parent: 857 + pos: 30.5,8 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1397 + type: Poweredlight + components: + - parent: 857 + pos: 38.5,-2 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1398 + type: Poweredlight + components: + - parent: 857 + pos: 37,2.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1399 + type: SignDirectionalEng + components: + - parent: 857 + pos: 18.507353,6.5 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1400 + type: WaterTankFull + components: + - parent: 857 + pos: 35.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1401 + type: WaterTankFull + components: + - parent: 857 + pos: -19.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1402 + type: ReinforcedWindow + components: + - parent: 857 + pos: 51.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1403 + type: solid_wall + components: + - parent: 857 + pos: -26.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1404 + type: solid_wall + components: + - parent: 857 + pos: -26.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1405 + type: ReinforcedWindow + components: + - parent: 857 + pos: 51.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1406 + type: Window + components: + - parent: 857 + pos: 11.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1407 + type: Window + components: + - parent: 857 + pos: 10.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1408 + type: Window + components: + - parent: 857 + pos: 9.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1409 + type: ReinforcedWindow + components: + - parent: 857 + pos: 5.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1410 + type: ReinforcedWindow + components: + - parent: 857 + pos: 5.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1411 + type: ReinforcedWindow + components: + - parent: 857 + pos: 4.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1412 + type: ReinforcedWindow + components: + - parent: 857 + pos: 3.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1413 + type: ReinforcedWindow + components: + - parent: 857 + pos: 2.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1414 + type: Window + components: + - parent: 857 + pos: -1.5,27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1415 + type: Window + components: + - parent: 857 + pos: -0.5,27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1416 + type: ReinforcedWindow + components: + - parent: 857 + pos: 3.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1417 + type: ReinforcedWindow + components: + - parent: 857 + pos: 10.5,29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1418 + type: ReinforcedWindow + components: + - parent: 857 + pos: 9.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1419 + type: ReinforcedWindow + components: + - parent: 857 + pos: 9.5,31.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1420 + type: ReinforcedWindow + components: + - parent: 857 + pos: 8.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1421 + type: ReinforcedWindow + components: + - parent: 857 + pos: 8.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1422 + type: ReinforcedWindow + components: + - parent: 857 + pos: 7.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1423 + type: ReinforcedWindow + components: + - parent: 857 + pos: 6.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1424 + type: ReinforcedWindow + components: + - parent: 857 + pos: 5.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1425 + type: ReinforcedWindow + components: + - parent: 857 + pos: 4.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1426 + type: ReinforcedWindow + components: + - parent: 857 + pos: 3.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1427 + type: ReinforcedWindow + components: + - parent: 857 + pos: 2.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1428 + type: ReinforcedWindow + components: + - parent: 857 + pos: 1.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1429 + type: ReinforcedWindow + components: + - parent: 857 + pos: 0.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1430 + type: ReinforcedWindow + components: + - parent: 857 + pos: -0.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1431 + type: ReinforcedWindow + components: + - parent: 857 + pos: -1.5,33.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1432 + type: ReinforcedWindow + components: + - parent: 857 + pos: -1.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1433 + type: ReinforcedWindow + components: + - parent: 857 + pos: -3.5,29.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1434 + type: ReinforcedWindow + components: + - parent: 857 + pos: -2.5,32.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1435 + type: ReinforcedWindow + components: + - parent: 857 + pos: -2.5,31.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1436 + type: Window + components: + - parent: 857 + pos: -7.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1437 + type: Window + components: + - parent: 857 + pos: -10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1438 + type: ReinforcedWindow + components: + - parent: 857 + pos: -7.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1439 + type: ReinforcedWindow + components: + - parent: 857 + pos: -8.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1440 + type: ReinforcedWindow + components: + - parent: 857 + pos: -3.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1441 + type: ReinforcedWindow + components: + - parent: 857 + pos: -0.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1442 + type: ReinforcedWindow + components: + - parent: 857 + pos: 0.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1443 + type: ReinforcedWindow + components: + - parent: 857 + pos: -0.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1444 + type: ReinforcedWindow + components: + - parent: 857 + pos: -2.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1445 + type: ReinforcedWindow + components: + - parent: 857 + pos: -3.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1446 + type: solid_wall + components: + - parent: 857 + pos: -28.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1447 + type: solid_wall + components: + - parent: 857 + pos: -29.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1448 + type: ReinforcedWindow + components: + - parent: 857 + pos: -35.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1449 + type: ReinforcedWindow + components: + - parent: 857 + pos: -36.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1450 + type: ReinforcedWindow + components: + - parent: 857 + pos: -37.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1451 + type: solid_wall + components: + - parent: 857 + pos: -39.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1452 + type: solid_wall + components: + - parent: 857 + pos: -25.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1453 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1454 + type: ReinforcedWindow + components: + - parent: 857 + pos: -41.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1455 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1456 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1457 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1458 + type: ReinforcedWindow + components: + - parent: 857 + pos: -41.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1459 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1460 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1461 + type: ReinforcedWindow + components: + - parent: 857 + pos: -41.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1462 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1463 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1464 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1465 + type: ReinforcedWindow + components: + - parent: 857 + pos: -41.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1466 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1467 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1468 + type: ReinforcedWindow + components: + - parent: 857 + pos: -40.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1469 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1470 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1471 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1472 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1473 + type: solid_wall + components: + - parent: 857 + pos: -38.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1474 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1475 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1476 + type: ReinforcedWindow + components: + - parent: 857 + pos: -39.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1477 + type: ReinforcedWindow + components: + - parent: 857 + pos: -37.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1478 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1479 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1480 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1481 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1482 + type: ReinforcedWindow + components: + - parent: 857 + pos: -38.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1483 + type: ReinforcedWindow + components: + - parent: 857 + pos: -37.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1484 + type: ReinforcedWindow + components: + - parent: 857 + pos: -36.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1485 + type: ReinforcedWindow + components: + - parent: 857 + pos: -35.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1486 + type: LowWall + components: + - parent: 857 + pos: -27.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1487 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-6.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 1488 + type: LowWall + components: + - parent: 857 + pos: -29.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1489 + type: Window + components: + - parent: 857 + pos: -29.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1490 + type: Window + components: + - parent: 857 + pos: -28.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1491 + type: Window + components: + - parent: 857 + pos: -27.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1492 + type: Window + components: + - parent: 857 + pos: -6.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1493 + type: Window + components: + - parent: 857 + pos: -5.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1494 + type: Window + components: + - parent: 857 + pos: -2.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1495 + type: Window + components: + - parent: 857 + pos: -4.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1496 + type: Window + components: + - parent: 857 + pos: -5.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1497 + type: Window + components: + - parent: 857 + pos: -4.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1498 + type: Window + components: + - parent: 857 + pos: -2.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1499 + type: Window + components: + - parent: 857 + pos: 0.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1500 + type: Window + components: + - parent: 857 + pos: 5.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1501 + type: Window + components: + - parent: 857 + pos: 5.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1502 + type: Window + components: + - parent: 857 + pos: 5.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1503 + type: Window + components: + - parent: 857 + pos: 7.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1504 + type: Window + components: + - parent: 857 + pos: 10.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1505 + type: Window + components: + - parent: 857 + pos: 11.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1506 + type: Window + components: + - parent: 857 + pos: 11.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1507 + type: LowWall + components: + - parent: 857 + pos: 11.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1508 + type: LowWall + components: + - parent: 857 + pos: 11.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1509 + type: LowWall + components: + - parent: 857 + pos: 7.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1510 + type: LowWall + components: + - parent: 857 + pos: 10.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1511 + type: Window + components: + - parent: 857 + pos: 20.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1512 + type: LowWall + components: + - parent: 857 + pos: 20.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1513 + type: LowWall + components: + - parent: 857 + pos: 20.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1514 + type: Table + components: + - parent: 857 + pos: 6.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1515 + type: Window + components: + - parent: 857 + pos: 18.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1516 + type: Window + components: + - parent: 857 + pos: 16.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1517 + type: Window + components: + - parent: 857 + pos: 13.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1518 + type: Window + components: + - parent: 857 + pos: 13.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1519 + type: Window + components: + - parent: 857 + pos: 12.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1520 + type: Window + components: + - parent: 857 + pos: 6.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1521 + type: Window + components: + - parent: 857 + pos: 9.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1522 + type: Window + components: + - parent: 857 + pos: 8.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1523 + type: Window + components: + - parent: 857 + pos: 7.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1524 + type: Window + components: + - parent: 857 + pos: 8.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1525 + type: Window + components: + - parent: 857 + pos: 9.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1526 + type: Window + components: + - parent: 857 + pos: 10.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1527 + type: Window + components: + - parent: 857 + pos: 11.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1528 + type: Window + components: + - parent: 857 + pos: 13.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1529 + type: Window + components: + - parent: 857 + pos: 13.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1530 + type: Window + components: + - parent: 857 + pos: 13.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1531 + type: Window + components: + - parent: 857 + pos: 22.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1532 + type: Window + components: + - parent: 857 + pos: 21.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1533 + type: Window + components: + - parent: 857 + pos: 20.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1534 + type: Window + components: + - parent: 857 + pos: 19.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1535 + type: Window + components: + - parent: 857 + pos: 14.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1536 + type: ReinforcedWindow + components: + - parent: 857 + pos: 8.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1537 + type: ReinforcedWindow + components: + - parent: 857 + pos: 6.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1538 + type: ReinforcedWindow + components: + - parent: 857 + pos: 6.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1539 + type: ReinforcedWindow + components: + - parent: 857 + pos: 14.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1540 + type: ReinforcedWindow + components: + - parent: 857 + pos: 14.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1541 + type: ReinforcedWindow + components: + - parent: 857 + pos: 14.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1542 + type: LowWall + components: + - parent: 857 + pos: 14.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1543 + type: LowWall + components: + - parent: 857 + pos: 14.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1544 + type: LowWall + components: + - parent: 857 + pos: 14.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1545 + type: Chair + components: + - parent: 857 + pos: -3.5,-23.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1546 + type: Chair + components: + - parent: 857 + pos: 38.5,-0.5 + type: Transform + - anchored: False + type: Collidable +- uid: 1547 + type: Table + components: + - parent: 857 + pos: 39.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1548 + type: VendingMachineYouTool + components: + - parent: 857 + pos: 31.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1549 + type: ReinforcedWindow + components: + - parent: 857 + pos: 21.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1550 + type: SignArmory + components: + - parent: 857 + pos: -13.678196,17.5 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1551 + type: SignConference + components: + - parent: 857 + pos: -2.6767635,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1552 + type: SignDirectionalBridge + components: + - parent: 857 + pos: 1.3437586,6.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1553 + type: WeldingFuelTank + components: + - parent: 857 + pos: 33.5,12.5 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1554 + type: Table + components: + - parent: 857 + pos: 29.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1555 + type: ComputerAlert + components: + - parent: 857 + pos: 29.5,-2.5 + type: Transform +- uid: 1556 + type: ReinforcedWindow + components: + - parent: 857 + pos: 23.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1557 + type: ReinforcedWindow + components: + - parent: 857 + pos: 23.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1558 + type: ReinforcedWindow + components: + - parent: 857 + pos: 23.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1559 + type: ReinforcedWindow + components: + - parent: 857 + pos: 21.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1560 + type: SignSmoking + components: + - parent: 857 + pos: -1.2919803,-7.6148567 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1561 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1562 + type: solid_wall + components: + - parent: 857 + pos: -20.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1563 + type: ReinforcedWindow + components: + - parent: 857 + pos: 36.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1564 + type: ReinforcedWindow + components: + - parent: 857 + pos: 36.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1565 + type: ReinforcedWindow + components: + - parent: 857 + pos: 35.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1566 + type: ReinforcedWindow + components: + - parent: 857 + pos: 34.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1567 + type: ReinforcedWindow + components: + - parent: 857 + pos: 33.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1568 + type: ReinforcedWindow + components: + - parent: 857 + pos: 32.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1569 + type: ReinforcedWindow + components: + - parent: 857 + pos: 31.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1570 + type: ReinforcedWindow + components: + - parent: 857 + pos: 30.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1571 + type: ReinforcedWindow + components: + - parent: 857 + pos: 30.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1572 + type: Window + components: + - parent: 857 + pos: 34.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1573 + type: Window + components: + - parent: 857 + pos: 32.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1574 + type: Catwalk + components: + - parent: 857 + pos: -16.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1575 + type: Catwalk + components: + - parent: 857 + pos: -13.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1576 + type: Table + components: + - parent: 857 + pos: 31.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1577 + type: Catwalk + components: + - parent: 857 + pos: -8.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1578 + type: Catwalk + components: + - parent: 857 + pos: -9.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1579 + type: Catwalk + components: + - parent: 857 + pos: -9.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1580 + type: SignHead + components: + - parent: 857 + pos: -9.687853,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1581 + type: ChairOfficeDark + components: + - parent: 857 pos: 30.5,-2.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1582 + type: Catwalk + components: + - parent: 857 + pos: 0.5,-7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2635 - type: solid_wall +- uid: 1583 + type: CrateGeneric components: - - parent: 15 - pos: 45.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2636 - type: Wire - components: - - parent: 15 - pos: 22.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2637 - type: Wire - components: - - parent: 15 - pos: 22.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2638 - type: Wire - components: - - parent: 15 - pos: 22.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2639 - type: Wire - components: - - parent: 15 - pos: 22.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2640 - type: Wire - components: - - parent: 15 - pos: 22.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2641 - type: Wire - components: - - parent: 15 - pos: 21.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2642 - type: Wire - components: - - parent: 15 - pos: 20.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2643 - type: Wire - components: - - parent: 15 - pos: 19.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2644 - type: Wire - components: - - parent: 15 - pos: 14.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2645 - type: Wire - components: - - parent: 15 - pos: 14.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2646 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2647 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2648 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2649 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2650 - type: solid_wall - components: - - parent: 15 - pos: 23.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2651 - type: solid_wall - components: - - parent: 15 - pos: 22.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2652 - type: solid_wall - components: - - parent: 15 - pos: 21.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2653 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2654 - type: solid_wall - components: - - parent: 15 - pos: 19.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2655 - type: solid_wall - components: - - parent: 15 - pos: 18.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2656 - type: solid_wall - components: - - parent: 15 - pos: 17.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2657 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2658 - type: solid_wall - components: - - parent: 15 - pos: 15.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2659 - type: solid_wall - components: - - parent: 15 - pos: 14.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2660 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2661 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2662 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2663 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2664 - type: solid_wall - components: - - parent: 15 - pos: 13.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2665 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2666 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2667 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2668 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2669 - type: solid_wall - components: - - parent: 15 - pos: 20.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2670 - type: solid_wall - components: - - parent: 15 - pos: 17.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2671 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2672 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2673 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2674 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2675 - type: solid_wall - components: - - parent: 15 - pos: 16.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2676 - type: LowWall - components: - - parent: 15 - pos: 17.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2677 - type: LowWall - components: - - parent: 15 - pos: 18.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2678 - type: Window - components: - - parent: 15 - pos: 17.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2679 - type: Window - components: - - parent: 15 - pos: 18.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2680 - type: Table - components: - - parent: 15 - pos: 19.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2681 - type: Table - components: - - parent: 15 - pos: 19.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2682 - type: WardrobeWhite - components: - - parent: 15 - pos: 17.5,-22.5 + - parent: 857 + pos: 39.5,13.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -31851,5725 +26306,5742 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 2683 - type: AirlockExternalLocked +- uid: 1584 + type: CrateGeneric components: - - name: Escape Shuttle Dock - type: MetaData - - parent: 15 - pos: -41.5,4.5 + - parent: 857 + pos: 38.5,13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2684 - type: AirlockExternalLocked + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 1585 + type: Table components: - - name: Escape Shuttle Dock - type: MetaData - - parent: 15 - pos: -39.5,4.5 + - parent: 857 + pos: 6.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2685 - type: AirlockExternalLocked +- uid: 1586 + type: Catwalk components: - - name: Escape Shuttle Dock - type: MetaData - - parent: 15 - pos: -39.5,8.5 + - parent: 857 + pos: -32.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2686 - type: AirlockExternalLocked +- uid: 1587 + type: Catwalk components: - - name: Escape Shuttle Dock - type: MetaData - - parent: 15 - pos: -41.5,8.5 + - parent: 857 + pos: -33.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2687 - type: AirlockExternalLocked +- uid: 1588 + type: Catwalk components: - - name: Arrivals Shuttle Dock - type: MetaData - - parent: 15 - pos: -37.5,-3.5 + - parent: 857 + pos: -32.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2688 - type: AirlockExternalLocked +- uid: 1589 + type: Catwalk components: - - name: Arrivals Shuttle Dock - type: MetaData - - parent: 15 - pos: -39.5,-3.5 + - parent: 857 + pos: -32.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2689 - type: AirlockSecurityGlassLocked +- uid: 1590 + type: Catwalk components: - - name: Brig - type: MetaData - - parent: 15 - pos: -5.5,6.5 + - parent: 857 + pos: -15.5,11.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2690 - type: AirlockSecurityGlassLocked +- uid: 1591 + type: Catwalk components: - - name: Brig - type: MetaData - - parent: 15 - pos: -5.5,9.5 + - parent: 857 + pos: -16.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2691 - type: AirlockSecurityGlassLocked +- uid: 1592 + type: Catwalk components: - - name: Brig - type: MetaData - - parent: 15 - pos: -6.5,9.5 + - parent: 857 + pos: -20.5,12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2692 - type: AirlockEngineeringLocked +- uid: 1593 + type: Catwalk components: - - name: Gravity Generator - type: MetaData - - parent: 15 - pos: 49.5,-1.5 + - parent: 857 + pos: -16.5,11.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2693 - type: AirlockEngineeringGlassLocked +- uid: 1594 + type: Catwalk components: - - name: Engineering Equipment - type: MetaData - - parent: 15 - pos: 33.5,1.5 + - parent: 857 + pos: -4.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2694 - type: AirlockEngineeringGlassLocked +- uid: 1595 + type: Catwalk components: - - name: Atmospherics - type: MetaData - - parent: 15 - pos: 33.5,7.5 + - parent: 857 + pos: -4.5,22.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2695 - type: AirlockEngineeringLocked +- uid: 1596 + type: Catwalk components: - - name: Secure Storage - type: MetaData - - parent: 15 - pos: 41.5,10.5 + - parent: 857 + pos: -4.5,21.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2696 - type: AirlockEngineeringLocked +- uid: 1597 + type: Catwalk components: - - name: Secure Storage - type: MetaData - - parent: 15 - pos: 40.5,10.5 + - parent: 857 + pos: -0.5,20.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2697 +- uid: 1598 + type: Catwalk + components: + - parent: 857 + pos: 6.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1599 + type: Catwalk + components: + - parent: 857 + pos: 8.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1600 + type: Catwalk + components: + - parent: 857 + pos: 12.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1601 type: AirlockMaintEngiLocked components: - - parent: 15 - pos: 29.5,10.5 + - parent: 857 + pos: 33.5,-5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2698 - type: AirlockMaintEngiLocked +- uid: 1602 + type: Catwalk components: - - parent: 15 - pos: 43.5,0.5 + - parent: 857 + pos: 27.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2699 - type: AirlockMaintCargoLocked +- uid: 1603 + type: Catwalk components: - - parent: 15 - pos: 25.5,9.5 + - parent: 857 + pos: 21.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2700 - type: AirlockMaintRnDLocked +- uid: 1604 + type: ReinforcedWindow components: - - parent: 15 - pos: -16.5,-16.5 + - parent: 857 + pos: 51.5,3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2701 - type: AirlockCommandGlassLocked +- uid: 1605 + type: SignSmoking components: - - name: Heads of Staff Meeting Room - type: MetaData - - parent: 15 - pos: 1.5,24.5 + - parent: 857 + pos: 42.70487,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2702 - type: AirlockCommandGlassLocked + - deadThreshold: 100 + type: Destructible +- uid: 1606 + type: solid_wall components: - - name: Heads of Staff Meeting Room - type: MetaData - - parent: 15 - pos: 1.5,25.5 + - parent: 857 + pos: -22.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2703 +- uid: 1607 + type: reinforced_wall + components: + - parent: 857 + pos: 39.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1608 + type: reinforced_wall + components: + - parent: 857 + pos: 38.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1609 + type: reinforced_wall + components: + - parent: 857 + pos: 37.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1610 + type: reinforced_wall + components: + - parent: 857 + pos: 37.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1611 + type: reinforced_wall + components: + - parent: 857 + pos: 37.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1612 + type: reinforced_wall + components: + - parent: 857 + pos: 37.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1613 + type: reinforced_wall + components: + - parent: 857 + pos: 37.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1614 + type: reinforced_wall + components: + - parent: 857 + pos: 38.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1615 + type: reinforced_wall + components: + - parent: 857 + pos: 39.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1616 + type: reinforced_wall + components: + - parent: 857 + pos: 40.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1617 + type: reinforced_wall + components: + - parent: 857 + pos: 41.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1618 + type: reinforced_wall + components: + - parent: 857 + pos: 42.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1619 + type: reinforced_wall + components: + - parent: 857 + pos: 43.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1620 + type: reinforced_wall + components: + - parent: 857 + pos: 44.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1621 + type: reinforced_wall + components: + - parent: 857 + pos: 44.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1622 + type: reinforced_wall + components: + - parent: 857 + pos: 44.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1623 + type: reinforced_wall + components: + - parent: 857 + pos: 44.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1624 + type: reinforced_wall + components: + - parent: 857 + pos: 44.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1625 + type: reinforced_wall + components: + - parent: 857 + pos: 43.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1626 + type: reinforced_wall + components: + - parent: 857 + pos: 42.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1627 + type: LowWall + components: + - parent: 857 + pos: 40.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1628 + type: LowWall + components: + - parent: 857 + pos: 39.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1629 + type: LowWall + components: + - parent: 857 + pos: 36.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1630 + type: Poweredlight + components: + - parent: 857 + pos: -10,-3.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1631 + type: PoweredSmallLight + components: + - parent: 857 + pos: -12.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1632 + type: PoweredSmallLight + components: + - parent: 857 + pos: -25.5,-10 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1633 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1634 + type: solid_wall + components: + - parent: 857 + pos: 37.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1635 + type: solid_wall + components: + - parent: 857 + pos: 37.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1636 + type: solid_wall + components: + - parent: 857 + pos: 37.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1637 + type: solid_wall + components: + - parent: 857 + pos: 36.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1638 + type: solid_wall + components: + - parent: 857 + pos: 35.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1639 + type: VendingMachineDinnerware + components: + - parent: 857 + pos: -11.5,-3.5 + type: Transform +- uid: 1640 + type: solid_wall + components: + - parent: 857 + pos: 36.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1641 + type: LowWall + components: + - parent: 857 + pos: 51.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1642 + type: LowWall + components: + - parent: 857 + pos: 51.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1643 + type: solid_wall + components: + - parent: 857 + pos: 41.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1644 + type: solid_wall + components: + - parent: 857 + pos: 41.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1645 + type: solid_wall + components: + - parent: 857 + pos: 41.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1646 + type: solid_wall + components: + - parent: 857 + pos: 41.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1647 + type: solid_wall + components: + - parent: 857 + pos: 41.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1648 + type: solid_wall + components: + - parent: 857 + pos: 40.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1649 + type: solid_wall + components: + - parent: 857 + pos: 39.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1650 + type: solid_wall + components: + - parent: 857 + pos: 38.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1651 + type: solid_wall + components: + - parent: 857 + pos: 37.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1652 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1653 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1654 + type: solid_wall + components: + - parent: 857 + pos: 36.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1655 + type: solid_wall + components: + - parent: 857 + pos: 36.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1656 + type: LowWall + components: + - parent: 857 + pos: 37.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1657 + type: solid_wall + components: + - parent: 857 + pos: 36.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1658 + type: LowWall + components: + - parent: 857 + pos: 51.5,3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1659 + type: solid_wall + components: + - parent: 857 + pos: 35.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1660 + type: solid_wall + components: + - parent: 857 + pos: 31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1661 + type: solid_wall + components: + - parent: 857 + pos: 42.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1662 + type: solid_wall + components: + - parent: 857 + pos: 45.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1663 + type: solid_wall + components: + - parent: 857 + pos: 44.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1664 + type: WaterTankFull + components: + - parent: 857 + pos: 10.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 1665 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1666 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1667 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1668 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1669 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1670 + type: solid_wall + components: + - parent: 857 + pos: 44.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1671 + type: solid_wall + components: + - parent: 857 + pos: 43.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1672 + type: solid_wall + components: + - parent: 857 + pos: 42.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1673 + type: solid_wall + components: + - parent: 857 + pos: 41.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1674 + type: solid_wall + components: + - parent: 857 + pos: 40.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1675 + type: solid_wall + components: + - parent: 857 + pos: 39.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1676 + type: solid_wall + components: + - parent: 857 + pos: 39.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1677 + type: solid_wall + components: + - parent: 857 + pos: 39.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1678 + type: solid_wall + components: + - parent: 857 + pos: 39.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1679 + type: solid_wall + components: + - parent: 857 + pos: 38.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1680 + type: solid_wall + components: + - parent: 857 + pos: 37.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1681 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1682 + type: solid_wall + components: + - parent: 857 + pos: 35.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1683 + type: solid_wall + components: + - parent: 857 + pos: 34.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1684 + type: solid_wall + components: + - parent: 857 + pos: 33.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1685 + type: solid_wall + components: + - parent: 857 + pos: 32.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1686 + type: solid_wall + components: + - parent: 857 + pos: 31.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1687 + type: solid_wall + components: + - parent: 857 + pos: 30.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1688 + type: solid_wall + components: + - parent: 857 + pos: 29.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1689 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1690 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1691 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1692 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1693 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1694 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1695 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1696 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1697 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1698 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1699 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1700 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1701 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1702 + type: solid_wall + components: + - parent: 857 + pos: 27.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1703 + type: solid_wall + components: + - parent: 857 + pos: 26.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1704 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1705 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1706 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1707 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1708 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1709 + type: solid_wall + components: + - parent: 857 + pos: 45.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1710 + type: SignCloning + components: + - parent: 857 + pos: 7.326743,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1711 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1712 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1713 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1714 + type: ReinforcedWindow + components: + - parent: 857 + pos: 51.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1715 + type: LowWall + components: + - parent: 857 + pos: 51.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1716 + type: solid_wall + components: + - parent: 857 + pos: 18.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1717 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1718 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1719 + type: solid_wall + components: + - parent: 857 + pos: 12.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1720 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1721 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1722 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1723 + type: solid_wall + components: + - parent: 857 + pos: 8.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1724 + type: solid_wall + components: + - parent: 857 + pos: 7.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1725 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1726 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1727 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1728 + type: LowWall + components: + - parent: 857 + pos: 5.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1729 + type: LowWall + components: + - parent: 857 + pos: 5.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1730 + type: LowWall + components: + - parent: 857 + pos: 4.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1731 + type: LowWall + components: + - parent: 857 + pos: 3.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1732 + type: LowWall + components: + - parent: 857 + pos: 2.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1733 + type: LowWall + components: + - parent: 857 + pos: 9.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1734 + type: LowWall + components: + - parent: 857 + pos: 10.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1735 + type: LowWall + components: + - parent: 857 + pos: 11.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1736 + type: solid_wall + components: + - parent: 857 + pos: 45.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1737 + type: LowWall + components: + - parent: 857 + pos: 34.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1738 + type: LowWall + components: + - parent: 857 + pos: 32.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1739 + type: solid_wall + components: + - parent: 857 + pos: 31.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1740 + type: solid_wall + components: + - parent: 857 + pos: 30.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1741 + type: solid_wall + components: + - parent: 857 + pos: 29.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1742 + type: solid_wall + components: + - parent: 857 + pos: 29.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1743 + type: solid_wall + components: + - parent: 857 + pos: 29.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1744 + type: solid_wall + components: + - parent: 857 + pos: 28.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1745 + type: solid_wall + components: + - parent: 857 + pos: 30.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1746 + type: solid_wall + components: + - parent: 857 + pos: 30.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1747 + type: solid_wall + components: + - parent: 857 + pos: 30.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1748 + type: LowWall + components: + - parent: 857 + pos: 32.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1749 + type: LowWall + components: + - parent: 857 + pos: 34.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1750 + type: LowWall + components: + - parent: 857 + pos: 30.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1751 + type: LowWall + components: + - parent: 857 + pos: 30.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1752 + type: LowWall + components: + - parent: 857 + pos: 30.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1753 + type: LowWall + components: + - parent: 857 + pos: 31.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1754 + type: LowWall + components: + - parent: 857 + pos: 32.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1755 + type: LowWall + components: + - parent: 857 + pos: 33.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1756 + type: LowWall + components: + - parent: 857 + pos: 34.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1757 + type: LowWall + components: + - parent: 857 + pos: 35.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1758 + type: LowWall + components: + - parent: 857 + pos: 36.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1759 + type: LowWall + components: + - parent: 857 + pos: 36.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1760 + type: solid_wall + components: + - parent: 857 + pos: 29.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1761 + type: solid_wall + components: + - parent: 857 + pos: 29.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1762 + type: solid_wall + components: + - parent: 857 + pos: 29.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1763 + type: solid_wall + components: + - parent: 857 + pos: 29.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1764 + type: LowWall + components: + - parent: 857 + pos: 19.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1765 + type: LowWall + components: + - parent: 857 + pos: 21.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1766 + type: LowWall + components: + - parent: 857 + pos: 23.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1767 + type: solid_wall + components: + - parent: 857 + pos: 25.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1768 + type: LowWall + components: + - parent: 857 + pos: 19.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1769 + type: ReinforcedWindow + components: + - parent: 857 + pos: 21.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1770 + type: solid_wall + components: + - parent: 857 + pos: 25.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1771 + type: solid_wall + components: + - parent: 857 + pos: 25.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1772 + type: solid_wall + components: + - parent: 857 + pos: 25.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1773 + type: solid_wall + components: + - parent: 857 + pos: 25.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1774 + type: solid_wall + components: + - parent: 857 + pos: 25.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1775 + type: solid_wall + components: + - parent: 857 + pos: 25.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1776 + type: solid_wall + components: + - parent: 857 + pos: 26.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1777 + type: solid_wall + components: + - parent: 857 + pos: 24.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1778 + type: solid_wall + components: + - parent: 857 + pos: 24.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1779 + type: solid_wall + components: + - parent: 857 + pos: 23.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1780 + type: solid_wall + components: + - parent: 857 + pos: 18.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1781 + type: solid_wall + components: + - parent: 857 + pos: 17.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1782 + type: solid_wall + components: + - parent: 857 + pos: 17.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1783 + type: solid_wall + components: + - parent: 857 + pos: 17.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1784 + type: solid_wall + components: + - parent: 857 + pos: 17.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1785 + type: solid_wall + components: + - parent: 857 + pos: 16.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1786 + type: solid_wall + components: + - parent: 857 + pos: 12.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1787 + type: LowWall + components: + - parent: 857 + pos: 19.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1788 + type: LowWall + components: + - parent: 857 + pos: 20.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1789 + type: LowWall + components: + - parent: 857 + pos: 21.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1790 + type: LowWall + components: + - parent: 857 + pos: 22.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1791 + type: LowWall + components: + - parent: 857 + pos: 23.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1792 + type: LowWall + components: + - parent: 857 + pos: 23.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1793 + type: SignDirectionalBridge + components: + - parent: 857 + pos: -20.49181,6.256847 + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1794 + type: SignDirectionalSec + components: + - parent: 857 + pos: 5.9947615,6.5 + rot: 3.141592653589793 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 1795 + type: LowWall + components: + - parent: 857 + pos: 19.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1796 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1797 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1798 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1799 + type: solid_wall + components: + - parent: 857 + pos: 17.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1800 + type: solid_wall + components: + - parent: 857 + pos: 17.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1801 + type: solid_wall + components: + - parent: 857 + pos: 17.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1802 + type: solid_wall + components: + - parent: 857 + pos: 17.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1803 + type: solid_wall + components: + - parent: 857 + pos: 16.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1804 + type: solid_wall + components: + - parent: 857 + pos: 17.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1805 + type: solid_wall + components: + - parent: 857 + pos: 16.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1806 + type: solid_wall + components: + - parent: 857 + pos: 15.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1807 + type: solid_wall + components: + - parent: 857 + pos: 14.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1808 + type: solid_wall + components: + - parent: 857 + pos: 13.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1809 + type: solid_wall + components: + - parent: 857 + pos: 12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1810 + type: solid_wall + components: + - parent: 857 + pos: 11.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1811 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1812 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1813 + type: reinforced_wall + components: + - parent: 857 + pos: 9.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1814 + type: reinforced_wall + components: + - parent: 857 + pos: 7.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1815 + type: reinforced_wall + components: + - parent: 857 + pos: 6.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1816 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1817 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1818 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1819 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1820 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1821 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1822 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1823 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1824 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1825 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1826 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1827 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1828 + type: reinforced_wall + components: + - parent: 857 + pos: 11.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1829 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1830 + type: reinforced_wall + components: + - parent: 857 + pos: 6.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1831 + type: LowWall + components: + - parent: 857 + pos: 8.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1832 + type: solid_wall + components: + - parent: 857 + pos: 14.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1833 + type: solid_wall + components: + - parent: 857 + pos: 14.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1834 + type: solid_wall + components: + - parent: 857 + pos: 14.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1835 + type: ReinforcedWindow + components: + - parent: 857 + pos: 19.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1836 + type: ReinforcedWindow + components: + - parent: 857 + pos: 19.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1837 + type: ReinforcedWindow + components: + - parent: 857 + pos: 19.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1838 + type: solid_wall + components: + - parent: 857 + pos: 14.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1839 + type: solid_wall + components: + - parent: 857 + pos: -17.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1840 + type: solid_wall + components: + - parent: 857 + pos: -20.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1841 + type: solid_wall + components: + - parent: 857 + pos: -21.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1842 + type: solid_wall + components: + - parent: 857 + pos: 11.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1843 + type: solid_wall + components: + - parent: 857 + pos: 11.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1844 + type: solid_wall + components: + - parent: 857 + pos: 11.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1845 + type: solid_wall + components: + - parent: 857 + pos: 11.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1846 + type: solid_wall + components: + - parent: 857 + pos: 11.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1847 + type: solid_wall + components: + - parent: 857 + pos: 11.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1848 + type: solid_wall + components: + - parent: 857 + pos: 10.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1849 + type: solid_wall + components: + - parent: 857 + pos: 9.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1850 + type: Poweredlight + components: + - parent: 857 + pos: -24.5,-9 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - powerLoad: 40 + type: PowerReceiver + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 1851 + type: solid_wall + components: + - parent: 857 + pos: -21.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1852 + type: solid_wall + components: + - parent: 857 + pos: 6.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1853 + type: solid_wall + components: + - parent: 857 + pos: 5.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1854 + type: solid_wall + components: + - parent: 857 + pos: 6.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1855 + type: solid_wall + components: + - parent: 857 + pos: 5.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1856 + type: solid_wall + components: + - parent: 857 + pos: 6.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1857 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1858 + type: reinforced_wall + components: + - parent: 857 + pos: 9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1859 + type: reinforced_wall + components: + - parent: 857 + pos: 8.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1860 + type: reinforced_wall + components: + - parent: 857 + pos: 7.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1861 + type: reinforced_wall + components: + - parent: 857 + pos: 6.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1862 + type: reinforced_wall + components: + - parent: 857 + pos: 5.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1863 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1864 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1865 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1866 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1867 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1868 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1869 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1870 + type: reinforced_wall + components: + - parent: 857 + pos: 10.5,31.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1871 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,31.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1872 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,30.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1873 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1874 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1875 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1876 + type: reinforced_wall + components: + - parent: 857 + pos: -3.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1877 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1878 + type: reinforced_wall + components: + - parent: 857 + pos: 0.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1879 + type: reinforced_wall + components: + - parent: 857 + pos: -0.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1880 type: AirlockCommandLocked components: - - name: Captain's Office + - name: Head of Personnel's Office type: MetaData - - parent: 15 - pos: 5.5,25.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Captain - type: AccessReader -- uid: 2704 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 6.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2705 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 21.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2706 - type: AirlockMaintCommandLocked - components: - - parent: 15 - pos: -1.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2707 - type: AirlockMedicalGlassLocked - components: - - name: Medical Bay - type: MetaData - - parent: 15 - pos: 10.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2708 - type: AirlockMedicalGlassLocked - components: - - name: Medical Bay - type: MetaData - - parent: 15 - pos: 11.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2709 - type: AirlockMedicalGlassLocked - components: - - name: Medical Storage - type: MetaData - - parent: 15 - pos: 20.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2710 - type: AirlockMedicalGlassLocked - components: - - name: Surgery - type: MetaData - - parent: 15 - pos: 19.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2711 - type: AirlockMedicalGlassLocked - components: - - name: Cloning - type: MetaData - - parent: 15 - pos: 8.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2712 - type: AirlockSecurityGlassLocked - components: - - name: Security Equipment - type: MetaData - - parent: 15 - pos: -10.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2713 - type: AirlockSecurityGlassLocked - components: - - name: Reception Desk - type: MetaData - - parent: 15 - pos: -9.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2714 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 0.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2715 - type: AirlockMaintMedLocked - components: - - parent: 15 - pos: 14.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2716 - type: AirlockMaintMedLocked - components: - - parent: 15 - pos: 20.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2717 - type: AirlockMaintRnDLocked - components: - - parent: 15 - pos: -11.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2718 - type: AirlockScienceLocked - components: - - name: Science - type: MetaData - - parent: 15 - pos: 0.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2719 - type: AirlockScienceLocked - components: - - name: Science - type: MetaData - - parent: 15 - pos: 0.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2720 - type: AirlockScienceGlassLocked - components: - - name: Research and Development - type: MetaData - - parent: 15 - pos: -3.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2721 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -33.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2722 - type: AirlockCommandGlassLocked - components: - - name: Chief Engineer's Office - type: MetaData - - parent: 15 - pos: 38.5,1.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Engineering - - Command - type: AccessReader -- uid: 2723 - type: Catwalk - components: - - parent: 15 - pos: 26.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2724 - type: AirlockMaintCommandLocked - components: - - parent: 15 - pos: 11.5,20.5 + - parent: 857 + pos: 6.5,17.5 rot: -1.5707963267948966 rad type: Transform - access: - - HeadOfPersonnel type: AccessReader -- uid: 2725 - type: AirlockExternalLocked - components: - - parent: 15 - pos: 15.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2726 - type: Airlock - components: - - name: Custodial Closet - type: MetaData - - parent: 15 - pos: -22.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Janitor - type: AccessReader -- uid: 2727 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -34.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2728 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -23.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2729 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 1.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2730 - type: AirlockVaultLocked - components: - - name: Vault - type: MetaData - - parent: 15 - pos: 0.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2731 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -8.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Service - type: AccessReader -- uid: 2732 - type: AirlockServiceGlassLocked - components: - - name: Kitchen - type: MetaData - - parent: 15 - pos: -10.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2733 - type: AirlockMaintEngiLocked - components: - - parent: 15 - pos: 28.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2734 - type: AirlockServiceGlassLocked - components: - - name: Bar - type: MetaData - - parent: 15 - pos: -7.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2735 - type: AirlockSecurityGlassLocked - components: - - name: Brig - type: MetaData - - parent: 15 - pos: -6.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2736 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -16.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2737 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 5.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2738 - type: AirlockMaintRnDLocked - components: - - parent: 15 - pos: -4.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2739 - type: AirlockMaintIntLocked - components: - - parent: 15 - pos: -12.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2740 - type: AirlockMaintIntLocked - components: - - parent: 15 - pos: -13.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2741 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -32.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2742 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -20.5,11.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Janitor - type: AccessReader -- uid: 2743 - type: AirlockEngineeringGlassLocked - components: - - name: Engineering - type: MetaData - - parent: 15 - pos: 30.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2744 - type: AirlockEngineeringGlassLocked - components: - - name: Engineering - type: MetaData - - parent: 15 - pos: 30.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2745 - type: AirlockMedicalGlassLocked - components: - - name: Chemistry - type: MetaData - - parent: 15 - pos: 7.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2746 - type: AirlockMedicalGlassLocked - components: - - name: Chemistry - type: MetaData - - parent: 15 - pos: 17.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2747 - type: AirlockCommandGlassLocked - components: - - name: Chief Medical Officer's Office - type: MetaData - - parent: 15 - pos: 20.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Medical - - Command - type: AccessReader -- uid: 2748 - type: AirlockCommandGlassLocked - components: - - name: Server Room - type: MetaData - - parent: 15 - pos: -8.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Research - - Command - type: AccessReader -- uid: 2749 - type: AirlockCommandGlassLocked - components: - - name: Research Director's Office - type: MetaData - - parent: 15 - pos: -3.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Research - - Command - type: AccessReader -- uid: 2750 - type: AirlockScienceLocked - components: - - name: Testing Area - type: MetaData - - parent: 15 - pos: -12.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2751 - type: AirlockScienceLocked - components: - - name: Testing Area - type: MetaData - - parent: 15 - pos: -12.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2752 - type: AirlockGlass - components: - - name: Locker Room - type: MetaData - - parent: 15 - pos: -26.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2753 - type: AirlockServiceGlassLocked - components: - - name: Tool Storage - type: MetaData - - parent: 15 - pos: -25.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Maintenance - type: AccessReader -- uid: 2754 - type: AirlockServiceGlassLocked - components: - - name: Tool Storage - type: MetaData - - parent: 15 - pos: -25.5,8.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Maintenance - type: AccessReader -- uid: 2755 - type: AirlockGlass - components: - - name: Locker Room - type: MetaData - - parent: 15 - pos: -26.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2756 - type: AirlockServiceLocked - components: - - name: Theatre - type: MetaData - - parent: 15 - pos: -20.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Theatre - type: AccessReader -- uid: 2757 - type: Airlock - components: - - name: Bunk Dorms - type: MetaData - - parent: 15 - pos: -26.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2758 - type: Airlock - components: - - name: Showers - type: MetaData - - parent: 15 - pos: -21.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2759 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -16.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Service - type: AccessReader -- uid: 2760 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -31.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2761 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: 27.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2762 - type: Table - components: - - parent: 15 - pos: -8.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2763 - type: Table - components: - - parent: 15 - pos: -9.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2764 - type: Table - components: - - parent: 15 - pos: -7.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2765 - type: Table - components: - - parent: 15 - pos: -7.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2766 - type: ChairOfficeDark - components: - - parent: 15 - pos: -9.5,7.5 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 2767 - type: ChairOfficeDark - components: - - parent: 15 - pos: -8.5,8.5 - type: Transform - - anchored: False - type: Collidable -- uid: 2768 - type: AirlockVaultLocked - components: - - name: Armory - type: MetaData - - parent: 15 - pos: -12.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2769 - type: AirlockVaultLocked - components: - - name: Armory - type: MetaData - - parent: 15 - pos: -10.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2770 - type: AirlockCommandGlassLocked - components: - - name: Bridge - type: MetaData - - parent: 15 - pos: 2.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2771 - type: AirlockCommandGlassLocked - components: - - name: Bridge - type: MetaData - - parent: 15 - pos: 4.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2772 - type: AirlockCommandGlassLocked - components: - - name: EVA - type: MetaData - - parent: 15 - pos: 7.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - External - type: AccessReader -- uid: 2773 - type: AirlockCommandGlassLocked - components: - - name: EVA - type: MetaData - - parent: 15 - pos: 9.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - External - type: AccessReader -- uid: 2774 - type: AirlockMaintCommandLocked - components: - - parent: 15 - pos: 8.5,12.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - External - type: AccessReader -- uid: 2775 - type: AirlockCargoGlassLocked - components: - - name: Cargo Office - type: MetaData - - parent: 15 - pos: 13.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2776 - type: AirlockCargoGlassLocked - components: - - name: Cargo Bay - type: MetaData - - parent: 15 - pos: 17.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2777 - type: AirlockCargoGlassLocked - components: - - name: Cargo Bay - type: MetaData - - parent: 15 - pos: 17.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2778 - type: AirlockExternalLocked - components: - - name: Supply Shuttle Dock - type: MetaData - - parent: 15 - pos: 20.5,14.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Cargo - type: AccessReader -- uid: 2779 - type: AirlockExternalLocked - components: - - name: Supply Shuttle Dock - type: MetaData - - parent: 15 - pos: 20.5,16.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Cargo - type: AccessReader -- uid: 2780 - type: AirlockExternalLocked - components: - - name: Supply Shuttle Dock - type: MetaData - - parent: 15 - pos: 22.5,16.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Cargo - type: AccessReader -- uid: 2781 - type: AirlockExternalLocked - components: - - name: Supply Shuttle Dock - type: MetaData - - parent: 15 - pos: 22.5,14.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Cargo - type: AccessReader -- uid: 2782 - type: AirlockExternalLocked - components: - - parent: 15 - pos: 14.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2783 - type: AirlockCommandGlassLocked - components: - - name: Head of Security's Office - type: MetaData - - parent: 15 - pos: -8.5,18.5 - rot: -1.5707963267948966 rad - type: Transform - - access: - - - Security - - Command - type: AccessReader -- uid: 2784 - type: Poweredlight - components: - - parent: 15 - pos: 17,-20.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2785 - type: Poweredlight - components: - - parent: 15 - pos: 15.5,-18 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2786 - type: Poweredlight - components: - - parent: 15 - pos: 20,-17.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - powerLoad: 40 - type: PowerReceiver - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2787 +- uid: 1881 type: reinforced_wall components: - - parent: 15 - pos: -15.5,16.5 + - parent: 857 + pos: -2.5,22.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2788 - type: Catwalk +- uid: 1882 + type: reinforced_wall components: - - parent: 15 - pos: -1.5,21.5 + - parent: 857 + pos: -3.5,22.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2789 - type: AirlockSecurityGlassLocked +- uid: 1883 + type: reinforced_wall components: - - name: Cell 1 - type: MetaData - - parent: 15 - pos: -2.5,9.5 + - parent: 857 + pos: -3.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2790 - type: AirlockSecurityGlassLocked +- uid: 1884 + type: reinforced_wall components: - - name: Cell 2 - type: MetaData - - parent: 15 - pos: 0.5,9.5 + - parent: 857 + pos: -3.5,24.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2791 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: -27.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2792 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: -28.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2793 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: -29.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2794 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: -0.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2795 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 6.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2796 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 10.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2797 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 15.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2798 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 10.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2799 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 18.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2800 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 17.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2801 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: 22.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2802 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: 23.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2803 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: -2.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2804 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: -14.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2805 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: -32.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2806 - type: SuspicionPistolSpawner - components: - - parent: 15 - pos: -18.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2807 - type: SuspicionPistolSpawner - components: - - parent: 15 - pos: -31.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2808 - type: SuspicionPistolSpawner - components: - - parent: 15 - pos: -20.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2809 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: -7.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2810 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: -7.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2811 - type: SuspicionPistolSpawner - components: - - parent: 15 - pos: 6.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2812 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: 0.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2813 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: 6.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2814 - type: SuspicionPistolSpawner - components: - - parent: 15 - pos: -13.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2815 - type: SuspicionMeleeSpawner - components: - - parent: 15 - pos: -4.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2816 - type: SuspicionRifleSpawner - components: - - parent: 15 - pos: 5.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2817 +- uid: 1885 type: solid_wall components: - - parent: 15 - pos: -21.5,-1.5 + - parent: 857 + pos: 1.5,26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2818 - type: Wire - components: - - parent: 15 - pos: -15.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2819 - type: Wire - components: - - parent: 15 - pos: -16.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2820 - type: Wire - components: - - parent: 15 - pos: -16.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2821 - type: Wire - components: - - parent: 15 - pos: -16.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2822 - type: Wire - components: - - parent: 15 - pos: -16.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2823 - type: Wire - components: - - parent: 15 - pos: -17.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2824 - type: Wire - components: - - parent: 15 - pos: -18.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2825 - type: Wire - components: - - parent: 15 - pos: -19.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2826 - type: Wire - components: - - parent: 15 - pos: -16.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2827 - type: Wire - components: - - parent: 15 - pos: -19.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2828 - type: Wire - components: - - parent: 15 - pos: -16.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2829 - type: Wire - components: - - parent: 15 - pos: -16.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2830 - type: Wire - components: - - parent: 15 - pos: -16.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2831 - type: Wire - components: - - parent: 15 - pos: -16.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2832 - type: Wire - components: - - parent: 15 - pos: -16.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2833 +- uid: 1886 type: solid_wall components: - - parent: 15 - pos: -14.5,-3.5 + - parent: 857 + pos: 1.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2834 - type: Table - components: - - parent: 15 - pos: -15.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2835 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -14.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2836 - type: AirlockMaintCommonLocked - components: - - parent: 15 - pos: -16.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2837 - type: Airlock - components: - - name: Hydroponics - type: MetaData - - parent: 15 - pos: -16.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2838 - type: Catwalk - components: - - parent: 15 - pos: -16.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2839 - type: Catwalk - components: - - parent: 15 - pos: -15.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2840 - type: Catwalk - components: - - parent: 15 - pos: -15.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2841 - type: Catwalk - components: - - parent: 15 - pos: -16.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2842 - type: Catwalk - components: - - parent: 15 - pos: -15.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2843 - type: Poweredlight - components: - - parent: 15 - pos: -20.5,2 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2844 - type: Poweredlight - components: - - parent: 15 - pos: -20.5,-3 - rot: 1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2845 - type: Poweredlight - components: - - parent: 15 - pos: -16,-1.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 2846 - type: TrashSpawner - components: - - parent: 15 - pos: -21.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2847 - type: TrashSpawner - components: - - parent: 15 - pos: -31.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2848 - type: TrashSpawner - components: - - parent: 15 - pos: -32.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2849 - type: TrashSpawner - components: - - parent: 15 - pos: -30.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2850 - type: TrashSpawner - components: - - parent: 15 - pos: -25.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2851 - type: TrashSpawner - components: - - parent: 15 - pos: -23.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2852 - type: TrashSpawner - components: - - parent: 15 - pos: -21.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2853 - type: TrashSpawner - components: - - parent: 15 - pos: -17.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2854 - type: TrashSpawner - components: - - parent: 15 - pos: -15.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2855 - type: TrashSpawner - components: - - parent: 15 - pos: -18.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2856 - type: TrashSpawner - components: - - parent: 15 - pos: -18.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2857 - type: TrashSpawner - components: - - parent: 15 - pos: -15.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2858 - type: TrashSpawner - components: - - parent: 15 - pos: -8.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2859 - type: TrashSpawner - components: - - parent: 15 - pos: -7.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2860 - type: TrashSpawner - components: - - parent: 15 - pos: -4.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2861 - type: TrashSpawner - components: - - parent: 15 - pos: -2.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2862 - type: TrashSpawner - components: - - parent: 15 - pos: -3.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2863 - type: TrashSpawner - components: - - parent: 15 - pos: 0.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2864 - type: TrashSpawner - components: - - parent: 15 - pos: -36.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2865 - type: TrashSpawner - components: - - parent: 15 - pos: -35.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2866 - type: TrashSpawner - components: - - parent: 15 - pos: -32.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2867 - type: TrashSpawner - components: - - parent: 15 - pos: -22.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2868 - type: TrashSpawner - components: - - parent: 15 - pos: -30.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2869 - type: TrashSpawner - components: - - parent: 15 - pos: -30.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2870 - type: TrashSpawner - components: - - parent: 15 - pos: -19.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2871 - type: TrashSpawner - components: - - parent: 15 - pos: -32.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2872 - type: TrashSpawner - components: - - parent: 15 - pos: -33.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2873 - type: TrashSpawner - components: - - parent: 15 - pos: -33.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2874 - type: TrashSpawner - components: - - parent: 15 - pos: -32.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2875 - type: TrashSpawner - components: - - parent: 15 - pos: -28.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2876 - type: TrashSpawner - components: - - parent: 15 - pos: -21.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2877 - type: SuspicionPistolMagazineSpawner - components: - - parent: 15 - pos: -35.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2878 - type: TrashSpawner - components: - - parent: 15 - pos: -18.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2879 - type: TrashSpawner - components: - - parent: 15 - pos: -12.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2880 - type: TrashSpawner - components: - - parent: 15 - pos: -8.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2881 - type: TrashSpawner - components: - - parent: 15 - pos: -9.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2882 - type: TrashSpawner - components: - - parent: 15 - pos: -8.5,-11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2883 - type: TrashSpawner - components: - - parent: 15 - pos: -11.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2884 - type: TrashSpawner - components: - - parent: 15 - pos: -16.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2885 - type: TrashSpawner - components: - - parent: 15 - pos: -6.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2886 - type: TrashSpawner - components: - - parent: 15 - pos: -2.5,-10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2887 - type: TrashSpawner - components: - - parent: 15 - pos: -0.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2888 - type: TrashSpawner - components: - - parent: 15 - pos: -0.5,-8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2889 - type: TrashSpawner - components: - - parent: 15 - pos: 0.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2890 - type: TrashSpawner - components: - - parent: 15 - pos: -11.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2891 - type: TrashSpawner - components: - - parent: 15 - pos: -11.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2892 - type: TrashSpawner - components: - - parent: 15 - pos: -9.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2893 - type: TrashSpawner - components: - - parent: 15 - pos: -5.5,-27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2894 - type: TrashSpawner - components: - - parent: 15 - pos: -2.5,-26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2895 - type: TrashSpawner - components: - - parent: 15 - pos: -0.5,-22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2896 - type: TrashSpawner - components: - - parent: 15 - pos: -10.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2897 - type: TrashSpawner - components: - - parent: 15 - pos: 7.5,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2898 - type: TrashSpawner - components: - - parent: 15 - pos: 12.5,-19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2899 - type: TrashSpawner - components: - - parent: 15 - pos: 14.5,-21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2900 - type: TrashSpawner - components: - - parent: 15 - pos: 14.5,-24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2901 - type: TrashSpawner - components: - - parent: 15 - pos: 18.5,-25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2902 - type: TrashSpawner - components: - - parent: 15 - pos: 22.5,-23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2903 - type: TrashSpawner - components: - - parent: 15 - pos: 21.5,-20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2904 - type: TrashSpawner - components: - - parent: 15 - pos: 21.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2905 - type: TrashSpawner - components: - - parent: 15 - pos: 26.5,-17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2906 - type: TrashSpawner - components: - - parent: 15 - pos: 27.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2907 - type: TrashSpawner - components: - - parent: 15 - pos: 24.5,-9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2908 - type: TrashSpawner - components: - - parent: 15 - pos: 27.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2909 - type: TrashSpawner - components: - - parent: 15 - pos: 27.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2910 - type: TrashSpawner - components: - - parent: 15 - pos: 25.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2911 - type: TrashSpawner - components: - - parent: 15 - pos: 21.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2912 - type: TrashSpawner - components: - - parent: 15 - pos: 20.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2913 - type: TrashSpawner - components: - - parent: 15 - pos: 32.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2914 - type: TrashSpawner - components: - - parent: 15 - pos: 37.5,-7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2915 - type: TrashSpawner - components: - - parent: 15 - pos: 37.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2916 - type: TrashSpawner - components: - - parent: 15 - pos: 42.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2917 - type: TrashSpawner - components: - - parent: 15 - pos: 44.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2918 - type: TrashSpawner - components: - - parent: 15 - pos: 35.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2919 - type: TrashSpawner - components: - - parent: 15 - pos: 27.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2920 - type: TrashSpawner - components: - - parent: 15 - pos: 28.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2921 - type: TrashSpawner - components: - - parent: 15 - pos: 26.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2922 - type: TrashSpawner - components: - - parent: 15 - pos: 27.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2923 - type: TrashSpawner - components: - - parent: 15 - pos: 24.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2924 - type: TrashSpawner - components: - - parent: 15 - pos: 12.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2925 - type: TrashSpawner - components: - - parent: 15 - pos: 12.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2926 - type: TrashSpawner - components: - - parent: 15 - pos: 6.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2927 - type: TrashSpawner - components: - - parent: 15 - pos: 25.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2928 - type: TrashSpawner - components: - - parent: 15 - pos: 19.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2929 - type: TrashSpawner - components: - - parent: 15 - pos: -7.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2930 - type: TrashSpawner - components: - - parent: 15 - pos: -1.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2931 - type: TrashSpawner - components: - - parent: 15 - pos: -8.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2932 - type: TrashSpawner - components: - - parent: 15 - pos: -17.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2933 - type: TrashSpawner - components: - - parent: 15 - pos: -25.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2934 - type: TrashSpawner - components: - - parent: 15 - pos: -22.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2935 - type: TrashSpawner - components: - - parent: 15 - pos: 4.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2936 - type: TrashSpawner - components: - - parent: 15 - pos: 1.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2937 - type: TrashSpawner - components: - - parent: 15 - pos: 13.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2938 - type: TrashSpawner - components: - - parent: 15 - pos: 12.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2939 - type: TrashSpawner - components: - - parent: 15 - pos: 9.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 2940 +- uid: 1887 type: solid_wall components: - - parent: 15 - pos: -19.5,-15.5 + - parent: 857 + pos: 0.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2941 +- uid: 1888 type: solid_wall components: - - parent: 15 - pos: -19.5,-14.5 + - parent: 857 + pos: -2.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2942 +- uid: 1889 type: solid_wall components: - - parent: 15 - pos: -19.5,-13.5 + - parent: 857 + pos: 1.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2943 +- uid: 1890 type: solid_wall components: - - parent: 15 - pos: -19.5,-12.5 + - parent: 857 + pos: 5.5,23.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2944 +- uid: 1891 type: solid_wall components: - - parent: 15 - pos: -20.5,-12.5 + - parent: 857 + pos: 5.5,24.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2945 +- uid: 1892 type: solid_wall components: - - parent: 15 - pos: -21.5,-12.5 + - parent: 857 + pos: 5.5,26.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2946 +- uid: 1893 type: solid_wall components: - - parent: 15 - pos: -22.5,-12.5 + - parent: 857 + pos: 5.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2947 +- uid: 1894 type: solid_wall components: - - parent: 15 - pos: -23.5,-12.5 + - parent: 857 + pos: 6.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2948 - type: AirlockMaintCommon +- uid: 1895 + type: solid_wall components: - - parent: 15 - pos: -24.5,-12.5 + - parent: 857 + pos: 7.5,27.5 rot: -1.5707963267948966 rad type: Transform -- uid: 2949 - type: DisposalUnit +- uid: 1896 + type: solid_wall components: - - parent: 15 - pos: -10.5,-17.5 + - parent: 857 + pos: 8.5,27.5 rot: -1.5707963267948966 rad type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2950 - type: DisposalPipe +- uid: 1897 + type: solid_wall components: - - parent: 15 - pos: -24.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2951 - type: DisposalPipe - components: - - parent: 15 - pos: -25.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2952 - type: DisposalPipe - components: - - parent: 15 - pos: -26.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2953 - type: DisposalUnit - components: - - parent: 15 - pos: -27.5,-8.5 - rot: 1.5707963267948966 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2954 - type: DisposalPipe - components: - - parent: 15 - pos: -28.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2955 - type: DisposalPipe - components: - - parent: 15 - pos: -29.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2956 - type: DisposalPipe - components: - - parent: 15 - pos: -30.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2957 - type: DisposalPipe - components: - - parent: 15 - pos: -31.5,-10.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2958 - type: DisposalBend - components: - - parent: 15 - pos: -32.5,-10.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2959 - type: DisposalPipe - components: - - parent: 15 - pos: -32.5,-9.5 + - parent: 857 + pos: 9.5,27.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2960 - type: DisposalPipe +- uid: 1898 + type: LowWall components: - - parent: 15 - pos: -32.5,-8.5 + - parent: 857 + pos: 3.5,22.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2961 - type: DisposalPipe +- uid: 1899 + type: LowWall components: - - parent: 15 - pos: -32.5,-7.5 + - parent: 857 + pos: -1.5,27.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2962 - type: DisposalPipe +- uid: 1900 + type: LowWall components: - - parent: 15 - pos: -32.5,-6.5 + - parent: 857 + pos: -0.5,27.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2963 - type: DisposalPipe +- uid: 1901 + type: LowWall components: - - parent: 15 - pos: -32.5,-5.5 + - parent: 857 + pos: -3.5,29.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2964 - type: DisposalPipe +- uid: 1902 + type: LowWall components: - - parent: 15 - pos: -32.5,-4.5 + - parent: 857 + pos: 10.5,29.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2965 - type: DisposalPipe +- uid: 1903 + type: LowWall components: - - parent: 15 - pos: -32.5,-3.5 + - parent: 857 + pos: 9.5,31.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2966 - type: DisposalPipe +- uid: 1904 + type: LowWall components: - - parent: 15 - pos: -32.5,-2.5 + - parent: 857 + pos: 9.5,32.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2967 - type: DisposalPipe +- uid: 1905 + type: LowWall components: - - parent: 15 - pos: -32.5,-1.5 + - parent: 857 + pos: 8.5,32.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2968 - type: DisposalPipe +- uid: 1906 + type: LowWall components: - - parent: 15 - pos: -32.5,-0.5 + - parent: 857 + pos: 8.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2969 - type: DisposalPipe +- uid: 1907 + type: LowWall components: - - parent: 15 - pos: -32.5,0.5 + - parent: 857 + pos: 7.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2970 - type: DisposalPipe +- uid: 1908 + type: LowWall components: - - parent: 15 - pos: -32.5,1.5 + - parent: 857 + pos: 6.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2971 - type: DisposalPipe +- uid: 1909 + type: LowWall components: - - parent: 15 - pos: -32.5,2.5 + - parent: 857 + pos: 5.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2972 - type: DisposalPipe +- uid: 1910 + type: LowWall components: - - parent: 15 - pos: -31.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2973 - type: DisposalPipe - components: - - parent: 15 - pos: -30.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2974 - type: DisposalPipe - components: - - parent: 15 - pos: -29.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2975 - type: DisposalPipe - components: - - parent: 15 - pos: -28.5,4.5 + - parent: 857 + pos: 4.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2976 - type: DisposalPipe +- uid: 1911 + type: LowWall components: - - parent: 15 - pos: -27.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2977 - type: DisposalPipe - components: - - parent: 15 - pos: -26.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2978 - type: DisposalPipe - components: - - parent: 15 - pos: -25.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2979 - type: DisposalPipe - components: - - parent: 15 - pos: -24.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2980 - type: DisposalPipe - components: - - parent: 15 - pos: -23.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2981 - type: DisposalUnit - components: - - parent: 15 - pos: -22.5,6.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2982 - type: DisposalPipe - components: - - parent: 15 - pos: -21.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2983 - type: DisposalPipe - components: - - parent: 15 - pos: -20.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2984 - type: DisposalPipe - components: - - parent: 15 - pos: -19.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2985 - type: DisposalPipe - components: - - parent: 15 - pos: -18.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2986 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2987 - type: DisposalPipe - components: - - parent: 15 - pos: -16.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2988 - type: DisposalPipe - components: - - parent: 15 - pos: -15.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2989 - type: DisposalPipe - components: - - parent: 15 - pos: -14.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2990 - type: DisposalPipe - components: - - parent: 15 - pos: -13.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2991 - type: DisposalUnit - components: - - parent: 15 - pos: -12.5,1.5 + - parent: 857 + pos: 3.5,33.5 rot: -1.5707963267948966 rad type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 2992 - type: DisposalPipe +- uid: 1912 + type: LowWall components: - - parent: 15 - pos: -11.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2993 - type: DisposalPipe - components: - - parent: 15 - pos: -10.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2994 - type: DisposalPipe - components: - - parent: 15 - pos: -9.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2995 - type: DisposalPipe - components: - - parent: 15 - pos: -8.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2996 - type: DisposalPipe - components: - - parent: 15 - pos: 1.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2997 - type: DisposalPipe - components: - - parent: 15 - pos: 0.5,2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2998 - type: DisposalPipe - components: - - parent: 15 - pos: -0.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 2999 - type: DisposalPipe - components: - - parent: 15 - pos: -1.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3000 - type: DisposalPipe - components: - - parent: 15 - pos: -2.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3001 - type: DisposalPipe - components: - - parent: 15 - pos: -3.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3002 - type: DisposalPipe - components: - - parent: 15 - pos: -4.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3003 - type: DisposalPipe - components: - - parent: 15 - pos: -5.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3004 - type: DisposalPipe - components: - - parent: 15 - pos: -6.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3005 - type: DisposalPipe - components: - - parent: 15 - pos: -7.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3006 - type: DisposalBend - components: - - parent: 15 - pos: -17.5,-10.5 + - parent: 857 + pos: 2.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3007 - type: DisposalTrunk +- uid: 1913 + type: LowWall components: - - parent: 15 - pos: -22.5,6.5 + - parent: 857 + pos: 1.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3008 - type: DisposalPipe +- uid: 1914 + type: LowWall components: - - parent: 15 - pos: -22.5,5.5 + - parent: 857 + pos: 0.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3009 - type: DisposalPipe +- uid: 1915 + type: LowWall components: - - parent: 15 - pos: -22.5,4.5 + - parent: 857 + pos: -0.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3010 - type: DisposalBend +- uid: 1916 + type: LowWall components: - - parent: 15 - pos: -32.5,3.5 - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3011 - type: DisposalPipe - components: - - parent: 15 - pos: -23.5,-11.5 + - parent: 857 + pos: -1.5,33.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3012 - type: DisposalPipe +- uid: 1917 + type: LowWall components: - - parent: 15 - pos: -23.5,-12.5 + - parent: 857 + pos: -1.5,32.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3013 - type: DisposalPipe +- uid: 1918 + type: LowWall components: - - parent: 15 - pos: -22.5,-10.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3014 - type: DisposalTrunk - components: - - parent: 15 - pos: -12.5,1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3015 - type: DisposalPipe - components: - - parent: 15 - pos: -12.5,2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3016 - type: DisposalPipe - components: - - parent: 15 - pos: -21.5,-10.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3017 - type: DisposalTrunk - components: - - parent: 15 - pos: -27.5,-8.5 + - parent: 857 + pos: -2.5,31.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3018 - type: DisposalPipe +- uid: 1919 + type: LowWall components: - - parent: 15 - pos: -27.5,-9.5 + - parent: 857 + pos: -2.5,32.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3019 - type: DisposalUnit +- uid: 1920 + type: LowWall components: - - parent: 15 - pos: 0.5,1.5 + - parent: 857 + pos: 6.5,19.5 rot: -1.5707963267948966 rad type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3020 - type: DisposalTrunk +- uid: 1921 + type: LowWall components: - - parent: 15 - pos: 0.5,1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3021 - type: DisposalPipe - components: - - parent: 15 - pos: -20.5,-10.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3022 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,4.5 + - parent: 857 + pos: 6.5,18.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3023 - type: DisposalPipe +- uid: 1922 + type: reinforced_wall components: - - parent: 15 - pos: 3.5,-9.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3024 - type: DisposalPipe - components: - - parent: 15 - pos: 4.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3025 - type: DisposalPipe - components: - - parent: 15 - pos: 29.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3026 - type: DisposalPipe - components: - - parent: 15 - pos: 28.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3027 - type: DisposalPipe - components: - - parent: 15 - pos: 27.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3028 - type: DisposalPipe - components: - - parent: 15 - pos: 26.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3029 - type: DisposalPipe - components: - - parent: 15 - pos: 25.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3030 - type: DisposalPipe - components: - - parent: 15 - pos: 24.5,4.5 + - parent: 857 + pos: 1.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3031 - type: DisposalPipe +- uid: 1923 + type: reinforced_wall components: - - parent: 15 - pos: 23.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3032 - type: DisposalPipe - components: - - parent: 15 - pos: 22.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3033 - type: DisposalPipe - components: - - parent: 15 - pos: 21.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3034 - type: DisposalPipe - components: - - parent: 15 - pos: 20.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3035 - type: DisposalPipe - components: - - parent: 15 - pos: 19.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3036 - type: DisposalPipe - components: - - parent: 15 - pos: 18.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3037 - type: DisposalPipe - components: - - parent: 15 - pos: 17.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3038 - type: DisposalPipe - components: - - parent: 15 - pos: 16.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3039 - type: DisposalPipe - components: - - parent: 15 - pos: 15.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3040 - type: DisposalPipe - components: - - parent: 15 - pos: 14.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3041 - type: DisposalPipe - components: - - parent: 15 - pos: 13.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3042 - type: DisposalPipe - components: - - parent: 15 - pos: 12.5,2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3043 - type: DisposalPipe - components: - - parent: 15 - pos: 11.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3044 - type: DisposalPipe - components: - - parent: 15 - pos: 10.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3045 - type: DisposalPipe - components: - - parent: 15 - pos: 9.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3046 - type: DisposalPipe - components: - - parent: 15 - pos: 8.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3047 - type: DisposalPipe - components: - - parent: 15 - pos: 7.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3048 - type: DisposalPipe - components: - - parent: 15 - pos: 6.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3049 - type: DisposalPipe - components: - - parent: 15 - pos: 5.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3050 - type: DisposalUnit - components: - - parent: 15 - pos: 12.5,-2.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3051 - type: DisposalTrunk - components: - - parent: 15 - pos: 12.5,-2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3052 - type: ConveyorBelt - components: - - parent: 15 - pos: -22.5,-13.5 - type: Transform -- uid: 3053 - type: DisposalPipe - components: - - parent: 15 - pos: 12.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3054 - type: DisposalPipe - components: - - parent: 15 - pos: 12.5,0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3055 - type: DisposalPipe - components: - - parent: 15 - pos: 12.5,1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3056 - type: DisposalPipe - components: - - parent: 15 - pos: -19.5,-10.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3057 - type: DisposalUnit - components: - - parent: 15 - pos: 11.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3058 - type: DisposalTrunk - components: - - parent: 15 - pos: 11.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3059 - type: DisposalPipe - components: - - parent: 15 - pos: 10.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3060 - type: DisposalPipe - components: - - parent: 15 - pos: 9.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3061 - type: DisposalPipe - components: - - parent: 15 - pos: 4.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3062 - type: DisposalPipe - components: - - parent: 15 - pos: 8.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3063 - type: DisposalPipe - components: - - parent: 15 - pos: 7.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3064 - type: DisposalPipe - components: - - parent: 15 - pos: 6.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3065 - type: DisposalPipe - components: - - parent: 15 - pos: 5.5,-11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3066 - type: DisposalBend - components: - - parent: 15 - pos: 3.5,-11.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3067 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-10.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3068 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3069 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3070 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3071 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3072 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3073 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3074 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-3.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3075 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3076 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-5.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3077 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-6.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3078 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-7.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3079 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,-8.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3080 - type: DisposalPipe - components: - - parent: 15 - pos: -18.5,-10.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3081 - type: DisposalUnit - components: - - parent: 15 - pos: -2.5,29.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3082 - type: DisposalTrunk - components: - - parent: 15 - pos: -2.5,29.5 - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3083 - type: DisposalPipe - components: - - parent: 15 - pos: -1.5,29.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3084 - type: DisposalPipe - components: - - parent: 15 - pos: -0.5,29.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3085 - type: DisposalPipe - components: - - parent: 15 - pos: 0.5,29.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3086 - type: DisposalPipe - components: - - parent: 15 - pos: 1.5,29.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3087 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-21.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3088 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,28.5 + - parent: 857 + pos: 0.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3089 - type: DisposalPipe +- uid: 1924 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,27.5 + - parent: 857 + pos: -0.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3090 - type: DisposalPipe +- uid: 1925 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,26.5 + - parent: 857 + pos: -1.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3091 - type: DisposalPipe +- uid: 1926 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,25.5 + - parent: 857 + pos: -2.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3092 - type: DisposalPipe +- uid: 1927 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,24.5 + - parent: 857 + pos: -3.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3093 - type: DisposalPipe +- uid: 1928 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,23.5 + - parent: 857 + pos: -4.5,15.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3094 - type: DisposalPipe +- uid: 1929 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,22.5 + - parent: 857 + pos: -4.5,16.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3095 - type: DisposalPipe +- uid: 1930 + type: reinforced_wall components: - - parent: 15 - pos: 2.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3096 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,20.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3097 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,19.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3098 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,18.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3099 - type: DisposalPipe - components: - - parent: 15 - pos: 1.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3100 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,16.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3101 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,15.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3102 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,14.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3103 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,13.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3104 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,12.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3105 - type: DisposalPipe - components: - - parent: 15 - pos: 3.5,11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3106 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,10.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3107 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,9.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3108 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,8.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3109 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,7.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3110 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3111 - type: DisposalPipe - components: - - parent: 15 - pos: 2.5,5.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3112 - type: DisposalBend - components: - - parent: 15 - pos: 2.5,29.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3113 - type: DisposalUnit - components: - - parent: 15 - pos: 37.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3114 - type: DisposalTrunk - components: - - parent: 15 - pos: 37.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3115 - type: DisposalPipe - components: - - parent: 15 - pos: 37.5,5.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3116 - type: DisposalPipe - components: - - parent: 15 - pos: 37.5,4.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3117 - type: DisposalBend - components: - - parent: 15 - pos: 37.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3118 - type: DisposalPipe - components: - - parent: 15 - pos: 31.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3119 - type: DisposalPipe - components: - - parent: 15 - pos: 32.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3120 - type: DisposalPipe - components: - - parent: 15 - pos: 33.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3121 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3122 - type: DisposalPipe - components: - - parent: 15 - pos: 35.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3123 - type: DisposalPipe - components: - - parent: 15 - pos: 36.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3124 - type: DisposalPipe - components: - - parent: 15 - pos: 30.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3125 - type: DisposalUnit - components: - - parent: 15 - pos: 34.5,-4.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3126 - type: DisposalTrunk - components: - - parent: 15 - pos: 34.5,-4.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3127 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,-3.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3128 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,-2.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3129 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,-1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3130 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,-0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3131 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,0.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3132 - type: DisposalPipe - components: - - parent: 15 - pos: 34.5,1.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3133 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-20.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3134 - type: Recycler - components: - - parent: 15 - pos: -21.5,-13.5 - type: Transform -- uid: 3135 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-19.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3136 - type: DisposalPipe - components: - - parent: 15 - pos: 15.5,-1.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3137 - type: DisposalPipe - components: - - parent: 15 - pos: 14.5,-1.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3138 - type: DisposalPipe - components: - - parent: 15 - pos: 13.5,-1.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3139 - type: DisposalUnit - components: - - parent: 15 - pos: 24.5,8.5 - rot: -1.5707963267948966 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3140 - type: DisposalTrunk - components: - - parent: 15 - pos: 24.5,8.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3141 - type: DisposalPipe - components: - - parent: 15 - pos: 24.5,7.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3142 - type: DisposalPipe - components: - - parent: 15 - pos: 24.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3143 - type: DisposalPipe - components: - - parent: 15 - pos: 24.5,5.5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3144 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-18.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3145 - type: DisposalUnit - components: - - parent: 15 - pos: 6.5,11.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3146 - type: DisposalTrunk - components: - - parent: 15 - pos: 6.5,11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3147 - type: DisposalPipe - components: - - parent: 15 - pos: 5.5,11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3148 - type: DisposalPipe - components: - - parent: 15 - pos: 4.5,11.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3149 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-17.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3150 - type: DisposalUnit - components: - - parent: 15 - pos: -5.5,17.5 - rot: -1.5707963267948966 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3151 - type: DisposalTrunk - components: - - parent: 15 - pos: -5.5,17.5 - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3152 - type: DisposalPipe - components: - - parent: 15 + - parent: 857 pos: -4.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3153 - type: DisposalPipe - components: - - parent: 15 - pos: -3.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3154 - type: DisposalPipe - components: - - parent: 15 - pos: -2.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3155 - type: DisposalPipe - components: - - parent: 15 - pos: -1.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3156 - type: DisposalPipe - components: - - parent: 15 - pos: -0.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3157 - type: DisposalPipe - components: - - parent: 15 - pos: 0.5,17.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3158 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-16.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3159 - type: DisposalBend - components: - - parent: 15 - pos: -8.5,-15.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3160 - type: DisposalUnit - components: - - parent: 15 - pos: -29.5,11.5 rot: -1.5707963267948966 rad type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3161 - type: VendingMachineYouTool +- uid: 1931 + type: reinforced_wall components: - - parent: 15 - pos: -28.5,11.5 + - parent: 857 + pos: -4.5,18.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3162 - type: DisposalPipe +- uid: 1932 + type: reinforced_wall components: - - parent: 15 - pos: -28.5,9.5 + - parent: 857 + pos: -4.5,19.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3163 - type: DisposalPipe +- uid: 1933 + type: reinforced_wall components: - - parent: 15 - pos: -28.5,8.5 + - parent: 857 + pos: -5.5,19.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3164 - type: DisposalPipe +- uid: 1934 + type: LowWall components: - - parent: 15 - pos: -28.5,7.5 + - parent: 857 + pos: -7.5,18.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3165 - type: DisposalPipe +- uid: 1935 + type: reinforced_wall components: - - parent: 15 + - parent: 857 + pos: -3.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1936 + type: reinforced_wall + components: + - parent: 857 + pos: -2.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1937 + type: reinforced_wall + components: + - parent: 857 + pos: -1.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1938 + type: reinforced_wall + components: + - parent: 857 + pos: -0.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1939 + type: reinforced_wall + components: + - parent: 857 + pos: 0.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1940 + type: reinforced_wall + components: + - parent: 857 + pos: 0.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1941 + type: reinforced_wall + components: + - parent: 857 + pos: 0.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1942 + type: reinforced_wall + components: + - parent: 857 + pos: -5.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1943 + type: reinforced_wall + components: + - parent: 857 + pos: -5.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1944 + type: reinforced_wall + components: + - parent: 857 + pos: -5.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1945 + type: reinforced_wall + components: + - parent: 857 + pos: -6.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1946 + type: reinforced_wall + components: + - parent: 857 + pos: -7.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1947 + type: reinforced_wall + components: + - parent: 857 + pos: -8.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1948 + type: reinforced_wall + components: + - parent: 857 + pos: -9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1949 + type: Window + components: + - parent: 857 + pos: 40.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1950 + type: reinforced_wall + components: + - parent: 857 + pos: -11.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1951 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1952 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1953 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1954 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1955 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1956 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1957 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1958 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1959 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1960 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1961 + type: reinforced_wall + components: + - parent: 857 + pos: -11.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1962 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1963 + type: Window + components: + - parent: 857 + pos: 39.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1964 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1965 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1966 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1967 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1968 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1969 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1970 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1971 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1972 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1973 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1974 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1975 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1976 + type: reinforced_wall + components: + - parent: 857 + pos: -11.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1977 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1978 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1979 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1980 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1981 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1982 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1983 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1984 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1985 + type: reinforced_wall + components: + - parent: 857 + pos: -11.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1986 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1987 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1988 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1989 + type: reinforced_wall + components: + - parent: 857 + pos: -10.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1990 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1991 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1992 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1993 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1994 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1995 + type: AirlockMaintSecLocked + components: + - parent: 857 + pos: -14.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1996 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1997 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1998 + type: solid_wall + components: + - parent: 857 + pos: -6.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 1999 + type: LowWall + components: + - parent: 857 + pos: -10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2000 + type: solid_wall + components: + - parent: 857 + pos: -9.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2001 + type: solid_wall + components: + - parent: 857 + pos: -10.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2002 + type: solid_wall + components: + - parent: 857 + pos: -10.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2003 + type: solid_wall + components: + - parent: 857 + pos: -10.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2004 + type: solid_wall + components: + - parent: 857 + pos: -11.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2005 + type: solid_wall + components: + - parent: 857 + pos: -12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2006 + type: solid_wall + components: + - parent: 857 + pos: -13.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2007 + type: solid_wall + components: + - parent: 857 + pos: -5.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2008 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2009 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2010 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2011 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2012 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2013 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2014 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2015 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2016 + type: reinforced_wall + components: + - parent: 857 + pos: 1.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2017 + type: reinforced_wall + components: + - parent: 857 + pos: -4.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2018 + type: reinforced_wall + components: + - parent: 857 + pos: -1.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2019 + type: reinforced_wall + components: + - parent: 857 + pos: -7.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2020 + type: solid_wall + components: + - parent: 857 + pos: -4.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2021 + type: solid_wall + components: + - parent: 857 + pos: -4.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2022 + type: solid_wall + components: + - parent: 857 + pos: -4.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2023 + type: solid_wall + components: + - parent: 857 + pos: -1.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2024 + type: solid_wall + components: + - parent: 857 + pos: -1.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2025 + type: solid_wall + components: + - parent: 857 + pos: -1.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2026 + type: LowWall + components: + - parent: 857 + pos: -0.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2027 + type: LowWall + components: + - parent: 857 + pos: -3.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2028 + type: LowWall + components: + - parent: 857 + pos: -7.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2029 + type: LowWall + components: + - parent: 857 + pos: -8.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2030 + type: solid_wall + components: + - parent: 857 + pos: -15.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2031 + type: solid_wall + components: + - parent: 857 + pos: -17.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2032 + type: solid_wall + components: + - parent: 857 + pos: -18.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2033 + type: solid_wall + components: + - parent: 857 + pos: -18.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2034 + type: solid_wall + components: + - parent: 857 + pos: -18.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2035 + type: solid_wall + components: + - parent: 857 + pos: -18.5,9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2036 + type: solid_wall + components: + - parent: 857 + pos: -18.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2037 + type: solid_wall + components: + - parent: 857 + pos: -18.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2038 + type: solid_wall + components: + - parent: 857 + pos: -19.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2039 + type: solid_wall + components: + - parent: 857 + pos: -18.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2040 + type: solid_wall + components: + - parent: 857 + pos: -19.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2041 + type: solid_wall + components: + - parent: 857 + pos: -19.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2042 + type: solid_wall + components: + - parent: 857 + pos: -19.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2043 + type: solid_wall + components: + - parent: 857 + pos: -19.5,17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2044 + type: solid_wall + components: + - parent: 857 + pos: -19.5,18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2045 + type: solid_wall + components: + - parent: 857 + pos: -19.5,19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2046 + type: solid_wall + components: + - parent: 857 + pos: -19.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2047 + type: solid_wall + components: + - parent: 857 + pos: -19.5,21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2048 + type: solid_wall + components: + - parent: 857 + pos: -19.5,22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2049 + type: solid_wall + components: + - parent: 857 + pos: -19.5,23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2050 + type: solid_wall + components: + - parent: 857 + pos: -19.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2051 + type: solid_wall + components: + - parent: 857 + pos: -19.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2052 + type: solid_wall + components: + - parent: 857 + pos: -19.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2053 + type: solid_wall + components: + - parent: 857 + pos: -18.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2054 + type: solid_wall + components: + - parent: 857 + pos: -17.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2055 + type: solid_wall + components: + - parent: 857 + pos: -16.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2056 + type: solid_wall + components: + - parent: 857 + pos: -15.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2057 + type: solid_wall + components: + - parent: 857 + pos: -14.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2058 + type: solid_wall + components: + - parent: 857 + pos: -13.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2059 + type: solid_wall + components: + - parent: 857 + pos: -12.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2060 + type: solid_wall + components: + - parent: 857 + pos: -11.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2061 + type: solid_wall + components: + - parent: 857 + pos: -10.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2062 + type: solid_wall + components: + - parent: 857 + pos: -9.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2063 + type: solid_wall + components: + - parent: 857 + pos: -8.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2064 + type: solid_wall + components: + - parent: 857 + pos: -7.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2065 + type: solid_wall + components: + - parent: 857 + pos: -6.5,26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2066 + type: solid_wall + components: + - parent: 857 + pos: -6.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2067 + type: solid_wall + components: + - parent: 857 + pos: -4.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2068 + type: solid_wall + components: + - parent: 857 + pos: -5.5,25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2069 + type: solid_wall + components: + - parent: 857 + pos: -20.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2070 + type: solid_wall + components: + - parent: 857 + pos: -21.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2071 + type: solid_wall + components: + - parent: 857 + pos: -22.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2072 + type: solid_wall + components: + - parent: 857 + pos: -23.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2073 + type: solid_wall + components: + - parent: 857 + pos: -24.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2074 + type: solid_wall + components: + - parent: 857 + pos: -25.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2075 + type: solid_wall + components: + - parent: 857 + pos: -26.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2076 + type: solid_wall + components: + - parent: 857 + pos: -27.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2077 + type: solid_wall + components: + - parent: 857 + pos: -28.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2078 + type: solid_wall + components: + - parent: 857 + pos: -29.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2079 + type: solid_wall + components: + - parent: 857 + pos: -30.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2080 + type: solid_wall + components: + - parent: 857 + pos: -31.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2081 + type: solid_wall + components: + - parent: 857 + pos: -32.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2082 + type: solid_wall + components: + - parent: 857 + pos: -33.5,15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2083 + type: solid_wall + components: + - parent: 857 + pos: -33.5,14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2084 + type: solid_wall + components: + - parent: 857 + pos: -33.5,13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2085 + type: solid_wall + components: + - parent: 857 + pos: -33.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2086 + type: solid_wall + components: + - parent: 857 + pos: -33.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2087 + type: solid_wall + components: + - parent: 857 + pos: -33.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2088 + type: solid_wall + components: + - parent: 857 + pos: -21.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2089 + type: solid_wall + components: + - parent: 857 + pos: -33.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2090 + type: solid_wall + components: + - parent: 857 + pos: -33.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2091 + type: solid_wall + components: + - parent: 857 + pos: -32.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2092 + type: solid_wall + components: + - parent: 857 + pos: -31.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2093 + type: solid_wall + components: + - parent: 857 + pos: -30.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2094 + type: LowWall + components: + - parent: 857 pos: -28.5,6.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3166 - type: DisposalPipe +- uid: 2095 + type: Window components: - - parent: 15 - pos: -28.5,5.5 + - parent: 857 + pos: -8.5,2.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3167 - type: DisposalPipe +- uid: 2096 + type: Window components: - - parent: 15 - pos: -16.5,-15.5 - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3168 - type: DisposalUnit - components: - - parent: 15 - pos: -17.5,-22.5 - rot: 3.141592653589793 rad - type: Transform - - - containers: - DisposalUnit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 3169 - type: DisposalTrunk - components: - - parent: 15 - pos: -17.5,-22.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalEntry: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3170 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-11.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3171 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-12.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3172 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-13.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3173 - type: DisposalPipe - components: - - parent: 15 - pos: -17.5,-14.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3174 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: 3.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3175 - type: DisposalJunction - components: - - parent: 15 - pos: 2.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3176 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: 0.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3177 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: -12.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3178 - type: DisposalJunction - components: - - parent: 15 - pos: -22.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3179 - type: DisposalJunction - components: - - parent: 15 - pos: -28.5,3.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3180 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: -27.5,-10.5 - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3181 - type: DisposalYJunction - components: - - parent: 15 - pos: -23.5,-10.5 + - parent: 857 + pos: -7.5,2.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3182 - type: DisposalJunction +- uid: 2097 + type: solid_wall components: - - parent: 15 - pos: -17.5,-15.5 - rot: 1.5707963267948966 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3183 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: -10.5,-15.5 - rot: 3.141592653589793 rad - type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3184 - type: DisposalJunctionFlipped - components: - - parent: 15 - pos: 2.5,11.5 + - parent: 857 + pos: -26.5,6.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3185 - type: DisposalJunction +- uid: 2098 + type: solid_wall components: - - parent: 15 - pos: 2.5,17.5 + - parent: 857 + pos: -26.5,7.5 rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3186 - type: DisposalJunctionFlipped +- uid: 2099 + type: solid_wall components: - - parent: 15 - pos: 12.5,3.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -25.5,7.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3187 - type: DisposalJunction +- uid: 2100 + type: solid_wall components: - - parent: 15 - pos: 12.5,-1.5 - rot: 1.5707963267948966 rad + - parent: 857 + pos: -30.5,7.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3188 - type: DisposalJunction +- uid: 2101 + type: solid_wall components: - - parent: 15 - pos: 24.5,3.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -30.5,8.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3189 - type: DisposalJunctionFlipped +- uid: 2102 + type: solid_wall components: - - parent: 15 - pos: 34.5,3.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -30.5,9.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalJunction: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3190 - type: ConveyorSwitch +- uid: 2103 + type: solid_wall components: - - parent: 15 - pos: -23.467268,-14.347846 - rot: 3.141592653589793 rad + - parent: 857 + pos: -30.5,10.5 + rot: -1.5707963267948966 rad type: Transform - - conveyors: [] - switches: [] - type: ConveyorSwitch -- uid: 3191 - type: DisposalPipe +- uid: 2104 + type: solid_wall components: - - parent: 15 - pos: 16.5,-1.5 + - parent: 857 + pos: -30.5,11.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalTransit: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3192 - type: DisposalBend +- uid: 2105 + type: solid_wall components: - - parent: 15 - pos: 17.5,-1.5 - rot: 3.141592653589793 rad + - parent: 857 + pos: -30.5,12.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3193 - type: DisposalBend +- uid: 2106 + type: solid_wall components: - - parent: 15 - pos: 17.5,-0.5 + - parent: 857 + pos: -28.5,12.5 + rot: -1.5707963267948966 rad type: Transform - - containers: - DisposalBend: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer - -- uid: 3194 - type: Beaker +- uid: 2107 + type: solid_wall components: - - parent: 15 - pos: 18.361881,1.6674205 - rot: 3.141592653589793 rad + - parent: 857 + pos: -27.5,12.5 + rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3195 - type: LargeBeaker +- uid: 2108 + type: solid_wall components: - - parent: 15 - pos: 18.611881,1.2455455 - rot: 3.141592653589793 rad + - parent: 857 + pos: -26.5,12.5 + rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3196 - type: ConveyorBelt +- uid: 2109 + type: solid_wall components: - - parent: 15 - pos: -23.5,-13.5 + - parent: 857 + pos: -25.5,12.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 3197 - type: AirlockMaintCargo +- uid: 2110 + type: solid_wall components: - - parent: 15 - pos: -24.5,-12.5 + - parent: 857 + pos: -24.5,12.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 3198 - type: SignDirectionalSupply +- uid: 2111 + type: solid_wall components: - - parent: 15 - pos: -25.704908,7.5 - rot: 1.5707963267948966 rad + - parent: 857 + pos: -23.5,12.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 3199 - type: SignDirectionalEvac +- uid: 2112 + type: solid_wall components: - - parent: 15 - pos: -20.488556,6.5 - rot: 1.5707963267948966 rad + - parent: 857 + pos: -22.5,12.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 3200 +- uid: 2113 + type: solid_wall + components: + - parent: 857 + pos: -29.5,12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2114 + type: solid_wall + components: + - parent: 857 + pos: -22.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2115 + type: solid_wall + components: + - parent: 857 + pos: -22.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2116 + type: solid_wall + components: + - parent: 857 + pos: -21.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2117 + type: solid_wall + components: + - parent: 857 + pos: -22.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2118 + type: solid_wall + components: + - parent: 857 + pos: -22.5,8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2119 + type: solid_wall + components: + - parent: 857 + pos: -22.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2120 + type: solid_wall + components: + - parent: 857 + pos: -21.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2121 + type: solid_wall + components: + - parent: 857 + pos: -21.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2122 + type: solid_wall + components: + - parent: 857 + pos: -20.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2123 + type: solid_wall + components: + - parent: 857 + pos: -19.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2124 + type: solid_wall + components: + - parent: 857 + pos: -25.5,11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2125 type: LowWall components: - - parent: 15 - pos: 21.5,16.5 + - parent: 857 + pos: -25.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3201 +- uid: 2126 type: LowWall components: - - parent: 15 - pos: 21.5,15.5 + - parent: 857 + pos: -2.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3202 - type: solid_wall - components: - - parent: 15 - pos: 18.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3203 - type: solid_wall - components: - - parent: 15 - pos: 24.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3204 - type: SignCargoDock - components: - - parent: 15 - pos: 18.501179,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3205 - type: SignChem - components: - - parent: 15 - pos: 14.317627,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3206 - type: SignEVA - components: - - parent: 15 - pos: 10.691145,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3207 - type: Poweredlight - components: - - parent: 15 - pos: 28.73304,7 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3208 - type: SignToolStorage - components: - - parent: 15 - pos: -26.694574,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3209 - type: SignGravity - components: - - parent: 15 - pos: 48.325787,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3210 - type: SignMedical - components: - - parent: 15 - pos: 6.500677,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3211 - type: SignRND - components: - - parent: 15 - pos: -5.506548,-18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3212 - type: Poweredlight - components: - - parent: 15 - pos: -15.231159,-17 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3213 - type: Poweredlight - components: - - parent: 15 - pos: -25.939785,7 - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3214 - type: SignBridge - components: - - parent: 15 - pos: 5.6507263,22.5 - type: Transform -- uid: 3215 - type: SignDirectionalEng - components: - - parent: 15 - pos: 5.987236,6.2578936 - type: Transform -- uid: 3216 - type: PlaqueZum - components: - - parent: 15 - pos: 33.498077,11.399912 - rot: 1.5707963267948966 rad - type: Transform -- uid: 3217 - type: Poweredlight - components: - - parent: 15 - pos: 49.53657,5 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3218 - type: Poweredlight - components: - - parent: 15 - pos: -10,13.5 - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3219 - type: Poweredlight - components: - - parent: 15 - pos: 41.000477,14 - rot: -1.5707963267948966 rad - type: Transform - - containers: - light_bulb: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3220 - type: SignEngineering - components: - - parent: 15 - pos: 30.305984,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3221 - type: Table - components: - - parent: 15 - pos: -14.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3222 - type: Table - components: - - parent: 15 - pos: -13.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3223 - type: Table - components: - - parent: 15 - pos: -14.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3224 - type: TaserGun - components: - - parent: 15 - pos: -13.672081,21.719378 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - BatteryBarrel-powercell-container: - entities: - - 3225 - type: Content.Server.GameObjects.ContainerSlot - BatteryBarrel-ammo-container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3225 - type: PowerCellSmallStandard - components: - - parent: 3224 - type: Transform - - startingCharge: 1000 - type: PowerCell - - anchored: False - type: Collidable -- uid: 3226 - type: TaserGun - components: - - parent: 15 - pos: -14.515831,21.735003 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - BatteryBarrel-powercell-container: - entities: - - 3227 - type: Content.Server.GameObjects.ContainerSlot - BatteryBarrel-ammo-container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3227 - type: PowerCellSmallStandard - components: - - parent: 3226 - type: Transform - - startingCharge: 1000 - type: PowerCell - - anchored: False - type: Collidable -- uid: 3228 - type: Stunbaton - components: - - parent: 15 - pos: -14.609581,20.969378 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - stunbaton_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3229 - type: Stunbaton - components: - - parent: 15 - pos: -14.484581,20.641253 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable - - containers: - stunbaton_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3230 - type: Chair - components: - - parent: 15 - pos: 8.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3231 - type: Chair - components: - - parent: 15 - pos: 9.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3232 - type: Chair - components: - - parent: 15 - pos: 10.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3233 - type: S - components: - - parent: 15 - pos: -9.816995,-25.23114 - type: Transform - - anchored: False - type: Collidable -- uid: 3234 - type: HatHardhatRed - components: - - parent: 15 - pos: 31.201477,-4.05181 - type: Transform - - anchored: False - type: Collidable -- uid: 3235 - type: HatHardhatWhite - components: - - parent: 15 - pos: 31.623352,-4.14556 - type: Transform - - anchored: False - type: Collidable -- uid: 3236 - type: HatHardhatYellow - components: - - parent: 15 - pos: 31.357727,-4.36431 - type: Transform - - anchored: False - type: Collidable -- uid: 3237 - type: FlashlightLantern - components: - - parent: 15 - pos: 30.545227,-4.17681 - type: Transform - - anchored: False - type: Collidable - - containers: - flashlight_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3238 - type: FlashlightLantern - components: - - parent: 15 - pos: 30.248352,-4.36431 - type: Transform - - anchored: False - type: Collidable - - containers: - flashlight_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 3239 - type: RandHandTele - components: - - parent: 15 - pos: 8.379866,26.654026 - type: Transform - - anchored: False - type: Collidable -- uid: 3240 - type: DrinkHotCoffee - components: - - parent: 15 - pos: 8.661116,25.513401 - type: Transform - - caps: PourIn, PourOut, Injectable - type: Solution - - anchored: False - type: Collidable -- uid: 3241 - type: Paper - components: - - parent: 15 - pos: 8.379866,25.982151 - type: Transform - - anchored: False - type: Collidable -- uid: 3242 - type: SignAtmos - components: - - parent: 15 - pos: 31.498556,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3243 - type: SignSomethingOld - components: - - parent: 15 - pos: 17.158585,-23.619913 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3244 - type: SignSomethingOld2 - components: - - parent: 15 - pos: 24.996767,-0.60842 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3245 - type: Basketball - components: - - parent: 15 - pos: -1.5183675,-6.4951944 - type: Transform - - anchored: False - type: Collidable -- uid: 3246 - type: WaterTankFull - components: - - parent: 15 - pos: 0.5,-11.5 - type: Transform - - anchored: False - type: Collidable -- uid: 3247 - type: WeldingFuelTank - components: - - parent: 15 - pos: -1.5,-11.5 - type: Transform - - anchored: False - type: Collidable -- uid: 3248 - type: RCD - components: - - parent: 15 - pos: 29.4025,-4.489469 - type: Transform - - anchored: False - type: Collidable -- uid: 3249 - type: RCD - components: - - parent: 15 - pos: 29.55875,-4.333219 - type: Transform - - anchored: False - type: Collidable -- uid: 3250 - type: MaskJoy - components: - - parent: 15 - pos: -9.360208,-25.487799 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3251 - type: Brutepack - components: - - parent: 15 - pos: 6.839255,-3.3712535 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3252 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3253 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3254 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3255 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3256 - type: solid_wall - components: - - parent: 15 - pos: -25.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3257 - type: solid_wall - components: - - parent: 15 - pos: -24.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3258 - type: solid_wall - components: - - parent: 15 - pos: -23.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3259 - type: solid_wall - components: - - parent: 15 - pos: -22.5,-16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3260 +- uid: 2127 type: LowWall components: - - parent: 15 - pos: 26.5,14.5 + - parent: 857 + pos: -3.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3261 +- uid: 2128 type: LowWall components: - - parent: 15 - pos: 27.5,14.5 + - parent: 857 + pos: -0.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3262 +- uid: 2129 type: LowWall components: - - parent: 15 - pos: 28.5,14.5 + - parent: 857 + pos: 0.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3263 - type: ReinforcedWindow +- uid: 2130 + type: LowWall components: - - parent: 15 - pos: 26.5,14.5 + - parent: 857 + pos: 14.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3264 - type: ReinforcedWindow +- uid: 2131 + type: solid_wall components: - - parent: 15 - pos: 27.5,14.5 + - parent: 857 + pos: 30.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3265 - type: ReinforcedWindow +- uid: 2132 + type: solid_wall components: - - parent: 15 - pos: 28.5,14.5 + - parent: 857 + pos: 30.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3266 +- uid: 2133 + type: solid_wall + components: + - parent: 857 + pos: 29.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2134 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2135 + type: solid_wall + components: + - parent: 857 + pos: 27.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2136 + type: solid_wall + components: + - parent: 857 + pos: 26.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2137 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2138 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2139 + type: solid_wall + components: + - parent: 857 + pos: 24.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2140 + type: solid_wall + components: + - parent: 857 + pos: 24.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2141 + type: solid_wall + components: + - parent: 857 + pos: 24.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2142 + type: solid_wall + components: + - parent: 857 + pos: 23.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2143 + type: solid_wall + components: + - parent: 857 + pos: 22.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2144 + type: solid_wall + components: + - parent: 857 + pos: 19.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2145 + type: solid_wall + components: + - parent: 857 + pos: 18.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2146 + type: solid_wall + components: + - parent: 857 + pos: 17.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2147 + type: solid_wall + components: + - parent: 857 + pos: 16.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2148 + type: solid_wall + components: + - parent: 857 + pos: 15.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2149 + type: solid_wall + components: + - parent: 857 + pos: 14.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2150 + type: solid_wall + components: + - parent: 857 + pos: 13.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2151 + type: solid_wall + components: + - parent: 857 + pos: 12.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2152 + type: solid_wall + components: + - parent: 857 + pos: 6.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2153 + type: solid_wall + components: + - parent: 857 + pos: 5.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2154 + type: solid_wall + components: + - parent: 857 + pos: 5.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2155 + type: solid_wall + components: + - parent: 857 + pos: 20.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2156 + type: solid_wall + components: + - parent: 857 + pos: 19.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2157 + type: solid_wall + components: + - parent: 857 + pos: 19.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2158 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2159 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2160 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2161 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2162 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2163 + type: solid_wall + components: + - parent: 857 + pos: 14.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2164 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2165 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2166 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2167 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2168 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2169 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2170 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2171 + type: solid_wall + components: + - parent: 857 + pos: 5.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2172 + type: LowWall + components: + - parent: 857 + pos: 5.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2173 + type: LowWall + components: + - parent: 857 + pos: 5.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2174 + type: LowWall + components: + - parent: 857 + pos: 5.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2175 + type: LowWall + components: + - parent: 857 + pos: 13.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2176 + type: LowWall + components: + - parent: 857 + pos: 13.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2177 + type: LowWall + components: + - parent: 857 + pos: 13.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2178 + type: LowWall + components: + - parent: 857 + pos: 16.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2179 + type: LowWall + components: + - parent: 857 + pos: 11.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2180 + type: LowWall + components: + - parent: 857 + pos: 10.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2181 + type: LowWall + components: + - parent: 857 + pos: 9.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2182 + type: LowWall + components: + - parent: 857 + pos: 8.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2183 + type: LowWall + components: + - parent: 857 + pos: 7.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2184 + type: LowWall + components: + - parent: 857 + pos: 6.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2185 + type: LowWall + components: + - parent: 857 + pos: 9.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2186 + type: LowWall + components: + - parent: 857 + pos: 8.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2187 + type: LowWall + components: + - parent: 857 + pos: 13.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2188 + type: LowWall + components: + - parent: 857 + pos: 13.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2189 + type: LowWall + components: + - parent: 857 + pos: 12.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2190 + type: LowWall + components: + - parent: 857 + pos: 18.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2191 + type: solid_wall + components: + - parent: 857 + pos: 19.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2192 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2193 + type: solid_wall + components: + - parent: 857 + pos: 21.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2194 + type: solid_wall + components: + - parent: 857 + pos: 22.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2195 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2196 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2197 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2198 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2199 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2200 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2201 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2202 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2203 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2204 + type: solid_wall + components: + - parent: 857 + pos: 22.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2205 + type: solid_wall + components: + - parent: 857 + pos: 21.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2206 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2207 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2208 + type: solid_wall + components: + - parent: 857 + pos: 16.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2209 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2210 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2211 + type: Window + components: + - parent: 857 + pos: 20.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2212 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2213 + type: solid_wall + components: + - parent: 857 + pos: 21.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2214 + type: solid_wall + components: + - parent: 857 + pos: 22.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2215 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2216 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2217 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2218 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2219 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2220 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2221 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2222 + type: solid_wall + components: + - parent: 857 + pos: 25.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2223 + type: solid_wall + components: + - parent: 857 + pos: 24.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2224 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2225 + type: solid_wall + components: + - parent: 857 + pos: 22.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2226 + type: solid_wall + components: + - parent: 857 + pos: 21.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2227 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2228 + type: Window + components: + - parent: 857 + pos: 20.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2229 + type: solid_wall + components: + - parent: 857 + pos: 15.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2230 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2231 + type: solid_wall + components: + - parent: 857 + pos: 20.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2232 + type: solid_wall + components: + - parent: 857 + pos: 46.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2233 + type: solid_wall + components: + - parent: 857 + pos: 45.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2234 + type: solid_wall + components: + - parent: 857 + pos: 48.5,5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2235 + type: LowWall + components: + - parent: 857 + pos: 20.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2236 + type: LowWall + components: + - parent: 857 + pos: 20.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2237 + type: LowWall + components: + - parent: 857 + pos: 11.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2238 + type: LowWall + components: + - parent: 857 + pos: 11.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2239 + type: LowWall + components: + - parent: 857 + pos: 9.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2240 + type: Window + components: + - parent: 857 + pos: 9.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2241 + type: solid_wall + components: + - parent: 857 + pos: 11.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2242 + type: Window + components: + - parent: 857 + pos: 11.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2243 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2244 + type: Window + components: + - parent: 857 + pos: 20.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2245 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2246 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2247 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2248 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2249 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2250 + type: solid_wall + components: + - parent: 857 + pos: 7.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2251 + type: solid_wall + components: + - parent: 857 + pos: 8.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2252 + type: solid_wall + components: + - parent: 857 + pos: 9.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2253 + type: solid_wall + components: + - parent: 857 + pos: 10.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2254 + type: solid_wall + components: + - parent: 857 + pos: 11.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2255 + type: Window + components: + - parent: 857 + pos: 11.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2256 + type: solid_wall + components: + - parent: 857 + pos: 11.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2257 + type: solid_wall + components: + - parent: 857 + pos: 12.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2258 + type: solid_wall + components: + - parent: 857 + pos: 13.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2259 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2260 + type: solid_wall + components: + - parent: 857 + pos: 6.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2261 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2262 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2263 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2264 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2265 + type: solid_wall + components: + - parent: 857 + pos: 28.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2266 + type: solid_wall + components: + - parent: 857 + pos: 29.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2267 + type: solid_wall + components: + - parent: 857 + pos: 30.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2268 + type: solid_wall + components: + - parent: 857 + pos: 31.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2269 + type: solid_wall + components: + - parent: 857 + pos: 32.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2270 + type: solid_wall + components: + - parent: 857 + pos: 34.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2271 + type: solid_wall + components: + - parent: 857 + pos: 35.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2272 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2273 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2274 + type: solid_wall + components: + - parent: 857 + pos: 36.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2275 + type: solid_wall + components: + - parent: 857 + pos: 1.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2276 + type: solid_wall + components: + - parent: 857 + pos: 1.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2277 + type: solid_wall + components: + - parent: 857 + pos: 0.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2278 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2279 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2280 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2281 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2282 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2283 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2284 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2285 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2286 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2287 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2288 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2289 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2290 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2291 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2292 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2293 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2294 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2295 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2296 + type: solid_wall + components: + - parent: 857 + pos: -5.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2297 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2298 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2299 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2300 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2301 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2302 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2303 + type: solid_wall + components: + - parent: 857 + pos: -3.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2304 + type: AirlockServiceLocked + components: + - name: Freezer + type: MetaData + - parent: 857 + pos: -12.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2305 + type: solid_wall + components: + - parent: 857 + pos: -5.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2306 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2307 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2308 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2309 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2310 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2311 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2312 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2313 + type: LowWall + components: + - parent: 857 + pos: -2.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2314 + type: LowWall + components: + - parent: 857 + pos: -4.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2315 + type: LowWall + components: + - parent: 857 + pos: 0.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2316 + type: solid_wall + components: + - parent: 857 + pos: -7.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2317 + type: solid_wall + components: + - parent: 857 + pos: 1.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2318 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2319 + type: solid_wall + components: + - parent: 857 + pos: 0.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2320 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2321 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2322 + type: LowWall + components: + - parent: 857 + pos: -4.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2323 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2324 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2325 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2326 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2327 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2328 + type: solid_wall + components: + - parent: 857 + pos: -3.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2329 + type: solid_wall + components: + - parent: 857 + pos: -4.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2330 + type: solid_wall + components: + - parent: 857 + pos: -5.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2331 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2332 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2333 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2334 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2335 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2336 + type: LowWall + components: + - parent: 857 + pos: -2.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2337 + type: LowWall + components: + - parent: 857 + pos: -5.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2338 + type: solid_wall + components: + - parent: 857 + pos: -9.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2339 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2340 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2341 + type: reinforced_wall + components: + - parent: 857 + pos: -14.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2342 + type: reinforced_wall + components: + - parent: 857 + pos: -15.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2343 + type: reinforced_wall + components: + - parent: 857 + pos: -16.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2344 + type: reinforced_wall + components: + - parent: 857 + pos: -17.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2345 + type: reinforced_wall + components: + - parent: 857 + pos: -18.5,-27.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2346 + type: reinforced_wall + components: + - parent: 857 + pos: -18.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2347 + type: reinforced_wall + components: + - parent: 857 + pos: -18.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2348 + type: reinforced_wall + components: + - parent: 857 + pos: -18.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2349 + type: reinforced_wall + components: + - parent: 857 + pos: -18.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2350 + type: reinforced_wall + components: + - parent: 857 + pos: -17.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2351 + type: reinforced_wall + components: + - parent: 857 + pos: -13.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2352 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2353 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2354 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2355 + type: reinforced_wall + components: + - parent: 857 + pos: -12.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2356 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2357 + type: solid_wall + components: + - parent: 857 + pos: -11.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2358 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2359 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2360 + type: solid_wall + components: + - parent: 857 + pos: -5.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2361 + type: solid_wall + components: + - parent: 857 + pos: -4.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2362 + type: solid_wall + components: + - parent: 857 + pos: -3.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2363 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2364 + type: solid_wall + components: + - parent: 857 + pos: -1.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2365 + type: solid_wall + components: + - parent: 857 + pos: -0.5,-28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2366 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2367 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2368 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2369 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2370 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2371 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2372 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2373 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2374 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2375 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2376 + type: solid_wall + components: + - parent: 857 + pos: -11.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2377 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2378 + type: solid_wall + components: + - parent: 857 + pos: -9.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2379 + type: solid_wall + components: + - parent: 857 + pos: -8.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2380 + type: solid_wall + components: + - parent: 857 + pos: -7.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2381 + type: solid_wall + components: + - parent: 857 + pos: -13.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2382 + type: solid_wall + components: + - parent: 857 + pos: -14.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2383 + type: solid_wall + components: + - parent: 857 + pos: -15.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2384 + type: solid_wall + components: + - parent: 857 + pos: -17.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2385 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2386 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2387 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2388 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2389 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2390 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2391 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2392 type: Table components: - - parent: 15 - pos: -3.5,18.5 + - parent: 857 + pos: 6.5,28.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3267 +- uid: 2393 type: Table components: - - parent: 15 - pos: -2.5,18.5 + - parent: 857 + pos: 5.5,28.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3268 - type: Table +- uid: 2394 + type: VendingMachineCoffee components: - - parent: 15 - pos: -2.5,16.5 + - parent: 857 + pos: 5.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3269 - type: Table +- uid: 2395 + type: ToolboxElectricalFilled components: - - parent: 15 - pos: -3.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 3270 - type: Bling - components: - - parent: 15 - pos: -2.564289,18.643616 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3271 - type: Bling - components: - - parent: 15 - pos: -2.861164,18.612366 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3272 - type: GoldStack - components: - - parent: 15 - pos: -3.064289,16.53424 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3273 - type: GoldStack - components: - - parent: 15 - pos: -2.861164,16.72174 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3274 - type: GoldStack - components: - - parent: 15 - pos: -2.673664,16.72174 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3275 - type: GoldStack - components: - - parent: 15 - pos: -2.611164,16.549866 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3276 - type: GoldStack - components: - - parent: 15 - pos: -2.798664,16.424866 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3277 - type: GoldStack - components: - - parent: 15 - pos: -2.283039,16.518616 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3278 - type: GoldStack - components: - - parent: 15 - pos: -2.439289,16.72174 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3279 - type: GoldStack - components: - - parent: 15 - pos: -2.579914,16.362366 - rot: -1.5707963267948966 rad - type: Transform - - anchored: False - type: Collidable -- uid: 3280 - type: DrinkGoldenCup - components: - - parent: 15 - pos: -3.470539,16.956116 - rot: -1.5707963267948966 rad - type: Transform - - caps: PourIn, PourOut, Injectable - type: Solution - - anchored: False - type: Collidable -- uid: 3281 - type: ToolboxGoldFilled - components: - - parent: 15 - pos: -3.454914,18.643616 + - parent: 857 + pos: 8.259691,28.555487 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -37578,40 +32050,747 @@ entities: storagebase: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 3282 - type: SuspicionPistolSpawner +- uid: 2396 + type: solid_wall components: - - parent: 15 - pos: 8.5,-4.5 + - parent: 857 + pos: -16.5,-13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3283 - type: PlushieCarp +- uid: 2397 + type: solid_wall components: - - parent: 15 - pos: -4.7375913,-3.3900535 + - parent: 857 + pos: -15.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2398 + type: solid_wall + components: + - parent: 857 + pos: -14.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2399 + type: solid_wall + components: + - parent: 857 + pos: -12.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2400 + type: solid_wall + components: + - parent: 857 + pos: -11.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2401 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2402 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2403 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2404 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2405 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2406 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2407 + type: solid_wall + components: + - parent: 857 + pos: -11.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2408 + type: solid_wall + components: + - parent: 857 + pos: -13.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2409 + type: solid_wall + components: + - parent: 857 + pos: -14.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2410 + type: solid_wall + components: + - parent: 857 + pos: -15.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2411 + type: solid_wall + components: + - parent: 857 + pos: -16.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2412 + type: solid_wall + components: + - parent: 857 + pos: -16.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2413 + type: solid_wall + components: + - parent: 857 + pos: -16.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2414 + type: solid_wall + components: + - parent: 857 + pos: -16.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2415 + type: solid_wall + components: + - parent: 857 + pos: -16.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2416 + type: solid_wall + components: + - parent: 857 + pos: -9.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2417 + type: solid_wall + components: + - parent: 857 + pos: -8.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2418 + type: solid_wall + components: + - parent: 857 + pos: -7.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2419 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2420 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2421 + type: solid_wall + components: + - parent: 857 + pos: -2.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2422 + type: solid_wall + components: + - parent: 857 + pos: -3.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2423 + type: solid_wall + components: + - parent: 857 + pos: -4.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2424 + type: solid_wall + components: + - parent: 857 + pos: -5.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2425 + type: solid_wall + components: + - parent: 857 + pos: -6.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2426 + type: solid_wall + components: + - parent: 857 + pos: -7.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2427 + type: solid_wall + components: + - parent: 857 + pos: -8.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2428 + type: solid_wall + components: + - parent: 857 + pos: -8.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2429 + type: solid_wall + components: + - parent: 857 + pos: -8.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2430 + type: solid_wall + components: + - parent: 857 + pos: -7.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2431 + type: solid_wall + components: + - parent: 857 + pos: -9.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2432 + type: solid_wall + components: + - parent: 857 + pos: -10.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2433 + type: Table + components: + - parent: 857 + pos: -15.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2434 + type: Table + components: + - parent: 857 + pos: -15.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2435 + type: Table + components: + - parent: 857 + pos: -29.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2436 + type: DisposalTrunk + components: + - parent: 857 + pos: -10.5,-17.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Breakable + - containers: + DisposalEntry: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer + +- uid: 2437 + type: VendingMachineSovietSoda + components: + - parent: 857 + pos: -11.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2438 + type: ChairOfficeDark + components: + - parent: 857 + pos: 40.5,-0.5 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 2439 + type: solid_wall + components: + - parent: 857 + pos: -10.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2440 + type: solid_wall + components: + - parent: 857 + pos: -4.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2441 + type: solid_wall + components: + - parent: 857 + pos: -9.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2442 + type: solid_wall + components: + - parent: 857 + pos: -11.5,2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2443 + type: Table + components: + - parent: 857 + pos: 26.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2444 + type: Multitool + components: + - parent: 857 + pos: 6.259919,28.557344 rot: -1.5707963267948966 rad type: Transform - anchored: False type: Collidable -- uid: 3284 - type: PowerCellRecharger +- uid: 2445 + type: Medkit components: - - parent: 15 - pos: 39.5,-1.5 + - parent: 857 + pos: -0.959059,28.524237 rot: -1.5707963267948966 rad type: Transform - anchored: False type: Collidable - containers: - PowerCellCharger-powerCellContainer: - type: Content.Server.GameObjects.ContainerSlot + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 3285 - type: LockerCursed +- uid: 2446 + type: VendingMachineCola components: - - parent: 15 - pos: -8.5,-25.5 + - parent: 857 + pos: 29.5,6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2447 + type: Table + components: + - parent: 857 + pos: 28.5,0.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2448 + type: Table + components: + - parent: 857 + pos: 20.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2449 + type: Table + components: + - parent: 857 + pos: 19.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2450 + type: WeldingFuelTank + components: + - parent: 857 + pos: -26.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 2451 + type: WeldingFuelTank + components: + - parent: 857 + pos: 35.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 2452 + type: WeldingFuelTank + components: + - parent: 857 + pos: -15.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 2453 + type: DrinkMugMoebius + components: + - parent: 857 + pos: -8.476567,-17.420076 + rot: -1.5707963267948966 rad + type: Transform + - caps: PourIn, PourOut, Injectable + type: Solution + - anchored: False + type: Collidable +- uid: 2454 + type: VendingMachineSnack + components: + - parent: 857 + pos: 9.5,28.5 + rot: 3.141592653589793 rad + type: Transform +- uid: 2455 + type: Table + components: + - parent: 857 + pos: 0.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2456 + type: Table + components: + - parent: 857 + pos: 1.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2457 + type: Table + components: + - parent: 857 + pos: -0.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2458 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2459 + type: solid_wall + components: + - parent: 857 + pos: -22.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2460 + type: Paper + components: + - parent: 857 + pos: 9.543142,17.067865 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable +- uid: 2461 + type: solid_wall + components: + - parent: 857 + pos: -24.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2462 + type: solid_wall + components: + - parent: 857 + pos: -25.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2463 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2464 + type: solid_wall + components: + - parent: 857 + pos: -27.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2465 + type: solid_wall + components: + - parent: 857 + pos: -28.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2466 + type: solid_wall + components: + - parent: 857 + pos: -29.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2467 + type: solid_wall + components: + - parent: 857 + pos: -30.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2468 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2469 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2470 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2471 + type: Table + components: + - parent: 857 + pos: -1.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2472 + type: Table + components: + - parent: 857 + pos: -2.5,28.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2473 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2474 + type: solid_wall + components: + - parent: 857 + pos: -34.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2475 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2476 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2477 + type: solid_wall + components: + - parent: 857 + pos: -31.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2478 + type: solid_wall + components: + - parent: 857 + pos: -30.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2479 + type: solid_wall + components: + - parent: 857 + pos: -29.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2480 + type: solid_wall + components: + - parent: 857 + pos: -28.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2481 + type: solid_wall + components: + - parent: 857 + pos: -27.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2482 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2483 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2484 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2485 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2486 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2487 + type: solid_wall + components: + - parent: 857 + pos: -26.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2488 + type: Table + components: + - parent: 857 + pos: -7.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2489 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2490 + type: solid_wall + components: + - parent: 857 + pos: -21.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2491 + type: solid_wall + components: + - parent: 857 + pos: -20.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2492 + type: solid_wall + components: + - parent: 857 + pos: -19.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2493 + type: solid_wall + components: + - parent: 857 + pos: -18.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2494 + type: solid_wall + components: + - parent: 857 + pos: -17.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2495 + type: SpawnPointLatejoin + components: + - parent: 857 + pos: -36.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2496 + type: SpawnPointLatejoin + components: + - parent: 857 + pos: -36.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2497 + type: CrateInternals + components: + - parent: 857 + pos: 42.5,13.5 rot: -1.5707963267948966 rad type: Transform - anchored: False @@ -37622,528 +32801,13188 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 3286 - type: hemostat +- uid: 2498 + type: CrateRadiation components: - - parent: 15 - pos: 19.655668,-21.300453 + - parent: 857 + pos: 43.5,13.5 rot: -1.5707963267948966 rad type: Transform - anchored: False type: Collidable -- uid: 3287 - type: Bed + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 2499 + type: solid_wall components: - - parent: 15 - pos: 18.5,-20.5 + - parent: 857 + pos: -17.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3288 - type: BedsheetMedical +- uid: 2500 + type: solid_wall components: - - parent: 15 - pos: 18.5,-20.5 + - parent: 857 + pos: -17.5,-5.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3289 - type: drill +- uid: 2501 + type: solid_wall components: - - parent: 15 - pos: 19.515043,-22.566078 + - parent: 857 + pos: -17.5,-3.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3290 - type: SignSurgery +- uid: 2502 + type: solid_wall components: - - parent: 15 - pos: 18.296293,-18.5 + - parent: 857 + pos: -18.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3291 - type: ToyMouse +- uid: 2503 + type: solid_wall components: - - parent: 15 - pos: 31.376545,-7.1625524 + - parent: 857 + pos: -19.5,-3.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3292 - type: retractor +- uid: 2504 + type: solid_wall components: - - parent: 15 - pos: 19.482815,-21.853302 + - parent: 857 + pos: -20.5,-3.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3293 - type: DisgustingSweptSoup +- uid: 2505 + type: solid_wall components: - - parent: 15 - pos: -14.96041,24.545767 + - parent: 857 + pos: -21.5,-3.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3294 - type: DrinkBottleRum +- uid: 2506 + type: solid_wall components: - - parent: 15 - pos: -15.694785,24.608267 + - parent: 857 + pos: -21.5,-2.5 rot: -1.5707963267948966 rad type: Transform - - caps: PourIn, PourOut, Injectable - type: Solution - - anchored: False - type: Collidable -- uid: 3295 - type: scalpel +- uid: 2507 + type: reinforced_wall components: - - parent: 15 - pos: 19.190952,-21.29313 + - parent: 857 + pos: 11.5,22.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3296 - type: ToyPhazon +- uid: 2508 + type: reinforced_wall components: - - parent: 15 - pos: 9.449931,16.636608 + - parent: 857 + pos: 14.5,23.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3297 - type: FoodMint +- uid: 2509 + type: reinforced_wall components: - - parent: 15 - pos: -2.776661,-3.3271997 + - parent: 857 + pos: 13.5,22.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3298 - type: GlovesLatex +- uid: 2510 + type: reinforced_wall components: - - parent: 15 - pos: 21.618128,-4.4133806 + - parent: 857 + pos: 14.5,22.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3299 - type: GlovesLatex +- uid: 2511 + type: reinforced_wall components: - - parent: 15 - pos: 22.086878,-4.4133806 + - parent: 857 + pos: 14.5,24.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3300 - type: JawsOfLife +- uid: 2512 + type: reinforced_wall components: - - parent: 15 - pos: 39.53893,-0.77325034 + - parent: 857 + pos: 14.5,25.5 rot: -1.5707963267948966 rad type: Transform - - useSound: /Audio/Items/jaws_pry.ogg - type: Tool - - anchored: False - type: Collidable -- uid: 3301 - type: ShoesCoder +- uid: 2513 + type: reinforced_wall components: - - parent: 15 - pos: 47.437466,-6.6893435 + - parent: 857 + pos: -14.5,15.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3302 - type: bone_saw +- uid: 2514 + type: reinforced_wall components: - - parent: 15 - pos: 19.49593,-21.552101 + - parent: 857 + pos: -14.5,16.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3303 - type: Table +- uid: 2515 + type: reinforced_wall components: - - parent: 15 - pos: -19.5,-9.5 + - parent: 857 + pos: -16.5,15.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3304 - type: Poweredlight +- uid: 2516 + type: SalternApc components: - - parent: 15 - pos: -18.5,-7 + - parent: 857 + pos: 9.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2517 + type: SalternApc + components: + - parent: 857 + pos: -2.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2518 + type: SalternApc + components: + - parent: 857 + pos: 9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2519 + type: SalternApc + components: + - parent: 857 + pos: 24.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2520 + type: SalternApc + components: + - parent: 857 + pos: 28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2521 + type: SalternApc + components: + - parent: 857 + pos: 47.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2522 + type: SalternApc + components: + - parent: 857 + pos: 31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2523 + type: SalternApc + components: + - parent: 857 + pos: 43.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2524 + type: SalternApc + components: + - parent: 857 + pos: 12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2525 + type: SalternApc + components: + - parent: 857 + pos: 7.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2526 + type: SalternApc + components: + - parent: 857 + pos: 22.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2527 + type: SalternApc + components: + - parent: 857 + pos: 16.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2528 + type: PoweredSmallLight + components: + - parent: 857 + pos: -15.498537,16.019438 rot: -1.5707963267948966 rad type: Transform - containers: light_bulb: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 3305 - type: FoodBanana +- uid: 2529 + type: SalternApc components: - - parent: 15 - pos: -19.728624,-9.576498 + - parent: 857 + pos: -3.5,15.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3306 - type: FoodBanana + - drawRate: 2000 + type: PowerConsumer +- uid: 2530 + type: SalternApc components: - - parent: 15 - pos: -19.603624,-9.388998 + - parent: 857 + pos: -28.5,12.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3307 - type: FoodBanana + - drawRate: 2000 + type: PowerConsumer +- uid: 2531 + type: SalternApc components: - - parent: 15 - pos: -19.463,-9.482748 + - parent: 857 + pos: -39.5,11.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3308 - type: FoodBananaCreamPie + - drawRate: 2000 + type: PowerConsumer +- uid: 2532 + type: SalternApc components: - - parent: 15 - pos: -18.947374,-9.467123 + - parent: 857 + pos: -11.5,2.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3309 - type: FoodBananaCreamPie + - drawRate: 2000 + type: PowerConsumer +- uid: 2533 + type: SalternApc components: - - parent: 15 - pos: -18.509874,-9.279623 + - parent: 857 + pos: -5.5,-8.5 rot: -1.5707963267948966 rad type: Transform - - anchored: False - type: Collidable -- uid: 3310 - type: SuspicionShotgunMagazineSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2534 + type: SalternApc components: - - parent: 15 - pos: -6.5,-3.5 + - parent: 857 + pos: -20.5,-12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3311 - type: SuspicionShotgunMagazineSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2535 + type: ApcExtensionCable components: - - parent: 15 - pos: -7.5,-3.5 + - parent: 857 + pos: -14.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3312 - type: SuspicionShotgunSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2536 + type: SalternApc components: - - parent: 15 - pos: -7.5,-6.5 + - parent: 857 + pos: -30.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3313 - type: SuspicionSniperSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2537 + type: SalternApc components: - - parent: 15 - pos: -8.5,-12.5 + - parent: 857 + pos: -1.5,-18.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3314 - type: SuspicionRifleMagazineSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2538 + type: SalternApc components: - - parent: 15 - pos: -13.5,-6.5 + - parent: 857 + pos: -9.75476,-21.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3315 - type: SuspicionGrenadesSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2539 + type: SalternApc components: - - parent: 15 - pos: 15.5,-0.5 + - parent: 857 + pos: -14.5,-16.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3316 - type: SuspicionGrenadesSpawner + - drawRate: 2000 + type: PowerConsumer +- uid: 2540 + type: ApcExtensionCable components: - - parent: 15 - pos: 18.5,1.5 + - parent: 857 + pos: -28.5,12.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3317 - type: SuspicionHitscanSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2541 + type: ApcExtensionCable components: - - parent: 15 - pos: 25.5,0.5 + - parent: 857 + pos: -28.5,11.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3318 - type: SuspicionGrenadesSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2542 + type: ApcExtensionCable components: - - parent: 15 - pos: 0.5,-15.5 + - parent: 857 + pos: -28.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3319 - type: SuspicionGrenadesSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2543 + type: ApcExtensionCable components: - - parent: 15 - pos: -8.5,-17.5 + - parent: 857 + pos: -28.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3320 - type: SuspicionMagnumMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2544 + type: ApcExtensionCable components: - - parent: 15 - pos: 14.5,-2.5 + - parent: 857 + pos: -28.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3321 - type: SuspicionRevolverSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2545 + type: ApcExtensionCable components: - - parent: 15 - pos: 15.5,-3.5 + - parent: 857 + pos: -27.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3322 - type: SuspicionMagnumMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2546 + type: ApcExtensionCable components: - - parent: 15 - pos: 16.5,7.5 + - parent: 857 + pos: -26.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3323 - type: SuspicionSMGSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2547 + type: ApcExtensionCable components: - - parent: 15 - pos: -7.5,8.5 + - parent: 857 + pos: -25.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3324 - type: SuspicionRifleMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2548 + type: ApcExtensionCable components: - - parent: 15 - pos: -7.5,7.5 + - parent: 857 + pos: -26.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3325 - type: SuspicionShotgunSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2549 + type: ApcExtensionCable components: - - parent: 15 - pos: -29.5,-5.5 + - parent: 857 + pos: -26.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3326 - type: SuspicionShotgunMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2550 + type: ApcExtensionCable components: - - parent: 15 - pos: -30.5,-4.5 + - parent: 857 + pos: -24.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3327 - type: SuspicionShotgunMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2551 + type: ApcExtensionCable components: - - parent: 15 - pos: -29.5,-4.5 + - parent: 857 + pos: -23.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3328 - type: SuspicionPistolMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2552 + type: ApcExtensionCable components: - - parent: 15 - pos: -3.5,0.5 + - parent: 857 + pos: -22.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3329 - type: SuspicionPistolMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2553 + type: ApcExtensionCable components: - - parent: 15 - pos: -10.5,1.5 + - parent: 857 + pos: -21.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3330 - type: SuspicionPistolMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2554 + type: ApcExtensionCable components: - - parent: 15 - pos: -9.5,6.5 + - parent: 857 + pos: -20.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3331 - type: SuspicionPistolMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2555 + type: ApcExtensionCable components: - - parent: 15 - pos: -29.5,9.5 + - parent: 857 + pos: -19.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3332 - type: SuspicionPistolMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2556 + type: ApcExtensionCable components: - - parent: 15 - pos: -31.5,13.5 + - parent: 857 + pos: -23.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3333 - type: SuspicionPistolSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2557 + type: ApcExtensionCable components: - - parent: 15 - pos: -5.5,24.5 + - parent: 857 + pos: -23.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3334 - type: SuspicionPistolSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2558 + type: ApcExtensionCable components: - - parent: 15 - pos: -10.5,-0.5 + - parent: 857 + pos: -23.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3335 - type: SuspicionHitscanSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2559 + type: ApcExtensionCable components: - - parent: 15 - pos: -14.5,18.5 + - parent: 857 + pos: -23.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3336 - type: SuspicionRevolverSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2560 + type: ApcExtensionCable components: - - parent: 15 - pos: -14.5,19.5 + - parent: 857 + pos: -28.5,13.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3337 - type: SuspicionPistolSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2561 + type: ApcExtensionCable components: - - parent: 15 - pos: -13.5,18.5 + - parent: 857 + pos: -28.5,14.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3338 - type: SuspicionRifleSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2562 + type: ApcExtensionCable components: - - parent: 15 - pos: -13.5,19.5 + - parent: 857 + pos: -17.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3339 - type: SuspicionSMGSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2563 + type: ApcExtensionCable components: - - parent: 15 - pos: -13.5,20.5 + - parent: 857 + pos: -16.5,9.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3340 - type: SuspicionShotgunSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2564 + type: ApcExtensionCable components: - - parent: 15 - pos: -12.5,20.5 + - parent: 857 + pos: -16.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3341 - type: SuspicionSniperSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2565 + type: ApcExtensionCable components: - - parent: 15 - pos: -12.5,19.5 + - parent: 857 + pos: -16.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3342 - type: SuspicionLaunchersSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2566 + type: SalternApc components: - - parent: 15 + - parent: 857 + pos: -16.302551,15.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2567 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2568 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2569 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2570 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2571 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2572 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2573 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2574 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2575 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2576 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2577 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2578 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2579 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2580 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2581 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2582 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2583 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2584 + type: ApcExtensionCable + components: + - parent: 857 + pos: -10.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2585 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2586 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2587 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2588 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2589 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2590 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2591 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2592 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2593 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2594 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2595 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2596 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2597 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2598 + type: ApcExtensionCable + components: + - parent: 857 + pos: -10.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2599 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2600 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2601 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2602 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2603 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2604 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2605 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2606 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2607 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2608 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2609 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2610 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2611 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2612 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2613 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2614 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2615 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2616 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2617 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2618 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2619 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2620 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2621 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2622 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2623 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2624 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2625 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2626 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2627 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2628 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2629 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2630 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2631 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2632 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2633 + type: ApcExtensionCable + components: + - parent: 857 + pos: -10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2634 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2635 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2636 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2637 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2638 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2639 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2640 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2641 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2642 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2643 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2644 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2645 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2646 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2647 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2648 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2649 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2650 + type: ApcExtensionCable + components: + - parent: 857 pos: -12.5,18.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3343 - type: SuspicionGrenadesSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2651 + type: ApcExtensionCable components: - - parent: 15 - pos: -11.5,20.5 + - parent: 857 + pos: -12.5,19.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3344 - type: SuspicionGrenadesSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2652 + type: ApcExtensionCable components: - - parent: 15 - pos: -11.5,19.5 + - parent: 857 + pos: -12.5,20.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3345 - type: SuspicionGrenadesSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2653 + type: ApcExtensionCable components: - - parent: 15 - pos: -11.5,18.5 + - parent: 857 + pos: -13.5,20.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3346 - type: SuspicionShotgunMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2654 + type: ApcExtensionCable components: - - parent: 15 - pos: -35.5,-7.5 + - parent: 857 + pos: -14.5,20.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3347 - type: SuspicionShotgunMagazineSpawner + - deadThreshold: 100 + type: Destructible +- uid: 2655 + type: ApcExtensionCable components: - - parent: 15 + - parent: 857 + pos: -3.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2656 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2657 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2658 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2659 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2660 + type: ApcExtensionCable + components: + - parent: 857 + pos: 1.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2661 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2662 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2663 + type: ApcExtensionCable + components: + - parent: 857 + pos: -39.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2664 + type: ApcExtensionCable + components: + - parent: 857 + pos: -39.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2665 + type: ApcExtensionCable + components: + - parent: 857 + pos: -38.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2666 + type: ApcExtensionCable + components: + - parent: 857 + pos: -37.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2667 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2668 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2669 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2670 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2671 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2672 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2673 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2674 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2675 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2676 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2677 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2678 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2679 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2680 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2681 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2682 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2683 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2684 + type: ApcExtensionCable + components: + - parent: 857 + pos: -36.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2685 + type: ApcExtensionCable + components: + - parent: 857 pos: -35.5,-6.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2686 + type: ApcExtensionCable + components: + - parent: 857 + pos: -35.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2687 + type: ApcExtensionCable + components: + - parent: 857 + pos: -35.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2688 + type: ApcExtensionCable + components: + - parent: 857 + pos: -34.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2689 + type: ApcExtensionCable + components: + - parent: 857 + pos: -33.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2690 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2691 + type: ApcExtensionCable + components: + - parent: 857 + pos: -35.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2692 + type: ApcExtensionCable + components: + - parent: 857 + pos: -34.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2693 + type: ApcExtensionCable + components: + - parent: 857 + pos: -37.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2694 + type: ApcExtensionCable + components: + - parent: 857 + pos: -38.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2695 + type: ApcExtensionCable + components: + - parent: 857 + pos: -39.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2696 + type: ApcExtensionCable + components: + - parent: 857 + pos: -40.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2697 + type: ApcExtensionCable + components: + - parent: 857 + pos: -37.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2698 + type: ApcExtensionCable + components: + - parent: 857 + pos: -38.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2699 + type: ApcExtensionCable + components: + - parent: 857 + pos: -39.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2700 + type: ApcExtensionCable + components: + - parent: 857 + pos: -40.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2701 + type: ApcExtensionCable + components: + - parent: 857 + pos: -37.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2702 + type: ApcExtensionCable + components: + - parent: 857 + pos: -38.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2703 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2704 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2705 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2706 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2707 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2708 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2709 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2710 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2711 + type: ApcExtensionCable + components: + - parent: 857 + pos: -29.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2712 + type: ApcExtensionCable + components: + - parent: 857 + pos: -28.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2713 + type: ApcExtensionCable + components: + - parent: 857 + pos: -27.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2714 + type: ApcExtensionCable + components: + - parent: 857 + pos: -26.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2715 + type: ApcExtensionCable + components: + - parent: 857 + pos: -25.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2716 + type: ApcExtensionCable + components: + - parent: 857 + pos: -25.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2717 + type: ApcExtensionCable + components: + - parent: 857 + pos: -24.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2718 + type: ApcExtensionCable + components: + - parent: 857 + pos: -23.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2719 + type: ApcExtensionCable + components: + - parent: 857 + pos: -23.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2720 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2721 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2722 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2723 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2724 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2725 + type: ApcExtensionCable + components: + - parent: 857 + pos: -30.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2726 + type: ApcExtensionCable + components: + - parent: 857 + pos: -29.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2727 + type: ApcExtensionCable + components: + - parent: 857 + pos: -28.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2728 + type: ApcExtensionCable + components: + - parent: 857 + pos: -27.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2729 + type: ApcExtensionCable + components: + - parent: 857 + pos: -27.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2730 + type: ApcExtensionCable + components: + - parent: 857 + pos: -27.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2731 + type: solid_wall + components: + - parent: 857 + pos: -31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 2732 + type: ApcExtensionCable + components: + - parent: 857 + pos: -31.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2733 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2734 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2735 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2736 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2737 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2738 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2739 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2740 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2741 + type: ApcExtensionCable + components: + - parent: 857 + pos: -32.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2742 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2743 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2744 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2745 + type: ApcExtensionCable + components: + - parent: 857 + pos: -21.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2746 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2747 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2748 + type: ApcExtensionCable + components: + - parent: 857 + pos: -23.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2749 + type: ApcExtensionCable + components: + - parent: 857 + pos: -24.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2750 + type: ApcExtensionCable + components: + - parent: 857 + pos: -24.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2751 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2752 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2753 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2754 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2755 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2756 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2757 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2758 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2759 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2760 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2761 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2762 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2763 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2764 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2765 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2766 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2767 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2768 + type: ApcExtensionCable + components: + - parent: 857 + pos: -19.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2769 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2770 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2771 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2772 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2773 + type: ApcExtensionCable + components: + - parent: 857 + pos: -19.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2774 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2775 + type: ApcExtensionCable + components: + - parent: 857 + pos: -21.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2776 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2777 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2778 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2779 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2780 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2781 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2782 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2783 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2784 + type: ApcExtensionCable + components: + - parent: 857 + pos: -22.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2785 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2786 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2787 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2788 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2789 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2790 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2791 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2792 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2793 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2794 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2795 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2796 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2797 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2798 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2799 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2800 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2801 + type: SalternApc + components: + - parent: 857 + pos: -14.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 2802 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2803 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2804 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2805 + type: ApcExtensionCable + components: + - parent: 857 + pos: -18.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2806 + type: ApcExtensionCable + components: + - parent: 857 + pos: -19.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2807 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2808 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2809 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2810 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2811 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2812 + type: ApcExtensionCable + components: + - parent: 857 + pos: -12.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2813 + type: ApcExtensionCable + components: + - parent: 857 + pos: -13.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2814 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2815 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2816 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2817 + type: ApcExtensionCable + components: + - parent: 857 + pos: -20.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2818 + type: ApcExtensionCable + components: + - parent: 857 + pos: -10.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2819 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2820 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2821 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2822 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2823 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2824 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2825 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2826 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2827 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2828 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2829 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2830 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2831 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2832 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2833 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2834 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2835 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2836 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2837 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2838 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2839 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2840 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2841 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2842 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2843 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2844 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2845 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2846 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2847 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2848 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2849 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2850 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2851 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2852 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2853 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2854 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2855 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2856 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2857 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2858 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2859 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2860 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2861 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2862 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2863 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2864 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2865 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2866 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2867 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2868 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2869 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2870 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2871 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2872 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2873 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2874 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2875 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2876 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2877 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2878 + type: ApcExtensionCable + components: + - parent: 857 + pos: -7.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2879 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2880 + type: ApcExtensionCable + components: + - parent: 857 + pos: -10.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2881 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2882 + type: ApcExtensionCable + components: + - parent: 857 + pos: -11.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2883 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2884 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2885 + type: ApcExtensionCable + components: + - parent: 857 + pos: -9.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2886 + type: ApcExtensionCable + components: + - parent: 857 + pos: -8.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2887 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2888 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2889 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2890 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2891 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2892 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2893 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2894 + type: ApcExtensionCable + components: + - parent: 857 + pos: -3.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2895 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2896 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2897 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2898 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2899 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2900 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2901 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2902 + type: ApcExtensionCable + components: + - parent: 857 + pos: -4.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2903 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2904 + type: ApcExtensionCable + components: + - parent: 857 + pos: -6.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2905 + type: ApcExtensionCable + components: + - parent: 857 + pos: -5.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2906 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2907 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2908 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2909 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2910 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2911 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2912 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2913 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2914 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2915 + type: ApcExtensionCable + components: + - parent: 857 + pos: -14.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2916 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2917 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2918 + type: ApcExtensionCable + components: + - parent: 857 + pos: -15.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2919 + type: ApcExtensionCable + components: + - parent: 857 + pos: -16.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2920 + type: ApcExtensionCable + components: + - parent: 857 + pos: -17.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2921 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2922 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2923 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2924 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2925 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2926 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2927 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2928 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2929 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2930 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2931 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2932 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2933 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2934 + type: ApcExtensionCable + components: + - parent: 857 + pos: 14.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2935 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2936 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2937 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2938 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2939 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2940 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2941 + type: ApcExtensionCable + components: + - parent: 857 + pos: 5.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2942 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2943 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2944 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2945 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2946 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2947 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2948 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2949 + type: ApcExtensionCable + components: + - parent: 857 + pos: 24.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2950 + type: ApcExtensionCable + components: + - parent: 857 + pos: 25.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2951 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2952 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2953 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2954 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2955 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2956 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2957 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2958 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2959 + type: ApcExtensionCable + components: + - parent: 857 + pos: 24.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2960 + type: ApcExtensionCable + components: + - parent: 857 + pos: 25.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2961 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2962 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2963 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2964 + type: ApcExtensionCable + components: + - parent: 857 + pos: 19.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2965 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2966 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2967 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2968 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2969 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2970 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2971 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2972 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2973 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2974 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2975 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2976 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2977 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2978 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2979 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2980 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2981 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2982 + type: ApcExtensionCable + components: + - parent: 857 + pos: 19.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2983 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2984 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2985 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2986 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2987 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2988 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2989 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2990 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2991 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2992 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2993 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2994 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2995 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2996 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2997 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2998 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 2999 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3000 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3001 + type: ApcExtensionCable + components: + - parent: 857 + pos: 14.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3002 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3003 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3004 + type: ApcExtensionCable + components: + - parent: 857 + pos: 17.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3005 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3006 + type: ApcExtensionCable + components: + - parent: 857 + pos: 17.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3007 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3008 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3009 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3010 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3011 + type: ApcExtensionCable + components: + - parent: 857 + pos: 17.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3012 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3013 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3014 + type: ApcExtensionCable + components: + - parent: 857 + pos: 14.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3015 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3016 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3017 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3018 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3019 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3020 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3021 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3022 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3023 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3024 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3025 + type: ApcExtensionCable + components: + - parent: 857 + pos: 17.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3026 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3027 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3028 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3029 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3030 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3031 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3032 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3033 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3034 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3035 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3036 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3037 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3038 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3039 + type: ApcExtensionCable + components: + - parent: 857 + pos: 1.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3040 + type: ApcExtensionCable + components: + - parent: 857 + pos: 2.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3041 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3042 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3043 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3044 + type: ApcExtensionCable + components: + - parent: 857 + pos: 2.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3045 + type: ApcExtensionCable + components: + - parent: 857 + pos: 4.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3046 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3047 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3048 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3049 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3050 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3051 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3052 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3053 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3054 + type: ApcExtensionCable + components: + - parent: 857 + pos: 29.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3055 + type: ApcExtensionCable + components: + - parent: 857 + pos: 32.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3056 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3057 + type: ApcExtensionCable + components: + - parent: 857 + pos: 34.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3058 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3059 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3060 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3061 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3062 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3063 + type: ApcExtensionCable + components: + - parent: 857 + pos: 32.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3064 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3065 + type: ApcExtensionCable + components: + - parent: 857 + pos: 34.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3066 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3067 + type: ApcExtensionCable + components: + - parent: 857 + pos: 36.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3068 + type: ApcExtensionCable + components: + - parent: 857 + pos: 37.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3069 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3070 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3071 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3072 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3073 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3074 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3075 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3076 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3077 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3078 + type: ApcExtensionCable + components: + - parent: 857 + pos: 42.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3079 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3080 + type: ApcExtensionCable + components: + - parent: 857 + pos: 39.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3081 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3082 + type: ApcExtensionCable + components: + - parent: 857 + pos: 40.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3083 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3084 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3085 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3086 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3087 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3088 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3089 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3090 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3091 + type: ApcExtensionCable + components: + - parent: 857 + pos: 44.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3092 + type: ApcExtensionCable + components: + - parent: 857 + pos: 45.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3093 + type: ApcExtensionCable + components: + - parent: 857 + pos: 46.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3094 + type: ApcExtensionCable + components: + - parent: 857 + pos: 47.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3095 + type: ApcExtensionCable + components: + - parent: 857 + pos: 48.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3096 + type: ApcExtensionCable + components: + - parent: 857 + pos: 49.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3097 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3098 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3099 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3100 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3101 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3102 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3103 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3104 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3105 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3106 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3107 + type: ApcExtensionCable + components: + - parent: 857 + pos: 43.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3108 + type: ApcExtensionCable + components: + - parent: 857 + pos: 42.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3109 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3110 + type: ApcExtensionCable + components: + - parent: 857 + pos: 40.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3111 + type: ApcExtensionCable + components: + - parent: 857 + pos: 39.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3112 + type: ApcExtensionCable + components: + - parent: 857 + pos: 38.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3113 + type: ApcExtensionCable + components: + - parent: 857 + pos: 37.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3114 + type: ApcExtensionCable + components: + - parent: 857 + pos: 37.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3115 + type: ApcExtensionCable + components: + - parent: 857 + pos: 37.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3116 + type: ApcExtensionCable + components: + - parent: 857 + pos: 37.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3117 + type: ApcExtensionCable + components: + - parent: 857 + pos: 36.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3118 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3119 + type: ApcExtensionCable + components: + - parent: 857 + pos: 34.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3120 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3121 + type: ApcExtensionCable + components: + - parent: 857 + pos: 32.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3122 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3123 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3124 + type: ApcExtensionCable + components: + - parent: 857 + pos: 29.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3125 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3126 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3127 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3128 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3129 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3130 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3131 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3132 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3133 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3134 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3135 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3136 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3137 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3138 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3139 + type: ApcExtensionCable + components: + - parent: 857 + pos: 26.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3140 + type: ApcExtensionCable + components: + - parent: 857 + pos: 25.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3141 + type: ApcExtensionCable + components: + - parent: 857 + pos: 24.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3142 + type: ApcExtensionCable + components: + - parent: 857 + pos: 47.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3143 + type: ApcExtensionCable + components: + - parent: 857 + pos: 47.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3144 + type: ApcExtensionCable + components: + - parent: 857 + pos: 47.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3145 + type: ApcExtensionCable + components: + - parent: 857 + pos: 48.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3146 + type: ApcExtensionCable + components: + - parent: 857 + pos: 49.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3147 + type: ApcExtensionCable + components: + - parent: 857 + pos: 50.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3148 + type: ApcExtensionCable + components: + - parent: 857 + pos: 51.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3149 + type: ApcExtensionCable + components: + - parent: 857 + pos: 51.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3150 + type: ApcExtensionCable + components: + - parent: 857 + pos: 51.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3151 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3152 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3153 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3154 + type: ApcExtensionCable + components: + - parent: 857 + pos: 41.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3155 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3156 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3157 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3158 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3159 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3160 + type: ApcExtensionCable + components: + - parent: 857 + pos: 29.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3161 + type: ApcExtensionCable + components: + - parent: 857 + pos: 28.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3162 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3163 + type: ApcExtensionCable + components: + - parent: 857 + pos: 26.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3164 + type: ApcExtensionCable + components: + - parent: 857 + pos: 25.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3165 + type: ApcExtensionCable + components: + - parent: 857 + pos: 26.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3166 + type: ApcExtensionCable + components: + - parent: 857 + pos: 26.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3167 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3168 + type: ApcExtensionCable + components: + - parent: 857 + pos: 27.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3169 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3170 + type: ApcExtensionCable + components: + - parent: 857 + pos: 31.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3171 + type: ApcExtensionCable + components: + - parent: 857 + pos: 32.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3172 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3173 + type: ApcExtensionCable + components: + - parent: 857 + pos: 34.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3174 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3175 + type: ApcExtensionCable + components: + - parent: 857 + pos: 36.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3176 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3177 + type: ApcExtensionCable + components: + - parent: 857 + pos: 33.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3178 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3179 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3180 + type: ApcExtensionCable + components: + - parent: 857 + pos: 35.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3181 + type: ApcExtensionCable + components: + - parent: 857 + pos: 36.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3182 + type: ApcExtensionCable + components: + - parent: 857 + pos: 36.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3183 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3184 + type: ApcExtensionCable + components: + - parent: 857 + pos: 30.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3185 + type: ApcExtensionCable + components: + - parent: 857 + pos: 24.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3186 + type: ApcExtensionCable + components: + - parent: 857 + pos: 24.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3187 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3188 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3189 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3190 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3191 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3192 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3193 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3194 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3195 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3196 + type: ApcExtensionCable + components: + - parent: 857 + pos: 19.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3197 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3198 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3199 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3200 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3201 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3202 + type: ApcExtensionCable + components: + - parent: 857 + pos: 21.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3203 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3204 + type: ApcExtensionCable + components: + - parent: 857 + pos: 23.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3205 + type: ApcExtensionCable + components: + - parent: 857 + pos: 20.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3206 + type: ApcExtensionCable + components: + - parent: 857 + pos: 19.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3207 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3208 + type: ApcExtensionCable + components: + - parent: 857 + pos: 17.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3209 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3210 + type: ApcExtensionCable + components: + - parent: 857 + pos: 18.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3211 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3212 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3213 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3214 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3215 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3216 + type: ApcExtensionCable + components: + - parent: 857 + pos: 14.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3217 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3218 + type: ApcExtensionCable + components: + - parent: 857 + pos: 16.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3219 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3220 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3221 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3222 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3223 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3224 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3225 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3226 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3227 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3228 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3229 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3230 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3231 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3232 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3233 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3234 + type: ApcExtensionCable + components: + - parent: 857 + pos: 11.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3235 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3236 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3237 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3238 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3239 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3240 + type: ApcExtensionCable + components: + - parent: 857 + pos: 12.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3241 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3242 + type: ApcExtensionCable + components: + - parent: 857 + pos: 14.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3243 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3244 + type: ApcExtensionCable + components: + - parent: 857 + pos: 15.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3245 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3246 + type: ApcExtensionCable + components: + - parent: 857 + pos: 13.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3247 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3248 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3249 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3250 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3251 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3252 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3253 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3254 + type: ApcExtensionCable + components: + - parent: 857 + pos: 10.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3255 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3256 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3257 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3258 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3259 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3260 + type: ApcExtensionCable + components: + - parent: 857 + pos: 5.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3261 + type: ApcExtensionCable + components: + - parent: 857 + pos: 5.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3262 + type: ApcExtensionCable + components: + - parent: 857 + pos: 4.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3263 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3264 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3265 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3266 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3267 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3268 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3269 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3270 + type: ApcExtensionCable + components: + - parent: 857 + pos: 2.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3271 + type: ApcExtensionCable + components: + - parent: 857 + pos: 1.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3272 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3273 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3274 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3275 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3276 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3277 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3278 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3279 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3280 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,29.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3281 + type: ApcExtensionCable + components: + - parent: 857 + pos: 9.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3282 + type: ApcExtensionCable + components: + - parent: 857 + pos: 8.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3283 + type: ApcExtensionCable + components: + - parent: 857 + pos: 7.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3284 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3285 + type: ApcExtensionCable + components: + - parent: 857 + pos: 6.5,31.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3286 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3287 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3288 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,29.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3289 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3290 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3291 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3292 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3293 + type: ApcExtensionCable + components: + - parent: 857 + pos: 1.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3294 + type: ApcExtensionCable + components: + - parent: 857 + pos: 2.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3295 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,30.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3296 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,31.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3297 + type: ApcExtensionCable + components: + - parent: 857 + pos: 3.5,31.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3298 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3299 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3300 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3301 + type: ApcExtensionCable + components: + - parent: 857 + pos: -0.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3302 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3303 + type: ApcExtensionCable + components: + - parent: 857 + pos: 0.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3304 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3305 + type: ApcExtensionCable + components: + - parent: 857 + pos: -2.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3306 + type: ApcExtensionCable + components: + - parent: 857 + pos: -1.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3307 + type: SalternSmes + components: + - parent: 857 + pos: 42.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - supplyRate: 14000 + type: PowerSupplier +- uid: 3308 + type: SalternSmes + components: + - parent: 857 + pos: 40.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - supplyRate: 14000 + type: PowerSupplier +- uid: 3309 + type: HVWire + components: + - parent: 857 + pos: 41.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3310 + type: HVWire + components: + - parent: 857 + pos: 41.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3311 + type: HVWire + components: + - parent: 857 + pos: 42.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3312 + type: HVWire + components: + - parent: 857 + pos: 42.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3313 + type: HVWire + components: + - parent: 857 + pos: 42.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3314 + type: HVWire + components: + - parent: 857 + pos: 42.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3315 + type: HVWire + components: + - parent: 857 + pos: 42.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3316 + type: HVWire + components: + - parent: 857 + pos: 42.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3317 + type: HVWire + components: + - parent: 857 + pos: 42.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3318 + type: HVWire + components: + - parent: 857 + pos: 42.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3319 + type: HVWire + components: + - parent: 857 + pos: 42.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3320 + type: HVWire + components: + - parent: 857 + pos: 42.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3321 + type: HVWire + components: + - parent: 857 + pos: 42.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3322 + type: HVWire + components: + - parent: 857 + pos: 41.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3323 + type: HVWire + components: + - parent: 857 + pos: 40.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3324 + type: HVWire + components: + - parent: 857 + pos: 39.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3325 + type: HVWire + components: + - parent: 857 + pos: 38.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3326 + type: HVWire + components: + - parent: 857 + pos: 38.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3327 + type: HVWire + components: + - parent: 857 + pos: 38.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3328 + type: HVWire + components: + - parent: 857 + pos: 38.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3329 + type: HVWire + components: + - parent: 857 + pos: 37.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3330 + type: HVWire + components: + - parent: 857 + pos: 36.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3331 + type: HVWire + components: + - parent: 857 + pos: 35.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3332 + type: HVWire + components: + - parent: 857 + pos: 34.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3333 + type: HVWire + components: + - parent: 857 + pos: 33.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3334 + type: HVWire + components: + - parent: 857 + pos: 32.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3335 + type: HVWire + components: + - parent: 857 + pos: 31.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3336 + type: HVWire + components: + - parent: 857 + pos: 30.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3337 + type: HVWire + components: + - parent: 857 + pos: 29.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3338 + type: HVWire + components: + - parent: 857 + pos: 28.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3339 + type: HVWire + components: + - parent: 857 + pos: 27.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3340 + type: HVWire + components: + - parent: 857 + pos: 26.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3341 + type: HVWire + components: + - parent: 857 + pos: 26.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3342 + type: HVWire + components: + - parent: 857 + pos: 26.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3343 + type: HVWire + components: + - parent: 857 + pos: 26.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3344 + type: HVWire + components: + - parent: 857 + pos: 26.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3345 + type: HVWire + components: + - parent: 857 + pos: 26.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3346 + type: HVWire + components: + - parent: 857 + pos: 26.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3347 + type: HVWire + components: + - parent: 857 + pos: 26.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible - uid: 3348 - type: SuspicionRifleMagazineSpawner + type: HVWire components: - - parent: 15 - pos: -35.5,-4.5 + - parent: 857 + pos: 26.5,-15.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 3349 - type: SuspicionRifleMagazineSpawner + type: HVWire components: - - parent: 15 - pos: -35.5,-3.5 + - parent: 857 + pos: 26.5,-16.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 3350 - type: SuspicionPistolMagazineSpawner + type: HVWire components: - - parent: 15 - pos: -35.5,-0.5 + - parent: 857 + pos: 26.5,-17.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 3351 - type: SuspicionShotgunMagazineSpawner + type: HVWire components: - - parent: 15 - pos: -23.5,-13.5 + - parent: 857 + pos: 25.5,-9.5 rot: -1.5707963267948966 rad type: Transform + - deadThreshold: 100 + type: Destructible - uid: 3352 - type: SuspicionShotgunSpawner + type: HVWire components: - - parent: 15 + - parent: 857 + pos: 24.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3353 + type: HVWire + components: + - parent: 857 + pos: 23.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3354 + type: HVWire + components: + - parent: 857 + pos: 22.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3355 + type: HVWire + components: + - parent: 857 + pos: 21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3356 + type: HVWire + components: + - parent: 857 + pos: 25.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3357 + type: HVWire + components: + - parent: 857 + pos: 24.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3358 + type: HVWire + components: + - parent: 857 + pos: 23.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3359 + type: HVWire + components: + - parent: 857 + pos: 22.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3360 + type: HVWire + components: + - parent: 857 + pos: 22.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3361 + type: HVWire + components: + - parent: 857 + pos: 22.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3362 + type: HVWire + components: + - parent: 857 + pos: 22.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3363 + type: HVWire + components: + - parent: 857 + pos: 22.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3364 + type: HVWire + components: + - parent: 857 + pos: 22.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3365 + type: HVWire + components: + - parent: 857 + pos: 22.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3366 + type: HVWire + components: + - parent: 857 + pos: 22.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3367 + type: HVWire + components: + - parent: 857 + pos: 22.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3368 + type: HVWire + components: + - parent: 857 + pos: 21.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3369 + type: HVWire + components: + - parent: 857 + pos: 20.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3370 + type: HVWire + components: + - parent: 857 + pos: 19.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3371 + type: HVWire + components: + - parent: 857 + pos: 18.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3372 + type: HVWire + components: + - parent: 857 + pos: 17.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3373 + type: HVWire + components: + - parent: 857 + pos: 16.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3374 + type: HVWire + components: + - parent: 857 + pos: 15.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3375 + type: HVWire + components: + - parent: 857 + pos: 14.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3376 + type: HVWire + components: + - parent: 857 + pos: 14.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3377 + type: HVWire + components: + - parent: 857 + pos: 14.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3378 + type: HVWire + components: + - parent: 857 + pos: 14.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3379 + type: HVWire + components: + - parent: 857 + pos: 14.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3380 + type: HVWire + components: + - parent: 857 + pos: 14.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3381 + type: HVWire + components: + - parent: 857 + pos: 13.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3382 + type: HVWire + components: + - parent: 857 + pos: 12.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3383 + type: HVWire + components: + - parent: 857 + pos: 11.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3384 + type: HVWire + components: + - parent: 857 + pos: 10.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3385 + type: HVWire + components: + - parent: 857 + pos: 9.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3386 + type: HVWire + components: + - parent: 857 + pos: 8.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3387 + type: HVWire + components: + - parent: 857 + pos: 7.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3388 + type: HVWire + components: + - parent: 857 + pos: 6.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3389 + type: HVWire + components: + - parent: 857 + pos: 5.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3390 + type: HVWire + components: + - parent: 857 + pos: 4.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3391 + type: HVWire + components: + - parent: 857 + pos: 3.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3392 + type: HVWire + components: + - parent: 857 + pos: 2.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3393 + type: HVWire + components: + - parent: 857 + pos: 2.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3394 + type: HVWire + components: + - parent: 857 + pos: 2.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3395 + type: HVWire + components: + - parent: 857 + pos: 2.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3396 + type: HVWire + components: + - parent: 857 + pos: 1.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3397 + type: HVWire + components: + - parent: 857 + pos: -0.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3398 + type: HVWire + components: + - parent: 857 + pos: 0.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3399 + type: HVWire + components: + - parent: 857 + pos: -0.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3400 + type: HVWire + components: + - parent: 857 + pos: -0.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3401 + type: HVWire + components: + - parent: 857 + pos: -0.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3402 + type: HVWire + components: + - parent: 857 + pos: -1.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3403 + type: HVWire + components: + - parent: 857 + pos: -2.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3404 + type: HVWire + components: + - parent: 857 + pos: -3.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3405 + type: HVWire + components: + - parent: 857 + pos: -4.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3406 + type: HVWire + components: + - parent: 857 + pos: -5.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3407 + type: HVWire + components: + - parent: 857 + pos: -6.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3408 + type: HVWire + components: + - parent: 857 + pos: -7.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3409 + type: HVWire + components: + - parent: 857 + pos: -8.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3410 + type: HVWire + components: + - parent: 857 + pos: -9.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3411 + type: HVWire + components: + - parent: 857 + pos: -10.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3412 + type: HVWire + components: + - parent: 857 + pos: -11.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3413 + type: HVWire + components: + - parent: 857 + pos: -11.5,-26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3414 + type: HVWire + components: + - parent: 857 + pos: -11.5,-25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3415 + type: HVWire + components: + - parent: 857 + pos: -11.5,-24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3416 + type: HVWire + components: + - parent: 857 + pos: -11.5,-23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3417 + type: HVWire + components: + - parent: 857 + pos: -11.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3418 + type: HVWire + components: + - parent: 857 + pos: -11.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3419 + type: HVWire + components: + - parent: 857 + pos: -11.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3420 + type: HVWire + components: + - parent: 857 + pos: -11.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3421 + type: HVWire + components: + - parent: 857 + pos: -11.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3422 + type: HVWire + components: + - parent: 857 + pos: -11.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3423 + type: HVWire + components: + - parent: 857 + pos: -11.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3424 + type: HVWire + components: + - parent: 857 + pos: -11.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3425 + type: HVWire + components: + - parent: 857 + pos: -11.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3426 + type: HVWire + components: + - parent: 857 + pos: -10.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3427 + type: HVWire + components: + - parent: 857 + pos: -9.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3428 + type: HVWire + components: + - parent: 857 + pos: -9.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3429 + type: HVWire + components: + - parent: 857 + pos: -9.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3430 + type: HVWire + components: + - parent: 857 + pos: -9.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3431 + type: HVWire + components: + - parent: 857 + pos: -9.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3432 + type: HVWire + components: + - parent: 857 + pos: -8.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3433 + type: HVWire + components: + - parent: 857 + pos: -7.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3434 + type: HVWire + components: + - parent: 857 + pos: -6.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3435 + type: HVWire + components: + - parent: 857 + pos: -5.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3436 + type: HVWire + components: + - parent: 857 + pos: -4.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3437 + type: HVWire + components: + - parent: 857 + pos: -3.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3438 + type: HVWire + components: + - parent: 857 + pos: -2.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3439 + type: HVWire + components: + - parent: 857 + pos: -1.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3440 + type: HVWire + components: + - parent: 857 + pos: -0.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3441 + type: HVWire + components: + - parent: 857 + pos: 0.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3442 + type: HVWire + components: + - parent: 857 + pos: 0.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3443 + type: HVWire + components: + - parent: 857 + pos: 0.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3444 + type: HVWire + components: + - parent: 857 + pos: 0.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3445 + type: HVWire + components: + - parent: 857 + pos: 0.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3446 + type: HVWire + components: + - parent: 857 + pos: -12.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3447 + type: HVWire + components: + - parent: 857 + pos: -13.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3448 + type: HVWire + components: + - parent: 857 + pos: -14.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3449 + type: HVWire + components: + - parent: 857 pos: -15.5,-14.5 rot: -1.5707963267948966 rad type: Transform -- uid: 3353 - type: SuspicionHitscanSpawner + - deadThreshold: 100 + type: Destructible +- uid: 3450 + type: HVWire components: - - parent: 15 - pos: -15.5,-11.5 + - parent: 857 + pos: -16.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3451 + type: HVWire + components: + - parent: 857 + pos: -17.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3452 + type: HVWire + components: + - parent: 857 + pos: -18.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3453 + type: HVWire + components: + - parent: 857 + pos: -18.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3454 + type: HVWire + components: + - parent: 857 + pos: -18.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3455 + type: HVWire + components: + - parent: 857 + pos: -18.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3456 + type: HVWire + components: + - parent: 857 + pos: -18.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3457 + type: HVWire + components: + - parent: 857 + pos: -19.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3458 + type: HVWire + components: + - parent: 857 + pos: -20.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3459 + type: HVWire + components: + - parent: 857 + pos: -21.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3460 + type: HVWire + components: + - parent: 857 + pos: -22.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3461 + type: HVWire + components: + - parent: 857 + pos: -23.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3462 + type: HVWire + components: + - parent: 857 + pos: -24.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3463 + type: HVWire + components: + - parent: 857 + pos: -25.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3464 + type: HVWire + components: + - parent: 857 + pos: -26.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3465 + type: HVWire + components: + - parent: 857 + pos: -27.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3466 + type: HVWire + components: + - parent: 857 + pos: -21.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3467 + type: HVWire + components: + - parent: 857 + pos: -28.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3468 + type: HVWire + components: + - parent: 857 + pos: -29.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3469 + type: HVWire + components: + - parent: 857 + pos: -30.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3470 + type: HVWire + components: + - parent: 857 + pos: -31.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3471 + type: HVWire + components: + - parent: 857 + pos: -32.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3472 + type: HVWire + components: + - parent: 857 + pos: -33.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3473 + type: HVWire + components: + - parent: 857 + pos: -33.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3474 + type: HVWire + components: + - parent: 857 + pos: -33.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3475 + type: HVWire + components: + - parent: 857 + pos: -33.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3476 + type: HVWire + components: + - parent: 857 + pos: -33.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3477 + type: HVWire + components: + - parent: 857 + pos: -33.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3478 + type: HVWire + components: + - parent: 857 + pos: -33.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3479 + type: HVWire + components: + - parent: 857 + pos: -33.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3480 + type: HVWire + components: + - parent: 857 + pos: -33.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3481 + type: HVWire + components: + - parent: 857 + pos: -33.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3482 + type: HVWire + components: + - parent: 857 + pos: -33.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3483 + type: HVWire + components: + - parent: 857 + pos: -33.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3484 + type: HVWire + components: + - parent: 857 + pos: -33.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3485 + type: HVWire + components: + - parent: 857 + pos: -32.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3486 + type: HVWire + components: + - parent: 857 + pos: -32.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3487 + type: HVWire + components: + - parent: 857 + pos: -32.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3488 + type: HVWire + components: + - parent: 857 + pos: -32.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3489 + type: HVWire + components: + - parent: 857 + pos: -32.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3490 + type: HVWire + components: + - parent: 857 + pos: -32.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3491 + type: HVWire + components: + - parent: 857 + pos: -32.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3492 + type: HVWire + components: + - parent: 857 + pos: -32.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3493 + type: HVWire + components: + - parent: 857 + pos: -32.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3494 + type: HVWire + components: + - parent: 857 + pos: -32.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3495 + type: HVWire + components: + - parent: 857 + pos: -32.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3496 + type: HVWire + components: + - parent: 857 + pos: -32.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3497 + type: HVWire + components: + - parent: 857 + pos: -32.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3498 + type: HVWire + components: + - parent: 857 + pos: -32.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3499 + type: HVWire + components: + - parent: 857 + pos: -32.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3500 + type: HVWire + components: + - parent: 857 + pos: -32.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3501 + type: HVWire + components: + - parent: 857 + pos: -31.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3502 + type: HVWire + components: + - parent: 857 + pos: -30.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3503 + type: HVWire + components: + - parent: 857 + pos: -29.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3504 + type: HVWire + components: + - parent: 857 + pos: -28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3505 + type: HVWire + components: + - parent: 857 + pos: -27.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3506 + type: HVWire + components: + - parent: 857 + pos: -26.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3507 + type: HVWire + components: + - parent: 857 + pos: -25.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3508 + type: HVWire + components: + - parent: 857 + pos: -24.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3509 + type: HVWire + components: + - parent: 857 + pos: -23.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3510 + type: HVWire + components: + - parent: 857 + pos: -22.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3511 + type: HVWire + components: + - parent: 857 + pos: -21.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3512 + type: HVWire + components: + - parent: 857 + pos: -20.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3513 + type: HVWire + components: + - parent: 857 + pos: -20.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3514 + type: HVWire + components: + - parent: 857 + pos: -19.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3515 + type: HVWire + components: + - parent: 857 + pos: -18.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3516 + type: HVWire + components: + - parent: 857 + pos: -18.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3517 + type: HVWire + components: + - parent: 857 + pos: -17.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3518 + type: HVWire + components: + - parent: 857 + pos: -17.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3519 + type: HVWire + components: + - parent: 857 + pos: -17.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3520 + type: HVWire + components: + - parent: 857 + pos: -18.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3521 + type: HVWire + components: + - parent: 857 + pos: -17.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3522 + type: HVWire + components: + - parent: 857 + pos: -16.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3523 + type: HVWire + components: + - parent: 857 + pos: -15.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3524 + type: HVWire + components: + - parent: 857 + pos: -18.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3525 + type: HVWire + components: + - parent: 857 + pos: -18.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3526 + type: HVWire + components: + - parent: 857 + pos: -18.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3527 + type: HVWire + components: + - parent: 857 + pos: -18.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3528 + type: HVWire + components: + - parent: 857 + pos: -18.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3529 + type: HVWire + components: + - parent: 857 + pos: -18.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3530 + type: HVWire + components: + - parent: 857 + pos: -18.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3531 + type: HVWire + components: + - parent: 857 + pos: -18.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3532 + type: HVWire + components: + - parent: 857 + pos: -18.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3533 + type: HVWire + components: + - parent: 857 + pos: -17.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3534 + type: HVWire + components: + - parent: 857 + pos: -16.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3535 + type: HVWire + components: + - parent: 857 + pos: -15.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3536 + type: HVWire + components: + - parent: 857 + pos: -14.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3537 + type: HVWire + components: + - parent: 857 + pos: -13.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3538 + type: HVWire + components: + - parent: 857 + pos: -12.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3539 + type: HVWire + components: + - parent: 857 + pos: -11.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3540 + type: HVWire + components: + - parent: 857 + pos: -10.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3541 + type: HVWire + components: + - parent: 857 + pos: -9.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3542 + type: HVWire + components: + - parent: 857 + pos: -8.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3543 + type: HVWire + components: + - parent: 857 + pos: -7.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3544 + type: HVWire + components: + - parent: 857 + pos: -7.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3545 + type: HVWire + components: + - parent: 857 + pos: -6.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3546 + type: HVWire + components: + - parent: 857 + pos: -5.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3547 + type: HVWire + components: + - parent: 857 + pos: -4.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3548 + type: HVWire + components: + - parent: 857 + pos: -4.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3549 + type: HVWire + components: + - parent: 857 + pos: -4.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3550 + type: HVWire + components: + - parent: 857 + pos: -4.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3551 + type: HVWire + components: + - parent: 857 + pos: -4.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3552 + type: HVWire + components: + - parent: 857 + pos: -4.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3553 + type: HVWire + components: + - parent: 857 + pos: -3.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3554 + type: HVWire + components: + - parent: 857 + pos: -2.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3555 + type: HVWire + components: + - parent: 857 + pos: -1.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3556 + type: HVWire + components: + - parent: 857 + pos: -0.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3557 + type: HVWire + components: + - parent: 857 + pos: -0.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3558 + type: HVWire + components: + - parent: 857 + pos: 0.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3559 + type: HVWire + components: + - parent: 857 + pos: 1.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3560 + type: HVWire + components: + - parent: 857 + pos: 2.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3561 + type: HVWire + components: + - parent: 857 + pos: 3.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3562 + type: HVWire + components: + - parent: 857 + pos: 4.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3563 + type: HVWire + components: + - parent: 857 + pos: 5.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3564 + type: HVWire + components: + - parent: 857 + pos: 6.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3565 + type: HVWire + components: + - parent: 857 + pos: 7.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3566 + type: HVWire + components: + - parent: 857 + pos: 8.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3567 + type: HVWire + components: + - parent: 857 + pos: 9.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3568 + type: HVWire + components: + - parent: 857 + pos: 10.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3569 + type: HVWire + components: + - parent: 857 + pos: 11.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3570 + type: HVWire + components: + - parent: 857 + pos: 12.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3571 + type: HVWire + components: + - parent: 857 + pos: 12.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3572 + type: HVWire + components: + - parent: 857 + pos: 12.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3573 + type: HVWire + components: + - parent: 857 + pos: 12.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3574 + type: HVWire + components: + - parent: 857 + pos: 12.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3575 + type: HVWire + components: + - parent: 857 + pos: 11.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3576 + type: HVWire + components: + - parent: 857 + pos: 12.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3577 + type: HVWire + components: + - parent: 857 + pos: 12.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3578 + type: HVWire + components: + - parent: 857 + pos: 12.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3579 + type: HVWire + components: + - parent: 857 + pos: 12.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3580 + type: HVWire + components: + - parent: 857 + pos: 12.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3581 + type: HVWire + components: + - parent: 857 + pos: 12.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3582 + type: HVWire + components: + - parent: 857 + pos: 12.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3583 + type: HVWire + components: + - parent: 857 + pos: 11.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3584 + type: HVWire + components: + - parent: 857 + pos: 10.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3585 + type: HVWire + components: + - parent: 857 + pos: 10.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3586 + type: HVWire + components: + - parent: 857 + pos: 10.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3587 + type: HVWire + components: + - parent: 857 + pos: 10.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3588 + type: HVWire + components: + - parent: 857 + pos: 11.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3589 + type: HVWire + components: + - parent: 857 + pos: 12.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3590 + type: HVWire + components: + - parent: 857 + pos: 13.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3591 + type: HVWire + components: + - parent: 857 + pos: 14.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3592 + type: HVWire + components: + - parent: 857 + pos: 15.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3593 + type: HVWire + components: + - parent: 857 + pos: 16.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3594 + type: HVWire + components: + - parent: 857 + pos: 17.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3595 + type: HVWire + components: + - parent: 857 + pos: 18.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3596 + type: HVWire + components: + - parent: 857 + pos: 19.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3597 + type: HVWire + components: + - parent: 857 + pos: 20.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3598 + type: HVWire + components: + - parent: 857 + pos: 21.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3599 + type: HVWire + components: + - parent: 857 + pos: 22.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3600 + type: HVWire + components: + - parent: 857 + pos: 23.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3601 + type: HVWire + components: + - parent: 857 + pos: 24.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3602 + type: HVWire + components: + - parent: 857 + pos: 25.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3603 + type: HVWire + components: + - parent: 857 + pos: 26.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3604 + type: HVWire + components: + - parent: 857 + pos: 27.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3605 + type: HVWire + components: + - parent: 857 + pos: 27.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3606 + type: HVWire + components: + - parent: 857 + pos: 27.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3607 + type: HVWire + components: + - parent: 857 + pos: 28.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3608 + type: HVWire + components: + - parent: 857 + pos: 29.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3609 + type: HVWire + components: + - parent: 857 + pos: 30.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3610 + type: HVWire + components: + - parent: 857 + pos: 31.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3611 + type: HVWire + components: + - parent: 857 + pos: 32.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3612 + type: HVWire + components: + - parent: 857 + pos: 33.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3613 + type: HVWire + components: + - parent: 857 + pos: 34.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3614 + type: HVWire + components: + - parent: 857 + pos: 34.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3615 + type: HVWire + components: + - parent: 857 + pos: 34.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3616 + type: HVWire + components: + - parent: 857 + pos: 34.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3617 + type: HVWire + components: + - parent: 857 + pos: 34.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3618 + type: HVWire + components: + - parent: 857 + pos: 34.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3619 + type: HVWire + components: + - parent: 857 + pos: 34.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3620 + type: HVWire + components: + - parent: 857 + pos: 35.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3621 + type: HVWire + components: + - parent: 857 + pos: 36.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3622 + type: HVWire + components: + - parent: 857 + pos: 37.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3623 + type: HVWire + components: + - parent: 857 + pos: 38.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3624 + type: HVWire + components: + - parent: 857 + pos: 39.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3625 + type: SalternSubstation + components: + - parent: 857 + pos: 42.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3626 + type: SalternSubstation + components: + - parent: 857 + pos: 27.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3627 + type: SalternSubstation + components: + - parent: 857 + pos: 11.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3628 + type: SalternSubstation + components: + - parent: 857 + pos: 21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3629 + type: SalternSubstation + components: + - parent: 857 + pos: -15.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3630 + type: SalternSubstation + components: + - parent: 857 + pos: -0.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3631 + type: HVWire + components: + - parent: 857 + pos: -0.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3632 + type: SalternSubstation + components: + - parent: 857 + pos: 0.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3633 + type: SalternSubstation + components: + - parent: 857 + pos: -21.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3634 + type: SalternSubstation + components: + - parent: 857 + pos: -32.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 6500 + type: PowerConsumer + - supplyRate: 6000 + type: PowerSupplier +- uid: 3635 + type: MVWire + components: + - parent: 857 + pos: 27.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3636 + type: MVWire + components: + - parent: 857 + pos: 28.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3637 + type: MVWire + components: + - parent: 857 + pos: 28.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3638 + type: MVWire + components: + - parent: 857 + pos: 26.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3639 + type: MVWire + components: + - parent: 857 + pos: 25.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3640 + type: MVWire + components: + - parent: 857 + pos: 24.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3641 + type: MVWire + components: + - parent: 857 + pos: 24.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3642 + type: MVWire + components: + - parent: 857 + pos: 24.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3643 + type: MVWire + components: + - parent: 857 + pos: 23.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3644 + type: MVWire + components: + - parent: 857 + pos: 22.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3645 + type: MVWire + components: + - parent: 857 + pos: 21.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3646 + type: MVWire + components: + - parent: 857 + pos: 20.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3647 + type: MVWire + components: + - parent: 857 + pos: 19.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3648 + type: MVWire + components: + - parent: 857 + pos: 18.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3649 + type: MVWire + components: + - parent: 857 + pos: 17.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3650 + type: MVWire + components: + - parent: 857 + pos: 16.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3651 + type: MVWire + components: + - parent: 857 + pos: 15.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3652 + type: MVWire + components: + - parent: 857 + pos: 14.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3653 + type: MVWire + components: + - parent: 857 + pos: 13.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3654 + type: MVWire + components: + - parent: 857 + pos: 12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3655 + type: MVWire + components: + - parent: 857 + pos: 12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3656 + type: MVWire + components: + - parent: 857 + pos: 11.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3657 + type: MVWire + components: + - parent: 857 + pos: 9.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3658 + type: MVWire + components: + - parent: 857 + pos: 10.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3659 + type: MVWire + components: + - parent: 857 + pos: 9.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3660 + type: MVWire + components: + - parent: 857 + pos: 9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3661 + type: MVWire + components: + - parent: 857 + pos: 9.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3662 + type: MVWire + components: + - parent: 857 + pos: 9.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3663 + type: MVWire + components: + - parent: 857 + pos: 9.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3664 + type: MVWire + components: + - parent: 857 + pos: 9.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3665 + type: MVWire + components: + - parent: 857 + pos: 9.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3666 + type: MVWire + components: + - parent: 857 + pos: 8.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3667 + type: MVWire + components: + - parent: 857 + pos: 7.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3668 + type: MVWire + components: + - parent: 857 + pos: 6.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3669 + type: MVWire + components: + - parent: 857 + pos: 5.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3670 + type: MVWire + components: + - parent: 857 + pos: 4.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3671 + type: MVWire + components: + - parent: 857 + pos: 3.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3672 + type: MVWire + components: + - parent: 857 + pos: 2.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3673 + type: MVWire + components: + - parent: 857 + pos: 1.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3674 + type: MVWire + components: + - parent: 857 + pos: 0.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3675 + type: MVWire + components: + - parent: 857 + pos: 0.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3676 + type: MVWire + components: + - parent: 857 + pos: 0.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3677 + type: MVWire + components: + - parent: 857 + pos: -0.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3678 + type: MVWire + components: + - parent: 857 + pos: -1.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3679 + type: MVWire + components: + - parent: 857 + pos: -2.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3680 + type: MVWire + components: + - parent: 857 + pos: -2.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3681 + type: MVWire + components: + - parent: 857 + pos: 42.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3682 + type: MVWire + components: + - parent: 857 + pos: 43.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3683 + type: MVWire + components: + - parent: 857 + pos: 43.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3684 + type: MVWire + components: + - parent: 857 + pos: 43.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3685 + type: MVWire + components: + - parent: 857 + pos: 44.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3686 + type: MVWire + components: + - parent: 857 + pos: 45.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3687 + type: MVWire + components: + - parent: 857 + pos: 46.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3688 + type: MVWire + components: + - parent: 857 + pos: 47.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3689 + type: MVWire + components: + - parent: 857 + pos: 48.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3690 + type: MVWire + components: + - parent: 857 + pos: 48.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3691 + type: MVWire + components: + - parent: 857 + pos: 48.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3692 + type: MVWire + components: + - parent: 857 + pos: 48.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3693 + type: MVWire + components: + - parent: 857 + pos: 48.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3694 + type: MVWire + components: + - parent: 857 + pos: 47.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3695 + type: MVWire + components: + - parent: 857 + pos: 47.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3696 + type: MVWire + components: + - parent: 857 + pos: 41.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3697 + type: MVWire + components: + - parent: 857 + pos: 40.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3698 + type: MVWire + components: + - parent: 857 + pos: 39.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3699 + type: MVWire + components: + - parent: 857 + pos: 38.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3700 + type: MVWire + components: + - parent: 857 + pos: 37.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3701 + type: MVWire + components: + - parent: 857 + pos: 36.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3702 + type: MVWire + components: + - parent: 857 + pos: 35.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3703 + type: MVWire + components: + - parent: 857 + pos: 34.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3704 + type: MVWire + components: + - parent: 857 + pos: 33.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3705 + type: MVWire + components: + - parent: 857 + pos: 32.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3706 + type: MVWire + components: + - parent: 857 + pos: 32.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3707 + type: MVWire + components: + - parent: 857 + pos: 31.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3708 + type: MVWire + components: + - parent: 857 + pos: 31.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3709 + type: MVWire + components: + - parent: 857 + pos: 43.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3710 + type: MVWire + components: + - parent: 857 + pos: 43.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3711 + type: MVWire + components: + - parent: 857 + pos: 43.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3712 + type: MVWire + components: + - parent: 857 + pos: 43.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3713 + type: MVWire + components: + - parent: 857 + pos: 43.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3714 + type: MVWire + components: + - parent: 857 + pos: 43.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3715 + type: MVWire + components: + - parent: 857 + pos: 43.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3716 + type: MVWire + components: + - parent: 857 + pos: 43.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3717 + type: MVWire + components: + - parent: 857 + pos: 43.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3718 + type: MVWire + components: + - parent: 857 + pos: 21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3719 + type: MVWire + components: + - parent: 857 + pos: 21.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3720 + type: MVWire + components: + - parent: 857 + pos: 21.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3721 + type: MVWire + components: + - parent: 857 + pos: 21.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3722 + type: MVWire + components: + - parent: 857 + pos: 21.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3723 + type: MVWire + components: + - parent: 857 + pos: 21.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3724 + type: MVWire + components: + - parent: 857 + pos: 22.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3725 + type: MVWire + components: + - parent: 857 + pos: 22.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3726 + type: MVWire + components: + - parent: 857 + pos: 20.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3727 + type: MVWire + components: + - parent: 857 + pos: 19.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3728 + type: MVWire + components: + - parent: 857 + pos: 21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3729 + type: MVWire + components: + - parent: 857 + pos: 18.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3730 + type: MVWire + components: + - parent: 857 + pos: 17.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3731 + type: MVWire + components: + - parent: 857 + pos: 16.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3732 + type: MVWire + components: + - parent: 857 + pos: 15.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3733 + type: MVWire + components: + - parent: 857 + pos: 14.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3734 + type: MVWire + components: + - parent: 857 + pos: 13.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3735 + type: MVWire + components: + - parent: 857 + pos: 12.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3736 + type: MVWire + components: + - parent: 857 + pos: 11.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3737 + type: MVWire + components: + - parent: 857 + pos: 10.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3738 + type: MVWire + components: + - parent: 857 + pos: 9.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3739 + type: MVWire + components: + - parent: 857 + pos: 8.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3740 + type: MVWire + components: + - parent: 857 + pos: 8.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3741 + type: MVWire + components: + - parent: 857 + pos: 8.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3742 + type: MVWire + components: + - parent: 857 + pos: 8.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3743 + type: MVWire + components: + - parent: 857 + pos: 8.5,-13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3744 + type: MVWire + components: + - parent: 857 + pos: 8.5,-14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3745 + type: MVWire + components: + - parent: 857 + pos: 8.5,-15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3746 + type: MVWire + components: + - parent: 857 + pos: 8.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3747 + type: MVWire + components: + - parent: 857 + pos: 7.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3748 + type: MVWire + components: + - parent: 857 + pos: 7.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3749 + type: MVWire + components: + - parent: 857 + pos: 15.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3750 + type: MVWire + components: + - parent: 857 + pos: 15.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3751 + type: MVWire + components: + - parent: 857 + pos: 15.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3752 + type: MVWire + components: + - parent: 857 + pos: 15.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3753 + type: MVWire + components: + - parent: 857 + pos: 15.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3754 + type: MVWire + components: + - parent: 857 + pos: 15.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3755 + type: MVWire + components: + - parent: 857 + pos: 15.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3756 + type: MVWire + components: + - parent: 857 + pos: 15.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3757 + type: MVWire + components: + - parent: 857 + pos: 15.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3758 + type: MVWire + components: + - parent: 857 + pos: 15.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3759 + type: MVWire + components: + - parent: 857 + pos: 15.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3760 + type: MVWire + components: + - parent: 857 + pos: 16.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3761 + type: MVWire + components: + - parent: 857 + pos: 16.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3762 + type: MVWire + components: + - parent: 857 + pos: -0.5,-22.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3763 + type: MVWire + components: + - parent: 857 + pos: -0.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3764 + type: MVWire + components: + - parent: 857 + pos: -0.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3765 + type: MVWire + components: + - parent: 857 + pos: -16.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3766 + type: MVWire + components: + - parent: 857 + pos: -1.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3767 + type: MVWire + components: + - parent: 857 + pos: -1.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3768 + type: MVWire + components: + - parent: 857 + pos: -1.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3769 + type: MVWire + components: + - parent: 857 + pos: -2.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3770 + type: MVWire + components: + - parent: 857 + pos: -3.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3771 + type: MVWire + components: + - parent: 857 + pos: -4.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3772 + type: MVWire + components: + - parent: 857 + pos: -5.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3773 + type: MVWire + components: + - parent: 857 + pos: -6.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3774 + type: MVWire + components: + - parent: 857 + pos: -7.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3775 + type: MVWire + components: + - parent: 857 + pos: -8.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3776 + type: MVWire + components: + - parent: 857 + pos: -9.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3777 + type: MVWire + components: + - parent: 857 + pos: -9.5,-21.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3778 + type: MVWire + components: + - parent: 857 + pos: -10.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3779 + type: MVWire + components: + - parent: 857 + pos: -11.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3780 + type: MVWire + components: + - parent: 857 + pos: -12.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3781 + type: MVWire + components: + - parent: 857 + pos: -13.5,-20.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3782 + type: MVWire + components: + - parent: 857 + pos: -13.5,-19.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3783 + type: MVWire + components: + - parent: 857 + pos: -13.5,-18.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3784 + type: MVWire + components: + - parent: 857 + pos: -13.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3785 + type: MVWire + components: + - parent: 857 + pos: -14.5,-17.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3786 + type: MVWire + components: + - parent: 857 + pos: -14.5,-16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3787 + type: MVWire + components: + - parent: 857 + pos: 0.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3788 + type: MVWire + components: + - parent: 857 + pos: 0.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3789 + type: MVWire + components: + - parent: 857 + pos: 0.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3790 + type: MVWire + components: + - parent: 857 + pos: -0.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3791 + type: MVWire + components: + - parent: 857 + pos: -1.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3792 + type: MVWire + components: + - parent: 857 + pos: -1.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3793 + type: MVWire + components: + - parent: 857 + pos: -2.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3794 + type: MVWire + components: + - parent: 857 + pos: -3.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3795 + type: MVWire + components: + - parent: 857 + pos: -4.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3796 + type: MVWire + components: + - parent: 857 + pos: -5.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3797 + type: MVWire + components: + - parent: 857 + pos: -5.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3798 + type: MVWire + components: + - parent: 857 + pos: -6.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3799 + type: MVWire + components: + - parent: 857 + pos: -7.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3800 + type: MVWire + components: + - parent: 857 + pos: -8.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3801 + type: MVWire + components: + - parent: 857 + pos: -9.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3802 + type: MVWire + components: + - parent: 857 + pos: -9.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3803 + type: MVWire + components: + - parent: 857 + pos: -9.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3804 + type: MVWire + components: + - parent: 857 + pos: -9.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3805 + type: MVWire + components: + - parent: 857 + pos: -10.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3806 + type: MVWire + components: + - parent: 857 + pos: -11.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3807 + type: MVWire + components: + - parent: 857 + pos: -12.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3808 + type: MVWire + components: + - parent: 857 + pos: -12.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3809 + type: MVWire + components: + - parent: 857 + pos: -12.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3810 + type: MVWire + components: + - parent: 857 + pos: -12.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3811 + type: MVWire + components: + - parent: 857 + pos: -12.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3812 + type: MVWire + components: + - parent: 857 + pos: -12.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3813 + type: MVWire + components: + - parent: 857 + pos: -12.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3814 + type: MVWire + components: + - parent: 857 + pos: -12.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3815 + type: MVWire + components: + - parent: 857 + pos: -12.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3816 + type: MVWire + components: + - parent: 857 + pos: -11.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3817 + type: MVWire + components: + - parent: 857 + pos: -11.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3818 + type: MVWire + components: + - parent: 857 + pos: -21.5,-10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3819 + type: MVWire + components: + - parent: 857 + pos: -21.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3820 + type: MVWire + components: + - parent: 857 + pos: -21.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3821 + type: MVWire + components: + - parent: 857 + pos: -20.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3822 + type: MVWire + components: + - parent: 857 + pos: -19.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3823 + type: MVWire + components: + - parent: 857 + pos: -18.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3824 + type: MVWire + components: + - parent: 857 + pos: -17.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3825 + type: MVWire + components: + - parent: 857 + pos: -17.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3826 + type: MVWire + components: + - parent: 857 + pos: -16.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3827 + type: MVWire + components: + - parent: 857 + pos: -15.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3828 + type: MVWire + components: + - parent: 857 + pos: -14.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3829 + type: MVWire + components: + - parent: 857 + pos: -14.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3830 + type: MVWire + components: + - parent: 857 + pos: -22.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3831 + type: MVWire + components: + - parent: 857 + pos: -21.5,-11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3832 + type: MVWire + components: + - parent: 857 + pos: -21.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3833 + type: MVWire + components: + - parent: 857 + pos: -20.5,-12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3834 + type: MVWire + components: + - parent: 857 + pos: -23.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3835 + type: MVWire + components: + - parent: 857 + pos: -24.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3836 + type: MVWire + components: + - parent: 857 + pos: -25.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3837 + type: MVWire + components: + - parent: 857 + pos: -26.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3838 + type: MVWire + components: + - parent: 857 + pos: -27.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3839 + type: MVWire + components: + - parent: 857 + pos: -28.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3840 + type: MVWire + components: + - parent: 857 + pos: -29.5,-8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3841 + type: MVWire + components: + - parent: 857 + pos: -29.5,-7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3842 + type: MVWire + components: + - parent: 857 + pos: -29.5,-6.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3843 + type: MVWire + components: + - parent: 857 + pos: -29.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3844 + type: MVWire + components: + - parent: 857 + pos: -29.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3845 + type: MVWire + components: + - parent: 857 + pos: -30.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3846 + type: MVWire + components: + - parent: 857 + pos: -30.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3847 + type: MVWire + components: + - parent: 857 + pos: -32.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3848 + type: MVWire + components: + - parent: 857 + pos: -32.5,8.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3849 + type: MVWire + components: + - parent: 857 + pos: -32.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3850 + type: MVWire + components: + - parent: 857 + pos: -33.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3851 + type: MVWire + components: + - parent: 857 + pos: -34.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3852 + type: MVWire + components: + - parent: 857 + pos: -35.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3853 + type: MVWire + components: + - parent: 857 + pos: -36.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3854 + type: MVWire + components: + - parent: 857 + pos: -37.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3855 + type: MVWire + components: + - parent: 857 + pos: -38.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3856 + type: MVWire + components: + - parent: 857 + pos: -38.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3857 + type: MVWire + components: + - parent: 857 + pos: -39.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3858 + type: MVWire + components: + - parent: 857 + pos: -39.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3859 + type: MVWire + components: + - parent: 857 + pos: -28.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3860 + type: MVWire + components: + - parent: 857 + pos: -31.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3861 + type: MVWire + components: + - parent: 857 + pos: -31.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3862 + type: MVWire + components: + - parent: 857 + pos: -31.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3863 + type: MVWire + components: + - parent: 857 + pos: -31.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3864 + type: MVWire + components: + - parent: 857 + pos: -31.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3865 + type: MVWire + components: + - parent: 857 + pos: -30.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3866 + type: MVWire + components: + - parent: 857 + pos: -29.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3867 + type: MVWire + components: + - parent: 857 + pos: -28.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3868 + type: MVWire + components: + - parent: 857 + pos: -15.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3869 + type: MVWire + components: + - parent: 857 + pos: -14.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3870 + type: MVWire + components: + - parent: 857 + pos: -13.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3871 + type: MVWire + components: + - parent: 857 + pos: -13.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3872 + type: MVWire + components: + - parent: 857 + pos: -13.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3873 + type: MVWire + components: + - parent: 857 + pos: -13.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3874 + type: MVWire + components: + - parent: 857 + pos: -12.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3875 + type: MVWire + components: + - parent: 857 + pos: -12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3876 + type: MVWire + components: + - parent: 857 + pos: -11.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3877 + type: MVWire + components: + - parent: 857 + pos: -10.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3878 + type: MVWire + components: + - parent: 857 + pos: -9.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3879 + type: MVWire + components: + - parent: 857 + pos: -8.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3880 + type: MVWire + components: + - parent: 857 + pos: -7.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3881 + type: MVWire + components: + - parent: 857 + pos: -6.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3882 + type: MVWire + components: + - parent: 857 + pos: -5.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3883 + type: MVWire + components: + - parent: 857 + pos: -4.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3884 + type: MVWire + components: + - parent: 857 + pos: -3.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3885 + type: MVWire + components: + - parent: 857 + pos: -3.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3886 + type: MVWire + components: + - parent: 857 + pos: -3.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3887 + type: MVWire + components: + - parent: 857 + pos: -15.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3888 + type: MVWire + components: + - parent: 857 + pos: -16.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3889 + type: solid_wall + components: + - parent: 857 + pos: 23.5,-9.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3890 + type: PoweredSmallLight + components: + - parent: 857 + pos: 22.528679,-9.003884 + rot: 1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3891 + type: ApcExtensionCable + components: + - parent: 857 + pos: 22.5,-7.5 + rot: 1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3892 + type: AirlockMaintMedLocked + components: + - parent: 857 + pos: 23.5,-10.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 3893 + type: AirlockMaintSecLocked + components: + - parent: 857 + pos: -16.5,16.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 3894 + type: AirlockMaintCommandLocked + components: + - parent: 857 + pos: 12.5,22.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 3895 + type: EmergencyLight + components: + - parent: 857 + pos: 44.486908,10 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3896 + type: EmergencyLight + components: + - parent: 857 + pos: 47.22923,-3 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3897 + type: EmergencyLight + components: + - parent: 857 + pos: 29.299644,-7.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3898 + type: EmergencyLight + components: + - parent: 857 + pos: 31.467993,-4.5 + rot: 1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3899 + type: EmergencyLight + components: + - parent: 857 + pos: 30.278831,9.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3900 + type: EmergencyLight + components: + - parent: 857 + pos: 18.260162,9.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3901 + type: EmergencyLight + components: + - parent: 857 + pos: 26.46292,-1 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3902 + type: EmergencyLight + components: + - parent: 857 + pos: 17.399544,2 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3903 + type: EmergencyLight + components: + - parent: 857 + pos: 7.2721233,-15.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3904 + type: EmergencyLight + components: + - parent: 857 + pos: 7.3033733,-20.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3905 + type: EmergencyLight + components: + - parent: 857 + pos: -10.487591,2 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3906 + type: EmergencyLight + components: + - parent: 857 + pos: -2.7508366,15 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3907 + type: EmergencyLight + components: + - parent: 857 + pos: 5.701264,16.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3908 + type: EmergencyLight + components: + - parent: 857 + pos: 6.2924953,10.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3909 + type: EmergencyLight + components: + - parent: 857 + pos: 12.41432,9.5 + rot: 1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3910 + type: EmergencyLight + components: + - parent: 857 + pos: 16.47682,3.5 + rot: 1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3911 + type: EmergencyLight + components: + - parent: 857 + pos: -24.514448,12 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3912 + type: EmergencyLight + components: + - parent: 857 + pos: -38.507736,11 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3913 + type: EmergencyLight + components: + - parent: 857 + pos: -35.163986,-4.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3914 + type: EmergencyLight + components: + - parent: 857 + pos: -22.347473,-1.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3915 + type: EmergencyLight + components: + - parent: 857 + pos: -20.745232,-0.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3916 + type: EmergencyLight + components: + - parent: 857 + pos: -13.885857,-9 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3917 + type: EmergencyLight + components: + - parent: 857 + pos: -4.8114204,-9 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3918 + type: EmergencyLight + components: + - parent: 857 + pos: 10.68897,19.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3919 + type: EmergencyLight + components: + - parent: 857 + pos: 8.923345,28.5 + rot: 1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3920 + type: EmergencyLight + components: + - parent: 857 + pos: -2.4985301,28.5 + rot: 1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3921 + type: EmergencyLight + components: + - parent: 857 + pos: -2.7641551,26.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3922 + type: EmergencyLight + components: + - parent: 857 + pos: 9.704595,26.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3923 + type: EmergencyLight + components: + - parent: 857 + pos: -12.509865,6 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3924 + type: ApcExtensionCable + components: + - parent: 857 + pos: -24.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3925 + type: ApcExtensionCable + components: + - parent: 857 + pos: -24.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3926 + type: HVWire + components: + - parent: 857 + pos: 41.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - deadThreshold: 100 + type: Destructible +- uid: 3927 + type: SalternGenerator + components: + - parent: 857 + pos: 40.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3928 + type: SalternGenerator + components: + - parent: 857 + pos: 42.5,7.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3929 + type: Poweredlight + components: + - parent: 857 + pos: -13.924418,16.541348 + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3930 + type: PoweredSmallLight + components: + - parent: 857 + pos: -1.4929452,19.970068 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3931 + type: PoweredSmallLight + components: + - parent: 857 + pos: -15.494916,16.030584 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3932 + type: PoweredSmallLight + components: + - parent: 857 + pos: -15.494916,16.030584 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3933 + type: PoweredSmallLight + components: + - parent: 857 + pos: -15.494916,15.968084 + rot: -1.5707963267948966 rad + type: Transform + - containers: + light_bulb: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 3934 + type: SalternApc + components: + - parent: 857 + pos: -12.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - drawRate: 2000 + type: PowerConsumer +- uid: 3935 + type: EmergencyLight + components: + - parent: 857 + pos: -13.5,-17 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3936 + type: EmergencyLight + components: + - parent: 857 + pos: -10.5,-17 + rot: -1.5707963267948966 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3937 + type: EmergencyLight + components: + - parent: 857 + pos: 5.7693076,-15.5 + rot: 3.141592653589793 rad + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3938 + type: EmergencyLight + components: + - parent: 857 + pos: 2.2274737,8.5 + type: Transform + - powerLoad: 1 + type: PowerReceiver + - startingCharge: 30000 + type: Battery +- uid: 3939 + type: CrateLightBulb + components: + - parent: 857 + pos: 27.48989,-1.4 + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 3940 + type: MetalStack + components: + - parent: 857 + pos: 47.585052,4.443361 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3941 + type: Table + components: + - parent: 857 + pos: 46.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3942 + type: Table + components: + - parent: 857 + pos: 48.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3943 + type: Table + components: + - parent: 857 + pos: 47.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3944 + type: Table + components: + - parent: 857 + pos: 49.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3945 + type: Table + components: + - parent: 857 + pos: 50.5,4.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 3946 + type: HVWireStack + components: + - parent: 857 + pos: 50.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3947 + type: MVWireStack + components: + - parent: 857 + pos: 50.288177,4.693361 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3948 + type: ApcExtensionCableStack + components: + - parent: 857 + pos: 50.053802,4.474611 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3949 + type: GlassStack + components: + - parent: 857 + pos: 49.131927,4.677736 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3950 + type: GlassStack + components: + - parent: 857 + pos: 48.788177,4.505861 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3951 + type: MetalStack + components: + - parent: 857 + pos: 48.038177,4.677736 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3952 + type: CrateGeneric + components: + - parent: 857 + pos: 45.585052,4.6 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 3953 + type: Crowbar + components: + - parent: 857 + pos: -29.463713,8.897233 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3954 + type: Crowbar + components: + - parent: 857 + pos: -15.314676,-12.357978 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3955 + type: Crowbar + components: + - parent: 857 + pos: -15.502176,-11.748603 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3956 + type: CrowbarRed + components: + - parent: 857 + pos: -38.496082,2.6274996 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 3957 + type: SpawnPointMime + components: + - parent: 857 + pos: -19.5,-8.5 rot: -1.5707963267948966 rad type: Transform ... diff --git a/Resources/Maps/stationstation.yml b/Resources/Maps/stationstation.yml index 6446ad62dd..99af47d155 100644 --- a/Resources/Maps/stationstation.yml +++ b/Resources/Maps/stationstation.yml @@ -99,1094 +99,3766 @@ grids: tiles: OAAAADgAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAAA7AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AAAAPgAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAADsAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAAA7AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AAAAOwAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAADsAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAAA7AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AAAAOwAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAADsAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAAA7AAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AAAAOwAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAADsAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== entities: - uid: 0 + type: GlassStack + components: + - parent: 216 + pos: 8.560405,21.456738 + type: Transform + - anchored: False + type: Collidable +- uid: 1 + type: solid_wall + components: + - parent: 216 + pos: 8.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 2 + type: LightTube + components: + - parent: 3 + type: Transform + - anchored: False + type: Collidable +- uid: 3 + type: Poweredlight + components: + - parent: 216 + pos: 8,16.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 2 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 4 + type: CableStack1 + components: + - parent: 216 + pos: 10.577456,21.424059 + type: Transform + - anchored: False + type: Collidable +- uid: 5 + type: ChairOfficeLight + components: + - parent: 216 + pos: 9.5,18.5 + rot: 3.141592653589793 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 6 + type: ChairOfficeLight + components: + - parent: 216 + pos: 9.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 7 + type: Chair + components: + - parent: 216 + pos: 12.5,17.5 + type: Transform + - flags: + - None + type: Destructible +- uid: 8 + type: solid_wall + components: + - parent: 216 + pos: 8.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 9 + type: solid_wall + components: + - parent: 216 + pos: 8.5,-0.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 10 + type: solid_wall + components: + - parent: 216 + pos: 8.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 11 + type: Table + components: + - parent: 216 + pos: 13.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 12 + type: Table + components: + - parent: 216 + pos: 11.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 13 + type: Table + components: + - parent: 216 + pos: 10.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 14 + type: Table + components: + - parent: 216 + pos: 9.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 15 + type: Table + components: + - parent: 216 + pos: 8.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 16 + type: Autolathe + components: + - parent: 216 + pos: -4.5,-5.5 + type: Transform + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 17 + type: Autolathe + components: + - parent: 216 + pos: 13.5,18.5 + type: Transform + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 18 + type: Protolathe + components: + - parent: 216 + pos: 8.5,17.5 + type: Transform + - protolatherecipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: ProtolatheDatabase +- uid: 19 + type: BaseResearchAndDevelopmentPointSource + components: + - parent: 216 + pos: 13.5,16.5 + type: Transform +- uid: 20 + type: ComputerResearchAndDevelopment + components: + - parent: 216 + pos: 8.5,18.5 + type: Transform +- uid: 21 + type: ResearchAndDevelopmentServer + components: + - parent: 216 + pos: 11.5,24.5 + rot: 1.5707963267948966 rad + type: Transform + - points: 343000 + type: ResearchServer +- uid: 22 + type: LightBulb + components: + - parent: 23 + type: Transform + - anchored: False + type: Collidable +- uid: 23 + type: PoweredSmallLight + components: + - parent: 216 + pos: 7.5,26 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 22 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 24 + type: Catwalk + components: + - parent: 216 + pos: 13.5,24.5 + rot: 3.141592653589793 rad + type: Transform +- uid: 25 + type: LightBulb + components: + - parent: 26 + type: Transform + - anchored: False + type: Collidable +- uid: 26 + type: PoweredSmallLight + components: + - parent: 216 + pos: 11,24.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 25 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 27 + type: Poweredlight + components: + - parent: 216 + pos: 2,23.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 28 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 28 + type: LightTube + components: + - parent: 27 + type: Transform + - anchored: False + type: Collidable +- uid: 29 + type: LightTube + components: + - parent: 30 + type: Transform + - anchored: False + type: Collidable +- uid: 30 + type: Poweredlight + components: + - parent: 216 + pos: 2,17.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 29 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 31 + type: LightBulb + components: + - parent: 32 + type: Transform + - anchored: False + type: Collidable +- uid: 32 + type: PoweredSmallLight + components: + - parent: 216 + pos: 18,17.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 31 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 33 + type: LightTube + components: + - parent: 34 + type: Transform + - anchored: False + type: Collidable +- uid: 34 + type: Poweredlight + components: + - parent: 216 + pos: 18,27.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 33 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 35 + type: LightTube + components: + - parent: 36 + type: Transform + - anchored: False + type: Collidable +- uid: 36 + type: Poweredlight + components: + - parent: 216 + pos: 18,22.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 35 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 37 + type: Poweredlight + components: + - parent: 216 + pos: 14,18.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 38 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 38 + type: LightTube + components: + - parent: 37 + type: Transform + - anchored: False + type: Collidable +- uid: 39 + type: LightTube + components: + - parent: 40 + type: Transform + - anchored: False + type: Collidable +- uid: 40 + type: Poweredlight + components: + - parent: 216 + pos: 12.5,12 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 39 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 41 + type: LightTube + components: + - parent: 42 + type: Transform + - anchored: False + type: Collidable +- uid: 42 + type: Poweredlight + components: + - parent: 216 + pos: 6.5,12 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 41 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 43 + type: Table + components: + - parent: 216 + pos: 9.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 44 + type: Airlock + components: + - parent: 216 + pos: 7.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 45 + type: Airlock + components: + - parent: 216 + pos: 5.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 46 + type: AirlockScience + components: + - parent: 216 + pos: 16.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 47 + type: AirlockScience + components: + - parent: 216 + pos: 16.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 48 + type: AirlockScience + components: + - parent: 216 + pos: 14.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 49 + type: AirlockScienceGlass + components: + - parent: 216 + pos: 14.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 50 + type: solid_wall + components: + - parent: 216 + pos: 1.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 51 + type: solid_wall + components: + - parent: 216 + pos: 1.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 52 + type: solid_wall + components: + - parent: 216 + pos: 1.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 53 + type: solid_wall + components: + - parent: 216 + pos: 1.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 54 + type: solid_wall + components: + - parent: 216 + pos: 1.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 55 + type: solid_wall + components: + - parent: 216 + pos: 1.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 56 + type: solid_wall + components: + - parent: 216 + pos: 1.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 57 + type: solid_wall + components: + - parent: 216 + pos: 1.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 58 + type: solid_wall + components: + - parent: 216 + pos: 1.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 59 + type: Catwalk + components: + - parent: 216 + pos: 6.5,20.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 60 + type: Catwalk + components: + - parent: 216 + pos: 6.5,24.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 61 + type: Catwalk + components: + - parent: 216 + pos: 5.5,16.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 62 + type: solid_wall + components: + - parent: 216 + pos: 7.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 63 + type: solid_wall + components: + - parent: 216 + pos: 7.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 64 + type: solid_wall + components: + - parent: 216 + pos: 7.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 65 + type: solid_wall + components: + - parent: 216 + pos: 7.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 66 + type: solid_wall + components: + - parent: 216 + pos: 4.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 67 + type: solid_wall + components: + - parent: 216 + pos: 4.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 68 + type: solid_wall + components: + - parent: 216 + pos: 4.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 69 + type: solid_wall + components: + - parent: 216 + pos: 10.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 70 + type: solid_wall + components: + - parent: 216 + pos: 10.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 71 + type: solid_wall + components: + - parent: 216 + pos: 10.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 72 + type: solid_wall + components: + - parent: 216 + pos: 4.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 73 + type: solid_wall + components: + - parent: 216 + pos: 8.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 74 + type: solid_wall + components: + - parent: 216 + pos: 9.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 75 + type: solid_wall + components: + - parent: 216 + pos: 10.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 76 + type: solid_wall + components: + - parent: 216 + pos: 11.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 77 + type: solid_wall + components: + - parent: 216 + pos: 12.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 78 + type: solid_wall + components: + - parent: 216 + pos: 13.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 79 + type: solid_wall + components: + - parent: 216 + pos: 18.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 80 + type: solid_wall + components: + - parent: 216 + pos: 18.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 81 + type: solid_wall + components: + - parent: 216 + pos: 18.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 82 + type: solid_wall + components: + - parent: 216 + pos: 18.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 83 + type: solid_wall + components: + - parent: 216 + pos: 18.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 84 + type: solid_wall + components: + - parent: 216 + pos: 18.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 85 + type: solid_wall + components: + - parent: 216 + pos: 14.5,28.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 86 + type: solid_wall + components: + - parent: 216 + pos: 14.5,27.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 87 + type: solid_wall + components: + - parent: 216 + pos: 14.5,26.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 88 + type: solid_wall + components: + - parent: 216 + pos: 14.5,25.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 89 + type: solid_wall + components: + - parent: 216 + pos: 14.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 90 + type: solid_wall + components: + - parent: 216 + pos: 13.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 91 + type: solid_wall + components: + - parent: 216 + pos: 12.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 92 + type: solid_wall + components: + - parent: 216 + pos: 11.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 93 + type: solid_wall + components: + - parent: 216 + pos: 10.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 94 + type: solid_wall + components: + - parent: 216 + pos: 9.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 95 + type: solid_wall + components: + - parent: 216 + pos: 8.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 96 + type: solid_wall + components: + - parent: 216 + pos: 14.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 97 + type: solid_wall + components: + - parent: 216 + pos: 14.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 98 + type: solid_wall + components: + - parent: 216 + pos: 7.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 99 + type: solid_wall + components: + - parent: 216 + pos: 6.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 100 + type: solid_wall + components: + - parent: 216 + pos: 28.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 101 + type: solid_wall + components: + - parent: 216 + pos: 27.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 102 + type: solid_wall + components: + - parent: 216 + pos: 26.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 103 + type: solid_wall + components: + - parent: 216 + pos: 25.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 104 + type: solid_wall + components: + - parent: 216 + pos: 24.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 105 + type: solid_wall + components: + - parent: 216 + pos: 23.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 106 + type: solid_wall + components: + - parent: 216 + pos: 22.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 107 + type: solid_wall + components: + - parent: 216 + pos: 21.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 108 + type: solid_wall + components: + - parent: 216 + pos: 20.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 109 + type: solid_wall + components: + - parent: 216 + pos: 19.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 110 + type: solid_wall + components: + - parent: 216 + pos: 18.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 111 + type: solid_wall + components: + - parent: 216 + pos: 18.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 112 + type: solid_wall + components: + - parent: 216 + pos: 18.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 113 + type: solid_wall + components: + - parent: 216 + pos: 18.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 114 + type: solid_wall + components: + - parent: 216 + pos: 18.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 115 + type: solid_wall + components: + - parent: 216 + pos: 18.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 116 + type: solid_wall + components: + - parent: 216 + pos: 18.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 117 + type: solid_wall + components: + - parent: 216 + pos: 18.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 118 + type: solid_wall + components: + - parent: 216 + pos: 17.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 119 + type: solid_wall + components: + - parent: 216 + pos: 17.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 120 + type: solid_wall + components: + - parent: 216 + pos: 15.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 121 + type: solid_wall + components: + - parent: 216 + pos: 14.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 122 + type: solid_wall + components: + - parent: 216 + pos: 14.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 123 + type: solid_wall + components: + - parent: 216 + pos: 14.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 124 + type: solid_wall + components: + - parent: 216 + pos: 14.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 125 + type: solid_wall + components: + - parent: 216 + pos: 15.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 126 + type: solid_wall + components: + - parent: 216 + pos: 14.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 127 + type: solid_wall + components: + - parent: 216 + pos: 13.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 128 + type: solid_wall + components: + - parent: 216 + pos: 12.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 129 + type: solid_wall + components: + - parent: 216 + pos: 11.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 130 + type: solid_wall + components: + - parent: 216 + pos: 10.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 131 + type: solid_wall + components: + - parent: 216 + pos: 8.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 132 + type: solid_wall + components: + - parent: 216 + pos: 7.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 133 + type: solid_wall + components: + - parent: 216 + pos: 7.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 134 + type: solid_wall + components: + - parent: 216 + pos: 7.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 135 + type: solid_wall + components: + - parent: 216 + pos: 7.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 136 + type: solid_wall + components: + - parent: 216 + pos: 7.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 137 + type: solid_wall + components: + - parent: 216 + pos: 4.5,15.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 138 + type: solid_wall + components: + - parent: 216 + pos: 4.5,16.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 139 + type: solid_wall + components: + - parent: 216 + pos: 4.5,17.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 140 + type: solid_wall + components: + - parent: 216 + pos: 4.5,18.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 141 + type: solid_wall + components: + - parent: 216 + pos: 4.5,19.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 142 + type: solid_wall + components: + - parent: 216 + pos: 4.5,20.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 143 + type: solid_wall + components: + - parent: 216 + pos: 4.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 144 + type: solid_wall + components: + - parent: 216 + pos: 4.5,22.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 145 + type: solid_wall + components: + - parent: 216 + pos: 4.5,23.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 146 + type: solid_wall + components: + - parent: 216 + pos: 4.5,24.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 147 + type: LockerChemistry + components: + - parent: 216 + pos: 27.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 148 + type: LockerMedical + components: + - parent: 216 + pos: 27.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 149 + type: LockerMedical + components: + - parent: 216 + pos: 29.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 150 + type: LockerMedical + components: + - parent: 216 + pos: 30.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 151 + type: CrateMedical + components: + - parent: 216 + pos: 31.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 152 + type: CrateMedical + components: + - parent: 216 + pos: 32.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 153 + type: Beaker + components: + - parent: 216 + pos: 33.62275,-4.634824 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 154 + type: Beaker + components: + - parent: 216 + pos: 33.62275,-4.228574 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 155 + type: Beaker + components: + - parent: 216 + pos: 33.388374,-4.431699 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 156 + type: Beaker + components: + - parent: 216 + pos: 33.357124,-4.166074 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 157 + type: Beaker + components: + - parent: 216 + pos: 33.357124,-4.837949 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 158 + type: LargeBeaker + components: + - parent: 216 + pos: 33.544624,-5.572324 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 159 + type: LargeBeaker + components: + - parent: 216 + pos: 33.294624,-5.181699 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 160 + type: LargeBeaker + components: + - parent: 216 + pos: 33.18525,-5.681699 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 161 + type: Table + components: + - parent: 216 + pos: 33.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 162 + type: Table + components: + - parent: 216 + pos: 33.5,-4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 163 + type: Table + components: + - parent: 216 + pos: 33.5,-3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 164 + type: Table + components: + - parent: 216 + pos: 33.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 165 + type: Table + components: + - parent: 216 + pos: 33.5,-1.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 166 + type: SpawnPointLatejoin + components: + - parent: 216 + pos: 19.5,-3.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 167 + type: SpawnPointLatejoin + components: + - parent: 216 + pos: 17.5,8.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 168 + type: Ointment + components: + - parent: 216 + pos: 18.77326,6.653532 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 169 + type: Ointment + components: + - parent: 216 + pos: 18.49201,6.059782 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 170 + type: Brutepack + components: + - parent: 216 + pos: 18.601385,5.512907 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 171 + type: Brutepack + components: + - parent: 216 + pos: 18.476385,4.841032 + rot: 1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 172 + type: LightTube + components: + - parent: 173 + type: Transform + - anchored: False + type: Collidable +- uid: 173 + type: Poweredlight + components: + - parent: 216 + pos: 23.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 172 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 174 + type: ComputerMedicalRecords + components: + - parent: 216 + pos: 22.5,-5.5 + rot: 1.5707963267948966 rad + type: Transform +- uid: 175 + type: MedkitFilled + components: + - parent: 216 + pos: 13.632214,1.5673001 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 176 + type: MedkitFilled + components: + - parent: 216 + pos: 13.460339,0.6141751 + rot: 3.141592653589793 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 177 + type: VendingMachineWallMedical + components: + - parent: 216 + pos: 1.5,-3.5 + rot: 3.141592653589793 rad + type: Transform + - flags: + - None + type: Breakable +- uid: 178 + type: VendingMachineMedical + components: + - parent: 216 + pos: 25.5,-5.5 + rot: 3.141592653589793 rad + type: Transform + - flags: + - None + type: Breakable +- uid: 179 + type: VendingMachineMedical + components: + - parent: 216 + pos: 27.5,-5.5 + rot: 3.141592653589793 rad + type: Transform + - flags: + - None + type: Breakable +- uid: 180 + type: VendingMachineMedical + components: + - parent: 216 + pos: 29.5,3.5 + rot: 3.141592653589793 rad + type: Transform + - flags: + - None + type: Breakable +- uid: 181 + type: LightTube + components: + - parent: 182 + type: Transform + - anchored: False + type: Collidable +- uid: 182 + type: Poweredlight + components: + - parent: 216 + pos: 28,7.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 181 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 183 + type: LightTube + components: + - parent: 184 + type: Transform + - anchored: False + type: Collidable +- uid: 184 + type: Poweredlight + components: + - parent: 216 + pos: 30,1.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 183 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 185 + type: LightTube + components: + - parent: 186 + type: Transform + - anchored: False + type: Collidable +- uid: 186 + type: Poweredlight + components: + - parent: 216 + pos: 31.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 185 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 187 + type: solid_wall + components: + - parent: 216 + pos: 6.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 188 + type: solid_wall + components: + - parent: 216 + pos: 5.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 189 + type: Table + components: + - parent: 216 + pos: 24.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 190 + type: Table + components: + - parent: 216 + pos: 23.5,-5.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 191 + type: LightTube + components: + - parent: 192 + type: Transform + - anchored: False + type: Collidable +- uid: 192 + type: Poweredlight + components: + - parent: 216 + pos: 16.5,-6 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 191 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 193 + type: LightTube + components: + - parent: 194 + type: Transform + - anchored: False + type: Collidable +- uid: 194 + type: Poweredlight + components: + - parent: 216 + pos: 22,9.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 193 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 195 + type: LightTube + components: + - parent: 196 + type: Transform + - anchored: False + type: Collidable +- uid: 196 + type: Poweredlight + components: + - parent: 216 + pos: 14,9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 195 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 197 + type: solid_wall + components: + - parent: 216 + pos: 8.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 198 + type: LightTube + components: + - parent: 199 + type: Transform + - anchored: False + type: Collidable +- uid: 199 + type: Poweredlight + components: + - parent: 216 + pos: 13.5,3 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 198 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 200 + type: LightTube + components: + - parent: 201 + type: Transform + - anchored: False + type: Collidable +- uid: 201 + type: Poweredlight + components: + - parent: 216 + pos: 22.5,3 + rot: -1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 200 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 202 + type: LightTube + components: + - parent: 203 + type: Transform + - anchored: False + type: Collidable +- uid: 203 + type: Poweredlight + components: + - parent: 216 + pos: 17.5,4 + rot: 1.5707963267948966 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 202 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 204 + type: solid_wall + components: + - parent: 216 + pos: 7.5,2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 205 + type: solid_wall + components: + - parent: 216 + pos: 8.5,0.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 206 + type: Airlock + components: + - parent: 216 + pos: 13.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 207 + type: Airlock + components: + - parent: 216 + pos: 4.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 208 + type: Airlock + components: + - parent: 216 + pos: 1.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 209 + type: Poweredlight + components: + - parent: 216 + pos: 8,-1.5 + rot: 3.141592653589793 rad + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 306 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 210 + type: solid_wall + components: + - parent: 216 + pos: 8.5,1.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 211 + type: Beaker + components: + - parent: 216 + pos: 25.291822,10.667244 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 212 + type: Beaker + components: + - parent: 216 + pos: 24.541822,10.635994 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 213 + type: Beaker + components: + - parent: 216 + pos: 26.416822,10.651619 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 214 + type: AirlockMedicalGlass + components: + - parent: 216 + pos: 26.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 215 + type: AirlockMedicalGlass + components: + - parent: 216 + pos: 20.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 216 components: - parent: null type: Transform - index: 0 type: MapGrid -- uid: 1 +- uid: 217 type: LaserGun components: - - parent: 0 + - parent: 216 pos: -1.47174,4.550247 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - startingCharge: 1000 type: PowerCell - containers: BatteryBarrel-powercell-container: entities: - - 969 + - 383 type: Content.Server.GameObjects.ContainerSlot BatteryBarrel-ammo-container: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 2 +- uid: 218 type: LaserGun components: - - parent: 0 + - parent: 216 pos: -0.6748645,4.487747 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - startingCharge: 1000 type: PowerCell - containers: BatteryBarrel-powercell-container: entities: - - 970 + - 384 type: Content.Server.GameObjects.ContainerSlot BatteryBarrel-ammo-container: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 3 +- uid: 219 type: Brutepack components: - - parent: 0 + - parent: 216 pos: -2.106966,-1.457896 rot: -1.5707963267949 rad type: Transform -- uid: 4 + - anchored: False + type: Collidable +- uid: 220 type: Ointment components: - - parent: 0 + - parent: 216 pos: -1.481966,-1.317271 rot: -1.5707963267949 rad type: Transform -- uid: 5 + - anchored: False + type: Collidable +- uid: 221 type: Spear components: - - parent: 0 + - parent: 216 pos: -4.144312,7.499083 rot: -1.5707963267949 rad type: Transform -- uid: 6 + - anchored: False + type: Collidable +- uid: 222 type: Spear components: - - parent: 0 + - parent: 216 pos: -1.238062,7.436583 rot: -1.5707963267949 rad type: Transform -- uid: 7 + - anchored: False + type: Collidable +- uid: 223 type: PowerCellSmallHigh components: - - parent: 0 + - parent: 216 pos: -2.67511,-10.351 rot: -1.5707963267949 rad type: Transform - - startingCharge: 1000 - type: PowerCell -- uid: 8 + - anchored: False + type: Collidable +- uid: 224 type: PowerCellSmallHigh components: - - parent: 0 + - parent: 216 pos: -2.55011,-10.6635 rot: -1.5707963267949 rad type: Transform - - startingCharge: 1000 - type: PowerCell -- uid: 9 + - anchored: False + type: Collidable +- uid: 225 type: OuterclothingVest components: - - parent: 0 + - parent: 216 pos: 1.412994,7.507263 rot: -1.5707963267949 rad type: Transform -- uid: 10 + - anchored: False + type: Collidable +- uid: 226 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 11 + - flags: + - None + type: Destructible +- uid: 227 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 12 + - flags: + - None + type: Destructible +- uid: 228 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 13 + - flags: + - None + type: Destructible +- uid: 229 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-2.5 rot: -1.5707963267949 rad type: Transform -- uid: 14 + - flags: + - None + type: Destructible +- uid: 230 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 15 + - flags: + - None + type: Destructible +- uid: 231 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 0.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 16 + - flags: + - None + type: Destructible +- uid: 232 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -0.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 17 + - flags: + - None + type: Destructible +- uid: 233 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 3.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 18 + - flags: + - None + type: Destructible +- uid: 234 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 19 + - flags: + - None + type: Destructible +- uid: 235 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 20 + - flags: + - None + type: Destructible +- uid: 236 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-11.5 rot: -1.5707963267949 rad type: Transform -- uid: 21 + - flags: + - None + type: Destructible +- uid: 237 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-12.5 rot: -1.5707963267949 rad type: Transform -- uid: 22 + - flags: + - None + type: Destructible +- uid: 238 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-13.5 rot: -1.5707963267949 rad type: Transform -- uid: 23 + - flags: + - None + type: Destructible +- uid: 239 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 2.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 24 + - flags: + - None + type: Destructible +- uid: 240 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 1.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 25 + - flags: + - None + type: Destructible +- uid: 241 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -1.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 26 + - flags: + - None + type: Destructible +- uid: 242 type: PoweredSmallLight components: - - parent: 0 + - parent: 216 pos: -4.5,-5 rot: 1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 30 + - 246 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 27 +- uid: 243 type: MetalStack components: - - parent: 0 + - parent: 216 pos: -15.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 28 - type: Wire + - anchored: False + type: Collidable +- uid: 244 + type: AirlockMedicalGlass components: - - parent: 0 - pos: 8.5,-8.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 16.5,3.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 29 + - flags: + - None + type: Destructible +- uid: 245 type: PoweredSmallLight components: - - parent: 0 + - parent: 216 pos: 0.5,-5 rot: 1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 170 + - 385 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 30 +- uid: 246 type: LightBulb components: - - parent: 26 + - parent: 242 type: Transform -- uid: 31 - type: Wire + - anchored: False + type: Collidable +- uid: 247 + type: AirlockMedicalGlass components: - - parent: 0 - pos: -6.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 15.5,3.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 32 + - flags: + - None + type: Destructible +- uid: 248 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-9.5 rot: -1.5707963267949 rad type: Transform -- uid: 33 + - flags: + - None + type: Destructible +- uid: 249 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 34 + - flags: + - None + type: Destructible +- uid: 250 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: -12.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 35 + - flags: + - None + type: Destructible +- uid: 251 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 36 + - flags: + - None + type: Destructible +- uid: 252 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 37 + - flags: + - None + type: Destructible +- uid: 253 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 38 + - flags: + - None + type: Destructible +- uid: 254 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-2.5 rot: -1.5707963267949 rad type: Transform -- uid: 39 + - flags: + - None + type: Destructible +- uid: 255 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 40 + - flags: + - None + type: Destructible +- uid: 256 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -3.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 41 + - flags: + - None + type: Destructible +- uid: 257 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 1.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 42 + - flags: + - None + type: Destructible +- uid: 258 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 0.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 43 + - flags: + - None + type: Destructible +- uid: 259 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -0.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 44 + - flags: + - None + type: Destructible +- uid: 260 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -1.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 45 + - flags: + - None + type: Destructible +- uid: 261 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -2.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 46 + - flags: + - None + type: Destructible +- uid: 262 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -3.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 47 + - flags: + - None + type: Destructible +- uid: 263 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -4.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 48 + - flags: + - None + type: Destructible +- uid: 264 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -5.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 49 + - flags: + - None + type: Destructible +- uid: 265 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -6.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 50 + - flags: + - None + type: Destructible +- uid: 266 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 51 + - flags: + - None + type: Destructible +- uid: 267 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 5.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 52 + - flags: + - None + type: Destructible +- uid: 268 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 53 + - flags: + - None + type: Destructible +- uid: 269 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 54 + - flags: + - None + type: Destructible +- uid: 270 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -2.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 55 + - flags: + - None + type: Destructible +- uid: 271 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -6.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 56 + - flags: + - None + type: Destructible +- uid: 272 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -5.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 57 + - flags: + - None + type: Destructible +- uid: 273 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -4.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 58 + - flags: + - None + type: Destructible +- uid: 274 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 59 + - flags: + - None + type: Destructible +- uid: 275 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-11.5 rot: -1.5707963267949 rad type: Transform -- uid: 60 + - flags: + - None + type: Destructible +- uid: 276 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-12.5 rot: -1.5707963267949 rad type: Transform -- uid: 61 + - flags: + - None + type: Destructible +- uid: 277 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-13.5 rot: -1.5707963267949 rad type: Transform -- uid: 62 + - flags: + - None + type: Destructible +- uid: 278 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 63 + - flags: + - None + type: Destructible +- uid: 279 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 5.5,-14.5 rot: -1.5707963267949 rad type: Transform -- uid: 64 + - flags: + - None + type: Destructible +- uid: 280 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 65 + - flags: + - None + type: Destructible +- uid: 281 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 66 + - flags: + - None + type: Destructible +- uid: 282 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -8.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 67 + - flags: + - None + type: Destructible +- uid: 283 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -9.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 68 + - flags: + - None + type: Destructible +- uid: 284 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 69 + - flags: + - None + type: Destructible +- uid: 285 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 70 + - flags: + - None + type: Destructible +- uid: 286 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -6.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 71 +- uid: 287 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -8.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 72 +- uid: 288 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 5.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 73 + - flags: + - None + type: Destructible +- uid: 289 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 5.5,-9.5 rot: -1.5707963267949 rad type: Transform -- uid: 74 + - flags: + - None + type: Destructible +- uid: 290 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-9.5 rot: -1.5707963267949 rad type: Transform -- uid: 75 + - flags: + - None + type: Destructible +- uid: 291 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 76 + - flags: + - None + type: Destructible +- uid: 292 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 4.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 77 +- uid: 293 type: LargeBeaker components: - - parent: 0 + - parent: 216 pos: 23.494947,7.0422435 rot: -1.5707963267948966 rad type: Transform -- uid: 78 + - anchored: False + type: Collidable +- uid: 294 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 7.5,-9.5 rot: -1.5707963267949 rad type: Transform -- uid: 79 + - flags: + - None + type: Destructible +- uid: 295 type: AirlockExternal components: - - parent: 0 + - parent: 216 pos: 7.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 80 + - flags: + - None + type: Destructible +- uid: 296 type: AirlockExternal components: - - parent: 0 + - parent: 216 pos: 5.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 81 + - flags: + - None + type: Destructible +- uid: 297 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: -7.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 82 + - flags: + - None + type: Destructible +- uid: 298 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: 3.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 83 + - flags: + - None + type: Destructible +- uid: 299 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: 2.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 84 + - flags: + - None + type: Destructible +- uid: 300 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 85 + - flags: + - None + type: Destructible +- uid: 301 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 6.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 86 + - flags: + - None + type: Destructible +- uid: 302 type: Table components: - - parent: 0 + - parent: 216 pos: -3.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 87 + - flags: + - None + type: Destructible +- uid: 303 type: Table components: - - parent: 0 + - parent: 216 pos: -2.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 88 + - flags: + - None + type: Destructible +- uid: 304 type: Table components: - - parent: 0 + - parent: 216 pos: -1.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 89 + - flags: + - None + type: Destructible +- uid: 305 type: Table components: - - parent: 0 + - parent: 216 pos: -0.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 90 - type: WirelessMachine + - flags: + - None + type: Destructible +- uid: 306 + type: LightTube components: - - parent: 0 - pos: 5.5,-5.5 - rot: -1.5707963267949 rad + - parent: 209 type: Transform -- uid: 91 + - anchored: False + type: Collidable +- uid: 307 type: CrateGeneric components: - - parent: 0 + - parent: 216 pos: 5.5,-6.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: storagebase: type: Robust.Server.GameObjects.Components.Container.Container EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 92 - type: Wire +- uid: 308 + type: Table components: - - parent: 0 - pos: -6.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 23.5,5.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 93 - type: Wire + - flags: + - None + type: Destructible +- uid: 309 + type: Table components: - - parent: 0 - pos: -7.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 23.5,6.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 94 - type: Wire - components: - - parent: 0 - pos: -8.5,-6.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 95 - type: Wire - components: - - parent: 0 - pos: -8.5,-5.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 96 - type: Wire - components: - - parent: 0 - pos: -8.5,-4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 97 - type: Wire - components: - - parent: 0 - pos: -8.5,-3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 98 - type: Wire - components: - - parent: 0 - pos: -8.5,-2.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 99 - type: Wire - components: - - parent: 0 - pos: -8.5,-1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 100 - type: Wire - components: - - parent: 0 - pos: -6.5,-7.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 101 - type: Wire - components: - - parent: 0 - pos: -6.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 102 - type: Wire - components: - - parent: 0 - pos: -6.5,-9.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 103 - type: Wire - components: - - parent: 0 - pos: -6.5,-10.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 104 - type: Wire - components: - - parent: 0 - pos: 4.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 105 - type: Wire - components: - - parent: 0 - pos: 4.5,-9.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 106 - type: Wire - components: - - parent: 0 - pos: 4.5,-10.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 107 - type: Wire - components: - - parent: 0 - pos: 4.5,-11.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 108 - type: Wire - components: - - parent: 0 - pos: 5.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 109 - type: Wire - components: - - parent: 0 - pos: 6.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 110 - type: Wire - components: - - parent: 0 - pos: 7.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 111 + - flags: + - None + type: Destructible +- uid: 310 type: Catwalk components: - - parent: 0 + - parent: 216 + pos: 12.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 311 + type: Catwalk + components: + - parent: 216 + pos: 5.5,10.5 + rot: -1.5707963267948966 rad + type: Transform +- uid: 312 + type: solid_wall + components: + - parent: 216 + pos: 1.5,14.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 313 + type: solid_wall + components: + - parent: 216 + pos: 1.5,13.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 314 + type: solid_wall + components: + - parent: 216 + pos: 1.5,12.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 315 + type: solid_wall + components: + - parent: 216 + pos: -7.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 316 + type: solid_wall + components: + - parent: 216 + pos: -6.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 317 + type: solid_wall + components: + - parent: 216 + pos: -5.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 318 + type: solid_wall + components: + - parent: 216 + pos: -4.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 319 + type: solid_wall + components: + - parent: 216 + pos: -3.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 320 + type: solid_wall + components: + - parent: 216 + pos: -2.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 321 + type: solid_wall + components: + - parent: 216 + pos: -1.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 322 + type: solid_wall + components: + - parent: 216 + pos: -0.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 323 + type: solid_wall + components: + - parent: 216 + pos: 0.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 324 + type: solid_wall + components: + - parent: 216 + pos: 1.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 325 + type: solid_wall + components: + - parent: 216 + pos: 1.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 326 + type: solid_wall + components: + - parent: 216 + pos: 4.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 327 + type: Catwalk + components: + - parent: 216 pos: 2.5,-11.5 rot: -1.5707963267949 rad type: Transform -- uid: 112 +- uid: 328 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -4.5,-11.5 rot: -1.5707963267949 rad type: Transform -- uid: 113 - type: Wire +- uid: 329 + type: solid_wall components: - - parent: 0 - pos: 3.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 12.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 114 - type: Wire + - flags: + - None + type: Destructible +- uid: 330 + type: solid_wall components: - - parent: 0 - pos: 2.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 11.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 115 - type: Wire + - flags: + - None + type: Destructible +- uid: 331 + type: solid_wall components: - - parent: 0 - pos: 1.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 10.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 116 - type: Wire + - flags: + - None + type: Destructible +- uid: 332 + type: solid_wall components: - - parent: 0 - pos: 0.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 9.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 117 - type: Wire + - flags: + - None + type: Destructible +- uid: 333 + type: solid_wall components: - - parent: 0 - pos: -0.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 8.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 118 - type: Wire + - flags: + - None + type: Destructible +- uid: 334 + type: solid_wall components: - - parent: 0 - pos: -1.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 7.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 119 - type: Wire + - flags: + - None + type: Destructible +- uid: 335 + type: solid_wall components: - - parent: 0 - pos: -2.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 6.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 120 - type: Wire + - flags: + - None + type: Destructible +- uid: 336 + type: solid_wall components: - - parent: 0 - pos: -3.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 5.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 121 - type: Wire + - flags: + - None + type: Destructible +- uid: 337 + type: solid_wall components: - - parent: 0 - pos: -4.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 4.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 122 - type: Wire + - flags: + - None + type: Destructible +- uid: 338 + type: solid_wall components: - - parent: 0 - pos: -5.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 5.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 123 - type: Wire + - flags: + - None + type: Destructible +- uid: 339 + type: solid_wall components: - - parent: 0 - pos: 1.5,-12.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 6.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 124 - type: Wire + - flags: + - None + type: Destructible +- uid: 340 + type: solid_wall components: - - parent: 0 - pos: 1.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 7.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 125 - type: Wire + - flags: + - None + type: Destructible +- uid: 341 + type: solid_wall components: - - parent: 0 - pos: 2.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 8.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 126 - type: Wire + - flags: + - None + type: Destructible +- uid: 342 + type: solid_wall components: - - parent: 0 - pos: -2.5,-12.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 9.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 127 - type: Wire + - flags: + - None + type: Destructible +- uid: 343 + type: solid_wall components: - - parent: 0 - pos: -2.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 10.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 128 - type: Wire + - flags: + - None + type: Destructible +- uid: 344 + type: solid_wall components: - - parent: 0 - pos: -3.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 11.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 129 - type: Wire + - flags: + - None + type: Destructible +- uid: 345 + type: solid_wall components: - - parent: 0 - pos: -1.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 12.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 130 - type: Generator + - flags: + - None + type: Destructible +- uid: 346 + type: MetalStack components: - - parent: 0 - pos: 2.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 9.435405,21.503613 type: Transform -- uid: 131 - type: Generator + - anchored: False + type: Collidable +- uid: 347 + type: MetalStack components: - - parent: 0 - pos: 1.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 9.654155,21.628613 type: Transform -- uid: 132 - type: SmesDry + - anchored: False + type: Collidable +- uid: 348 + type: MagazinePistolSmg components: - - parent: 0 - pos: -1.5,-13.5 - rot: -1.5707963267949 rad + - parent: 484 type: Transform - - supplyRate: 1000 - type: PowerSupplier -- uid: 133 - type: SmesDry + - anchored: False + type: Collidable + - containers: + RangedMagazine-magazine: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 349 + type: MagazinePistolSmg components: - - parent: 0 - pos: -2.5,-13.5 - rot: -1.5707963267949 rad + - parent: 485 type: Transform - - supplyRate: 1000 - type: PowerSupplier -- uid: 134 - type: SmesDry - components: - - parent: 0 - pos: -3.5,-13.5 - rot: -1.5707963267949 rad - type: Transform - - supplyRate: 1000 - type: PowerSupplier -- uid: 135 + - anchored: False + type: Collidable + - containers: + RangedMagazine-magazine: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 350 type: Multitool components: - - parent: 0 + - parent: 216 pos: -1.249865,-10.43489 rot: -1.5707963267949 rad type: Transform -- uid: 136 + - anchored: False + type: Collidable +- uid: 351 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -2.5,-12.5 rot: -1.5707963267949 rad type: Transform -- uid: 137 +- uid: 352 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 1.5,-12.5 rot: -1.5707963267949 rad type: Transform -- uid: 138 +- uid: 353 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -1.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 139 +- uid: 354 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: 0.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 140 +- uid: 355 type: Table components: - - parent: 0 + - parent: 216 pos: -3.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 141 + - flags: + - None + type: Destructible +- uid: 356 type: Table components: - - parent: 0 + - parent: 216 pos: -2.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 142 + - flags: + - None + type: Destructible +- uid: 357 type: Table components: - - parent: 0 + - parent: 216 pos: -1.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 143 + - flags: + - None + type: Destructible +- uid: 358 type: Table components: - - parent: 0 + - parent: 216 pos: -0.5,-10.5 rot: -1.5707963267949 rad type: Transform -- uid: 144 + - flags: + - None + type: Destructible +- uid: 359 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 145 + - flags: + - None + type: Destructible +- uid: 360 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -3.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 146 +- uid: 361 type: OuterclothingVest components: - - parent: 0 + - parent: 216 pos: 0.5223687,7.507263 rot: -1.5707963267949 rad type: Transform -- uid: 147 + - anchored: False + type: Collidable +- uid: 362 type: LockerGeneric components: - - parent: 0 + - parent: 216 pos: 1.5,-10.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: storagebase: type: Robust.Server.GameObjects.Components.Container.Container @@ -1195,37 +3867,46 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 148 +- uid: 363 type: MedkitFilled components: - - parent: 0 + - parent: 216 pos: -3.209215,-1.486604 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - containers: storagebase: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 149 +- uid: 364 type: MedkitFilled components: - - parent: 0 + - parent: 216 pos: -4.146715,-1.408479 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - containers: storagebase: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 150 +- uid: 365 type: LockerGeneric components: - - parent: 0 + - parent: 216 pos: 0.5,-10.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: storagebase: type: Robust.Server.GameObjects.Components.Container.Container @@ -1234,31 +3915,33 @@ entities: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 151 +- uid: 366 type: FireExtinguisher components: - - parent: 0 + - parent: 216 pos: -1.297692,-5.396082 rot: -1.5707963267949 rad type: Transform -- uid: 152 + - anchored: False + type: Collidable +- uid: 367 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -0.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 153 +- uid: 368 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -5.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 154 +- uid: 369 type: ComputerSupplyRequest components: - - parent: 0 + - parent: 216 pos: 0.5,-5.5 rot: -1.5707963267949 rad type: Transform @@ -1267,10 +3950,10 @@ entities: - cargo.flashlight - cargo.Medkit type: GalacticMarket -- uid: 155 +- uid: 370 type: ComputerSupplyOrdering components: - - parent: 0 + - parent: 216 pos: 0.5,0.5 rot: -1.5707963267949 rad type: Transform @@ -1279,6066 +3962,3636 @@ entities: - cargo.flashlight - cargo.Medkit type: GalacticMarket -- uid: 156 +- uid: 371 type: Table components: - - parent: 0 + - parent: 216 pos: -4.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 157 + - flags: + - None + type: Destructible +- uid: 372 type: Table components: - - parent: 0 + - parent: 216 pos: -1.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 158 + - flags: + - None + type: Destructible +- uid: 373 type: Table components: - - parent: 0 + - parent: 216 pos: -2.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 159 + - flags: + - None + type: Destructible +- uid: 374 type: Table components: - - parent: 0 + - parent: 216 pos: -3.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 160 - type: WirelessMachine + - flags: + - None + type: Destructible +- uid: 375 + type: GravityGenerator components: - - parent: 0 - pos: -6.5,0.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 6.5,0.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 161 + - flags: + - None + type: Breakable +- uid: 376 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 4.5,-13.5 rot: -1.5707963267949 rad type: Transform -- uid: 162 +- uid: 377 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -5.5,-13.5 rot: -1.5707963267949 rad type: Transform -- uid: 163 - type: Wire +- uid: 378 + type: solid_wall components: - - parent: 0 - pos: -6.5,-12.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 164 - type: Wire + - flags: + - None + type: Destructible +- uid: 379 + type: solid_wall components: - - parent: 0 - pos: -6.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 14.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 165 - type: Wire + - flags: + - None + type: Destructible +- uid: 380 + type: solid_wall components: - - parent: 0 - pos: 5.5,-11.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,9.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 166 - type: Wire + - flags: + - None + type: Destructible +- uid: 381 + type: solid_wall components: - - parent: 0 - pos: 5.5,-12.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 167 - type: Wire + - flags: + - None + type: Destructible +- uid: 382 + type: solid_wall components: - - parent: 0 - pos: 5.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,7.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 168 - type: WiredMachine + - flags: + - None + type: Destructible +- uid: 383 + type: PowerCellSmallStandard components: - - parent: 0 - pos: 5.5,-13.5 - rot: -1.5707963267949 rad + - parent: 217 type: Transform -- uid: 169 - type: WiredMachine + - anchored: False + type: Collidable +- uid: 384 + type: PowerCellSmallStandard components: - - parent: 0 - pos: -6.5,-13.5 - rot: -1.5707963267949 rad + - parent: 218 type: Transform -- uid: 170 + - anchored: False + type: Collidable +- uid: 385 type: LightBulb components: - - parent: 29 + - parent: 245 type: Transform -- uid: 171 + - anchored: False + type: Collidable +- uid: 386 type: WallLight components: - - parent: 0 + - parent: 216 pos: -0.5,-14 rot: 1.5707963267949 rad type: Transform -- uid: 172 +- uid: 387 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -9.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 173 +- uid: 388 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -0.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 174 +- uid: 389 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -5.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 175 +- uid: 390 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -0.5,-2.5 rot: -1.5707963267949 rad type: Transform -- uid: 176 +- uid: 391 type: SpawnPointLatejoin components: - - parent: 0 + - parent: 216 pos: -5.5,-2.5 rot: -1.5707963267949 rad type: Transform -- uid: 177 +- uid: 392 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 9.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 178 +- uid: 393 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 9.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 179 +- uid: 394 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 9.5,2.5 rot: -1.5707963267949 rad type: Transform -- uid: 180 +- uid: 395 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 9.5,3.5 rot: -1.5707963267949 rad type: Transform -- uid: 181 +- uid: 396 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 9.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 182 +- uid: 397 type: VendingMachineYouTool components: - - parent: 0 + - parent: 216 pos: -11.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 183 - type: Generator + - flags: + - None + type: Breakable +- uid: 398 + type: CableStack1 components: - - parent: 0 - pos: 0.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 10.561831,21.767809 type: Transform -- uid: 184 - type: Wire + - anchored: False + type: Collidable +- uid: 399 + type: solid_wall components: - - parent: 0 - pos: 3.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,6.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 185 - type: Wire + - flags: + - None + type: Destructible +- uid: 400 + type: solid_wall components: - - parent: 0 - pos: 0.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 13.5,5.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 186 - type: Generator + - flags: + - None + type: Destructible +- uid: 401 + type: GlassStack components: - - parent: 0 - pos: 3.5,-13.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 8.57603,21.566113 type: Transform -- uid: 187 + - anchored: False + type: Collidable +- uid: 402 type: Table components: - - parent: 0 + - parent: 216 pos: -6.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 188 + - flags: + - None + type: Destructible +- uid: 403 type: Table components: - - parent: 0 + - parent: 216 pos: -5.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 189 + - flags: + - None + type: Destructible +- uid: 404 type: Table components: - - parent: 0 + - parent: 216 pos: -4.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 190 + - flags: + - None + type: Destructible +- uid: 405 type: Table components: - - parent: 0 + - parent: 216 pos: -3.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 191 + - flags: + - None + type: Destructible +- uid: 406 type: Table components: - - parent: 0 + - parent: 216 pos: -2.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 192 + - flags: + - None + type: Destructible +- uid: 407 type: Table components: - - parent: 0 + - parent: 216 pos: -1.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 193 + - flags: + - None + type: Destructible +- uid: 408 type: Table components: - - parent: 0 + - parent: 216 pos: -0.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 194 + - flags: + - None + type: Destructible +- uid: 409 type: Table components: - - parent: 0 + - parent: 216 pos: 0.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 195 + - flags: + - None + type: Destructible +- uid: 410 type: Table components: - - parent: 0 + - parent: 216 pos: 1.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 196 + - flags: + - None + type: Destructible +- uid: 411 type: Table components: - - parent: 0 + - parent: 216 pos: -4.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 197 + - flags: + - None + type: Destructible +- uid: 412 type: Table components: - - parent: 0 + - parent: 216 pos: -3.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 198 + - flags: + - None + type: Destructible +- uid: 413 type: Table components: - - parent: 0 + - parent: 216 pos: -2.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 199 + - flags: + - None + type: Destructible +- uid: 414 type: Table components: - - parent: 0 + - parent: 216 pos: -1.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 200 + - flags: + - None + type: Destructible +- uid: 415 type: Table components: - - parent: 0 + - parent: 216 pos: -0.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 201 + - flags: + - None + type: Destructible +- uid: 416 type: AirlockMedicalGlass components: - - parent: 0 + - parent: 216 pos: 26.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 202 + - flags: + - None + type: Destructible +- uid: 417 type: AirlockMedicalGlass components: - - parent: 0 + - parent: 216 pos: 28.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 203 + - flags: + - None + type: Destructible +- uid: 418 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -9.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 204 - type: Wire - components: - - parent: 0 - pos: -8.5,-0.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 205 - type: Wire - components: - - parent: 0 - pos: -8.5,0.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 206 - type: Wire - components: - - parent: 0 - pos: -9.5,0.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 207 - type: Wire - components: - - parent: 0 - pos: -9.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 208 +- uid: 419 type: solid_wall components: - - parent: 0 + - parent: 216 + pos: 13.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 420 + type: solid_wall + components: + - parent: 216 + pos: 25.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 421 + type: solid_wall + components: + - parent: 216 + pos: 23.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 422 + type: solid_wall + components: + - parent: 216 + pos: 17.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 423 + type: solid_wall + components: + - parent: 216 pos: -10.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 209 + - flags: + - None + type: Destructible +- uid: 424 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -10.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 210 + - flags: + - None + type: Destructible +- uid: 425 type: Airlock components: - - parent: 0 + - parent: 216 pos: -9.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 211 + - flags: + - None + type: Destructible +- uid: 426 type: LightTube components: - - parent: 212 + - parent: 427 type: Transform -- uid: 212 + - anchored: False + type: Collidable +- uid: 427 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: 0.5,1 rot: -1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 211 + - 426 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 213 +- uid: 428 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: -3.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 214 + - flags: + - None + type: Destructible +- uid: 429 type: ChairOfficeDark components: - - parent: 0 + - parent: 216 pos: 0.5,-6.5 rot: 1.5707963267949 rad type: Transform -- uid: 215 + - flags: + - None + type: Destructible +- uid: 430 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -6.5,1 rot: -1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 316 + - 531 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 216 +- uid: 431 type: MetalStack components: - - parent: 0 + - parent: 216 pos: -15.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 217 + - anchored: False + type: Collidable +- uid: 432 type: Stool components: - - parent: 0 + - parent: 216 pos: -1.5,-9.5 rot: 1.5707963267949 rad type: Transform -- uid: 218 + - flags: + - None + type: Destructible +- uid: 433 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: -3.5,-2.5 rot: 1.5707963267949 rad type: Transform -- uid: 219 + - flags: + - None + type: Destructible +- uid: 434 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: -2.5,-2.5 rot: 1.5707963267949 rad type: Transform -- uid: 220 + - flags: + - None + type: Destructible +- uid: 435 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: -2.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 221 + - flags: + - None + type: Destructible +- uid: 436 type: Stool components: - - parent: 0 + - parent: 216 pos: -2.5,-6.5 rot: 1.5707963267949 rad type: Transform -- uid: 222 + - flags: + - None + type: Destructible +- uid: 437 type: LightBulb components: - - parent: 251 + - parent: 466 type: Transform -- uid: 223 - type: APC - components: - - parent: 0 - pos: -6.5,-7.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 224 - type: Wire - components: - - parent: 0 - pos: -9.5,2.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 225 - type: Wire - components: - - parent: 0 - pos: -9.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 226 - type: Wire - components: - - parent: 0 - pos: -8.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 227 - type: Wire - components: - - parent: 0 - pos: -7.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 228 - type: Wire - components: - - parent: 0 - pos: -6.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 229 - type: Wire - components: - - parent: 0 - pos: -5.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 230 - type: Wire - components: - - parent: 0 - pos: -4.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 231 - type: Wire - components: - - parent: 0 - pos: -3.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 232 - type: Wire - components: - - parent: 0 - pos: -2.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 233 - type: Wire - components: - - parent: 0 - pos: -1.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 234 - type: Wire - components: - - parent: 0 - pos: -0.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 235 - type: Wire - components: - - parent: 0 - pos: 0.5,3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 236 - type: LargeBeaker - components: - - parent: 0 - pos: 23.510572,7.7141185 - rot: -1.5707963267948966 rad - type: Transform -- uid: 237 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-0.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 238 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 239 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-2.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 240 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 241 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 242 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-5.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 243 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-6.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 244 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-7.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 245 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 246 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-9.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 247 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-10.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 248 - type: Catwalk - components: - - parent: 0 - pos: 9.5,-11.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 249 - type: Catwalk - components: - - parent: 0 - pos: 8.5,-8.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 250 - type: APC - components: - - parent: 0 - pos: 4.5,-9.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 251 - type: PoweredSmallLight - components: - - parent: 0 - pos: 5,-9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 222 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 252 - type: solid_wall - components: - - parent: 0 - pos: 7.5,-7.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 253 - type: ToolboxElectricalFilled - components: - - parent: 0 - pos: -0.8099712,-5.21454 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 254 - type: ToolboxElectricalFilled - components: - - parent: 0 - pos: -0.5597038,-5.679647 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 255 - type: FlashlightLantern - components: - - parent: 0 - pos: -1.934832,-5.154238 - rot: -1.5707963267949 rad - type: Transform - - containers: - flashlight_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 256 - type: FlashlightLantern - components: - - parent: 0 - pos: -2.017696,-5.71715 - rot: -1.5707963267949 rad - type: Transform - - containers: - flashlight_cell_container: - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 257 - type: Crowbar - components: - - parent: 0 - pos: -2.861032,-5.524786 - rot: -1.5707963267949 rad - type: Transform -- uid: 258 - type: UniformEngineering - components: - - parent: 0 - pos: -0.6474335,-10.27245 - rot: -1.5707963267949 rad - type: Transform -- uid: 259 - type: GasMaskClothing - components: - - parent: 0 - pos: -0.2880585,-10.69432 - rot: -1.5707963267949 rad - type: Transform -- uid: 260 - type: OuterclothingVest - components: - - parent: 0 - pos: -0.9130585,-10.66307 - rot: -1.5707963267949 rad - type: Transform -- uid: 261 - type: UtilityBeltClothingFilled - components: - - parent: 0 - pos: -1.895102,-10.33495 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 262 - type: UtilityBeltClothingFilled - components: - - parent: 0 - pos: -1.770102,-10.63182 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 263 - type: MagazinePistolSmg - components: - - parent: 0 - pos: -6.605512,7.638151 - rot: -1.5707963267949 rad - type: Transform - - containers: - magazine_bullet_container: - type: Robust.Server.GameObjects.Components.Container.Container - RangedMagazine-magazine: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 264 - type: MagazinePistolSmg - components: - - parent: 0 - pos: -6.339887,7.669401 - rot: -1.5707963267949 rad - type: Transform - - containers: - magazine_bullet_container: - type: Robust.Server.GameObjects.Components.Container.Container - RangedMagazine-magazine: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 265 - type: MagazinePistolSmg - components: - - parent: 0 - pos: -6.027387,7.622526 - rot: -1.5707963267949 rad - type: Transform - - containers: - magazine_bullet_container: - type: Robust.Server.GameObjects.Components.Container.Container - RangedMagazine-magazine: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 266 - type: BackpackClothing - components: - - parent: 0 - pos: -5.089887,7.591276 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 267 - type: BackpackClothing - components: - - parent: 0 - pos: -4.683637,7.606901 - rot: -1.5707963267949 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 268 - type: GlovesBlack - components: - - parent: 0 - pos: -3.386762,7.466276 - rot: -1.5707963267949 rad - type: Transform -- uid: 269 - type: SmgC20r - components: - - parent: 0 - pos: -2.524035,7.579326 - rot: -1.5707963267949 rad - type: Transform - - containers: - ballistics_chamber_0: - type: Content.Server.GameObjects.ContainerSlot - ballistic_gun_magazine: - type: Content.Server.GameObjects.ContainerSlot - MagazineBarrel-chamber: - type: Content.Server.GameObjects.ContainerSlot - MagazineBarrel-magazine: - entities: - - 971 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 270 - type: SmgC20r - components: - - parent: 0 - pos: -1.94591,7.485576 - rot: -1.5707963267949 rad - type: Transform - - containers: - ballistics_chamber_0: - type: Content.Server.GameObjects.ContainerSlot - ballistic_gun_magazine: - type: Content.Server.GameObjects.ContainerSlot - MagazineBarrel-chamber: - type: Content.Server.GameObjects.ContainerSlot - MagazineBarrel-magazine: - entities: - - 972 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 271 - type: solid_wall - components: - - parent: 0 - pos: -10.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 272 - type: solid_wall - components: - - parent: 0 - pos: -11.5,4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 273 - type: solid_wall - components: - - parent: 0 - pos: -10.5,4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 274 - type: solid_wall - components: - - parent: 0 - pos: -9.5,4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 275 - type: solid_wall - components: - - parent: 0 - pos: -8.5,4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 276 - type: solid_wall - components: - - parent: 0 - pos: -7.5,4.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 277 - type: solid_wall - components: - - parent: 0 - pos: -8.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 278 - type: solid_wall - components: - - parent: 0 - pos: -5.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 279 - type: solid_wall - components: - - parent: 0 - pos: -6.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 280 - type: solid_wall - components: - - parent: 0 - pos: -7.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 281 - type: solid_wall - components: - - parent: 0 - pos: -0.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 282 - type: solid_wall - components: - - parent: 0 - pos: 0.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 283 - type: solid_wall - components: - - parent: 0 - pos: 1.5,1.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 284 - type: solid_wall - components: - - parent: 0 - pos: 1.5,0.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 285 - type: solid_wall - components: - - parent: 0 - pos: 1.5,-3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 286 - type: solid_wall - components: - - parent: 0 - pos: 4.5,-3.5 - rot: -1.5707963267949 rad - type: Transform -- uid: 287 + - anchored: False + type: Collidable +- uid: 438 type: WardrobeScience components: - - parent: 0 - pos: 13.5,21.5 + - parent: 216 + pos: 12.5,21.5 rot: -1.5707963267948966 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 288 +- uid: 439 type: solid_wall components: - - parent: 0 + - parent: 216 + pos: 18.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 440 + type: solid_wall + components: + - parent: 216 + pos: 19.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 441 + type: solid_wall + components: + - parent: 216 + pos: 21.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 442 + type: solid_wall + components: + - parent: 216 + pos: 22.5,3.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 443 + type: solid_wall + components: + - parent: 216 + pos: 22.5,4.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 444 + type: solid_wall + components: + - parent: 216 + pos: 22.5,5.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 445 + type: solid_wall + components: + - parent: 216 + pos: 22.5,6.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 446 + type: solid_wall + components: + - parent: 216 + pos: 22.5,7.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 447 + type: solid_wall + components: + - parent: 216 + pos: 22.5,9.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 448 + type: solid_wall + components: + - parent: 216 + pos: 22.5,10.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 449 + type: solid_wall + components: + - parent: 216 + pos: 21.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 450 + type: solid_wall + components: + - parent: 216 + pos: 22.5,11.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 451 + type: LargeBeaker + components: + - parent: 216 + pos: 23.510572,7.7141185 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable +- uid: 452 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-0.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 453 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-1.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 454 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-2.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 455 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-3.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 456 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-4.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 457 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-5.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 458 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-6.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 459 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-7.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 460 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-8.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 461 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-9.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 462 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-10.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 463 + type: Catwalk + components: + - parent: 216 + pos: 9.5,-11.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 464 + type: Catwalk + components: + - parent: 216 + pos: 8.5,-8.5 + rot: -1.5707963267949 rad + type: Transform +- uid: 465 + type: AirlockEngineering + components: + - parent: 216 + pos: 4.5,-2.5 + rot: -1.5707963267948966 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 466 + type: PoweredSmallLight + components: + - parent: 216 + pos: 5,-9.5 + type: Transform + - color: '#FFFFFFFF' + type: PointLight + - flags: + - None + type: Destructible + - containers: + light_bulb: + entities: + - 437 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 467 + type: solid_wall + components: + - parent: 216 + pos: 7.5,-7.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 468 + type: ToolboxElectricalFilled + components: + - parent: 216 + pos: -0.8099712,-5.21454 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 469 + type: ToolboxElectricalFilled + components: + - parent: 216 + pos: -0.5597038,-5.679647 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 470 + type: FlashlightLantern + components: + - parent: 216 + pos: -1.934832,-5.154238 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + flashlight_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 471 + type: FlashlightLantern + components: + - parent: 216 + pos: -2.017696,-5.71715 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + flashlight_cell_container: + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 472 + type: Crowbar + components: + - parent: 216 + pos: -2.861032,-5.524786 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable +- uid: 473 + type: UniformEngineering + components: + - parent: 216 + pos: -0.6474335,-10.27245 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable +- uid: 474 + type: GasMaskClothing + components: + - parent: 216 + pos: -0.2880585,-10.69432 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable +- uid: 475 + type: OuterclothingVest + components: + - parent: 216 + pos: -0.9130585,-10.66307 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable +- uid: 476 + type: UtilityBeltClothingFilled + components: + - parent: 216 + pos: -1.895102,-10.33495 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 477 + type: UtilityBeltClothingFilled + components: + - parent: 216 + pos: -1.770102,-10.63182 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 478 + type: MagazinePistolSmg + components: + - parent: 216 + pos: -6.605512,7.638151 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + magazine_bullet_container: + type: Robust.Server.GameObjects.Components.Container.Container + RangedMagazine-magazine: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 479 + type: MagazinePistolSmg + components: + - parent: 216 + pos: -6.339887,7.669401 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + magazine_bullet_container: + type: Robust.Server.GameObjects.Components.Container.Container + RangedMagazine-magazine: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 480 + type: MagazinePistolSmg + components: + - parent: 216 + pos: -6.027387,7.622526 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + magazine_bullet_container: + type: Robust.Server.GameObjects.Components.Container.Container + RangedMagazine-magazine: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 481 + type: BackpackClothing + components: + - parent: 216 + pos: -5.089887,7.591276 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 482 + type: BackpackClothing + components: + - parent: 216 + pos: -4.683637,7.606901 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable + - containers: + storagebase: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 483 + type: GlovesBlack + components: + - parent: 216 + pos: -3.386762,7.466276 + rot: -1.5707963267949 rad + type: Transform + - anchored: False + type: Collidable +- uid: 484 + type: SmgC20r + components: + - parent: 216 + pos: -2.524035,7.579326 + rot: -1.5707963267949 rad + type: Transform + - maxAngle: 59.99999999999999 + type: MagazineBarrel + - anchored: False + type: Collidable + - containers: + ballistics_chamber_0: + type: Content.Server.GameObjects.ContainerSlot + ballistic_gun_magazine: + type: Content.Server.GameObjects.ContainerSlot + MagazineBarrel-chamber: + type: Content.Server.GameObjects.ContainerSlot + MagazineBarrel-magazine: + entities: + - 348 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 485 + type: SmgC20r + components: + - parent: 216 + pos: -1.94591,7.485576 + rot: -1.5707963267949 rad + type: Transform + - maxAngle: 59.99999999999999 + type: MagazineBarrel + - anchored: False + type: Collidable + - containers: + ballistics_chamber_0: + type: Content.Server.GameObjects.ContainerSlot + ballistic_gun_magazine: + type: Content.Server.GameObjects.ContainerSlot + MagazineBarrel-chamber: + type: Content.Server.GameObjects.ContainerSlot + MagazineBarrel-magazine: + entities: + - 349 + type: Content.Server.GameObjects.ContainerSlot + type: ContainerContainer +- uid: 486 + type: solid_wall + components: + - parent: 216 + pos: -10.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 487 + type: solid_wall + components: + - parent: 216 + pos: -11.5,4.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 488 + type: solid_wall + components: + - parent: 216 + pos: -10.5,4.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 489 + type: solid_wall + components: + - parent: 216 + pos: -9.5,4.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 490 + type: solid_wall + components: + - parent: 216 + pos: -8.5,4.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 491 + type: solid_wall + components: + - parent: 216 + pos: -7.5,4.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 492 + type: solid_wall + components: + - parent: 216 + pos: -8.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 493 + type: solid_wall + components: + - parent: 216 + pos: -5.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 494 + type: solid_wall + components: + - parent: 216 + pos: -6.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 495 + type: solid_wall + components: + - parent: 216 + pos: -7.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 496 + type: solid_wall + components: + - parent: 216 + pos: -0.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 497 + type: solid_wall + components: + - parent: 216 + pos: 0.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 498 + type: solid_wall + components: + - parent: 216 + pos: 1.5,1.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 499 + type: solid_wall + components: + - parent: 216 + pos: 1.5,0.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 500 + type: solid_wall + components: + - parent: 216 + pos: 1.5,-3.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 501 + type: solid_wall + components: + - parent: 216 + pos: 4.5,-3.5 + rot: -1.5707963267949 rad + type: Transform + - flags: + - None + type: Destructible +- uid: 502 + type: WardrobeScience + components: + - parent: 216 + pos: 13.5,21.5 + rot: -1.5707963267948966 rad + type: Transform + - anchored: False + type: Collidable + - IsPlaceable: False + type: PlaceableSurface + - flags: + - None + type: Destructible + - containers: + EntityStorageComponent: + type: Robust.Server.GameObjects.Components.Container.Container + type: ContainerContainer +- uid: 503 + type: solid_wall + components: + - parent: 216 pos: 4.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 289 + - flags: + - None + type: Destructible +- uid: 504 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 290 + - flags: + - None + type: Destructible +- uid: 505 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 291 + - flags: + - None + type: Destructible +- uid: 506 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 292 + - flags: + - None + type: Destructible +- uid: 507 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,2.5 rot: -1.5707963267949 rad type: Transform -- uid: 293 + - flags: + - None + type: Destructible +- uid: 508 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,3.5 rot: -1.5707963267949 rad type: Transform -- uid: 294 + - flags: + - None + type: Destructible +- uid: 509 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 295 + - flags: + - None + type: Destructible +- uid: 510 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 296 + - flags: + - None + type: Destructible +- uid: 511 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,6.5 rot: -1.5707963267949 rad type: Transform -- uid: 297 + - flags: + - None + type: Destructible +- uid: 512 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 298 + - flags: + - None + type: Destructible +- uid: 513 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 4.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 299 + - flags: + - None + type: Destructible +- uid: 514 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 1.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 300 + - flags: + - None + type: Destructible +- uid: 515 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 0.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 301 + - flags: + - None + type: Destructible +- uid: 516 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -0.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 302 + - flags: + - None + type: Destructible +- uid: 517 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -1.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 303 + - flags: + - None + type: Destructible +- uid: 518 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -2.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 304 + - flags: + - None + type: Destructible +- uid: 519 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -3.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 305 + - flags: + - None + type: Destructible +- uid: 520 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -4.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 306 + - flags: + - None + type: Destructible +- uid: 521 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -5.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 307 + - flags: + - None + type: Destructible +- uid: 522 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -6.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 308 + - flags: + - None + type: Destructible +- uid: 523 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,8.5 rot: -1.5707963267949 rad type: Transform -- uid: 309 + - flags: + - None + type: Destructible +- uid: 524 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 310 + - flags: + - None + type: Destructible +- uid: 525 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,6.5 rot: -1.5707963267949 rad type: Transform -- uid: 311 + - flags: + - None + type: Destructible +- uid: 526 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -7.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 312 + - flags: + - None + type: Destructible +- uid: 527 type: GlovesLeather components: - - parent: 0 + - parent: 216 pos: -4.332221,4.64238 rot: -1.5707963267949 rad type: Transform -- uid: 313 + - anchored: False + type: Collidable +- uid: 528 type: GlovesLeather components: - - parent: 0 + - parent: 216 pos: -3.519721,4.64238 rot: -1.5707963267949 rad type: Transform -- uid: 314 + - anchored: False + type: Collidable +- uid: 529 type: GlovesLeather components: - - parent: 0 + - parent: 216 pos: -2.597846,4.61113 rot: -1.5707963267949 rad type: Transform -- uid: 315 + - anchored: False + type: Collidable +- uid: 530 type: LedLightTube components: - - parent: 0 + - parent: 216 pos: -3.511025,-10.35149 rot: -1.5707963267949 rad type: Transform - color: '#EEEEFFFF' type: Sprite -- uid: 316 + - anchored: False + type: Collidable +- uid: 531 type: LightTube components: - - parent: 215 + - parent: 430 type: Transform -- uid: 317 + - anchored: False + type: Collidable +- uid: 532 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -1.5,8 rot: -1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 318 + - 533 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 318 +- uid: 533 type: LightTube components: - - parent: 317 + - parent: 532 type: Transform -- uid: 319 + - anchored: False + type: Collidable +- uid: 534 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: 4,3.5 rot: 3.14159265358979 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 320 + - 535 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 320 +- uid: 535 type: LightTube components: - - parent: 319 + - parent: 534 type: Transform -- uid: 321 + - anchored: False + type: Collidable +- uid: 536 type: WallLight components: - - parent: 0 + - parent: 216 pos: -7,-10.5 type: Transform -- uid: 322 +- uid: 537 type: PoweredSmallLight components: - - parent: 0 + - parent: 216 pos: -10,-5.5 rot: 3.14159265358979 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 323 + - 538 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 323 +- uid: 538 type: LightBulb components: - - parent: 322 + - parent: 537 type: Transform -- uid: 324 + - anchored: False + type: Collidable +- uid: 539 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -15.5,2.5 rot: -1.5707963267949 rad type: Transform -- uid: 325 + - flags: + - None + type: Destructible +- uid: 540 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -15.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 326 + - flags: + - None + type: Destructible +- uid: 541 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -15.5,3.5 rot: -1.5707963267949 rad type: Transform -- uid: 327 + - flags: + - None + type: Destructible +- uid: 542 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -14.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 328 + - flags: + - None + type: Destructible +- uid: 543 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -12.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 329 + - flags: + - None + type: Destructible +- uid: 544 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -15.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 330 + - flags: + - None + type: Destructible +- uid: 545 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -14.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 331 + - flags: + - None + type: Destructible +- uid: 546 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -11.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 332 + - flags: + - None + type: Destructible +- uid: 547 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -14.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 333 + - flags: + - None + type: Destructible +- uid: 548 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -14.5,6.5 rot: -1.5707963267949 rad type: Transform -- uid: 334 + - flags: + - None + type: Destructible +- uid: 549 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -12.5,6.5 rot: -1.5707963267949 rad type: Transform -- uid: 335 + - flags: + - None + type: Destructible +- uid: 550 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -12.5,5.5 rot: -1.5707963267949 rad type: Transform -- uid: 336 + - flags: + - None + type: Destructible +- uid: 551 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 337 + - flags: + - None + type: Destructible +- uid: 552 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 338 + - flags: + - None + type: Destructible +- uid: 553 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 339 + - flags: + - None + type: Destructible +- uid: 554 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 340 + - flags: + - None + type: Destructible +- uid: 555 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-2.5 rot: -1.5707963267949 rad type: Transform -- uid: 341 + - flags: + - None + type: Destructible +- uid: 556 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 342 + - flags: + - None + type: Destructible +- uid: 557 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 343 + - flags: + - None + type: Destructible +- uid: 558 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 344 + - flags: + - None + type: Destructible +- uid: 559 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 345 + - flags: + - None + type: Destructible +- uid: 560 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 346 + - flags: + - None + type: Destructible +- uid: 561 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -16.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 347 + - flags: + - None + type: Destructible +- uid: 562 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -15.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 348 + - flags: + - None + type: Destructible +- uid: 563 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -14.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 349 + - flags: + - None + type: Destructible +- uid: 564 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -13.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 350 + - flags: + - None + type: Destructible +- uid: 565 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -12.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 351 + - flags: + - None + type: Destructible +- uid: 566 type: solid_wall components: - - parent: 0 + - parent: 216 pos: -11.5,-8.5 rot: -1.5707963267949 rad type: Transform -- uid: 352 + - flags: + - None + type: Destructible +- uid: 567 type: AirlockExternal components: - - parent: 0 + - parent: 216 pos: -13.5,4.5 rot: -1.5707963267949 rad type: Transform -- uid: 353 + - flags: + - None + type: Destructible +- uid: 568 type: AirlockExternal components: - - parent: 0 + - parent: 216 pos: -13.5,6.5 rot: -1.5707963267949 rad type: Transform -- uid: 354 + - flags: + - None + type: Destructible +- uid: 569 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: -13.5,1.5 rot: -1.5707963267949 rad type: Transform -- uid: 355 + - flags: + - None + type: Destructible +- uid: 570 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,-5.5 rot: -1.5707963267949 rad type: Transform -- uid: 356 + - flags: + - None + type: Destructible +- uid: 571 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 357 - type: Wire + - flags: + - None + type: Destructible +- uid: 572 + type: solid_wall components: - - parent: 0 - pos: -9.5,4.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 23.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 358 - type: Wire + - flags: + - None + type: Destructible +- uid: 573 + type: solid_wall components: - - parent: 0 - pos: -13.5,-7.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 24.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 359 - type: Wire + - flags: + - None + type: Destructible +- uid: 574 + type: solid_wall components: - - parent: 0 - pos: -9.5,3.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 25.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 360 + - flags: + - None + type: Destructible +- uid: 575 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 361 + - flags: + - None + type: Destructible +- uid: 576 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -14.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 362 +- uid: 577 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -13.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 363 +- uid: 578 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -12.5,7.5 rot: -1.5707963267949 rad type: Transform -- uid: 364 +- uid: 579 type: LockerToolFilled components: - - parent: 0 + - parent: 216 pos: -11.5,-5.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 365 +- uid: 580 type: LockerToolFilled components: - - parent: 0 + - parent: 216 pos: -11.5,-4.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 366 +- uid: 581 type: LockerToolFilled components: - - parent: 0 + - parent: 216 pos: -11.5,-3.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 367 +- uid: 582 type: LockerToolFilled components: - - parent: 0 + - parent: 216 pos: -11.5,-2.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 368 +- uid: 583 type: LockerToolFilled components: - - parent: 0 + - parent: 216 pos: -11.5,-1.5 rot: -1.5707963267949 rad type: Transform + - anchored: False + type: Collidable - IsPlaceable: False type: PlaceableSurface + - flags: + - None + type: Destructible - containers: EntityStorageComponent: type: Robust.Server.GameObjects.Components.Container.Container type: ContainerContainer -- uid: 369 +- uid: 584 type: GlassStack components: - - parent: 0 + - parent: 216 pos: -15.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 370 + - anchored: False + type: Collidable +- uid: 585 type: AirlockEngineering components: - - parent: 0 + - parent: 216 pos: -10.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 371 + - flags: + - None + type: Destructible +- uid: 586 type: Autolathe components: - - parent: 0 + - parent: 216 pos: -14.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 372 + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 587 type: Autolathe components: - - parent: 0 + - parent: 216 pos: -13.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 373 + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 588 type: Autolathe components: - - parent: 0 + - parent: 216 pos: -12.5,-7.5 rot: -1.5707963267949 rad type: Transform -- uid: 374 + - recipes: + - Brutepack + - Ointment + - LightTube + - LightBulb + - MetalStack + - GlassStack + - Wirecutter + - Screwdriver + - Welder + - Wrench + - Crowbar + - Multitool + type: LatheDatabase +- uid: 589 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -11,-5.5 rot: 3.14159265358979 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 375 + - 590 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 375 +- uid: 590 type: LightTube components: - - parent: 374 + - parent: 589 type: Transform -- uid: 376 + - anchored: False + type: Collidable +- uid: 591 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -11,-0.5 rot: 3.14159265358979 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 377 + - 592 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 377 +- uid: 592 type: LightTube components: - - parent: 376 + - parent: 591 type: Transform -- uid: 378 + - anchored: False + type: Collidable +- uid: 593 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -16,-0.5 type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 379 + - 594 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 379 +- uid: 594 type: LightTube components: - - parent: 378 + - parent: 593 type: Transform -- uid: 380 + - anchored: False + type: Collidable +- uid: 595 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -16,-5.5 type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 381 + - 596 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 381 +- uid: 596 type: LightTube components: - - parent: 380 + - parent: 595 type: Transform -- uid: 382 + - anchored: False + type: Collidable +- uid: 597 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -15,3.5 type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 383 + - 598 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 383 +- uid: 598 type: LightTube components: - - parent: 382 + - parent: 597 type: Transform -- uid: 384 + - anchored: False + type: Collidable +- uid: 599 type: PoweredSmallLight components: - - parent: 0 + - parent: 216 pos: -14.5,7 rot: -1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 385 + - 600 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 385 +- uid: 600 type: LightBulb components: - - parent: 384 + - parent: 599 type: Transform -- uid: 386 + - anchored: False + type: Collidable +- uid: 601 type: CableStack1 components: - - parent: 0 + - parent: 216 pos: -15.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 387 + - anchored: False + type: Collidable +- uid: 602 type: CableStack1 components: - - parent: 0 + - parent: 216 pos: -15.5,-0.5 rot: -1.5707963267949 rad type: Transform -- uid: 388 - type: Wire + - anchored: False + type: Collidable +- uid: 603 + type: solid_wall components: - - parent: 0 - pos: -14.5,-7.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 26.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 389 - type: Wire + - flags: + - None + type: Destructible +- uid: 604 + type: solid_wall components: - - parent: 0 - pos: -12.5,-7.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 27.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 390 + - flags: + - None + type: Destructible +- uid: 605 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -11.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 391 +- uid: 606 type: Catwalk components: - - parent: 0 + - parent: 216 pos: -9.5,-6.5 rot: -1.5707963267949 rad type: Transform -- uid: 392 +- uid: 607 type: Poweredlight components: - - parent: 0 + - parent: 216 pos: -10.5,4 rot: -1.5707963267949 rad type: Transform - color: '#FFFFFFFF' type: PointLight + - flags: + - None + type: Destructible - containers: light_bulb: entities: - - 393 + - 608 type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 393 +- uid: 608 type: LightTube components: - - parent: 392 + - parent: 607 type: Transform -- uid: 394 + - anchored: False + type: Collidable +- uid: 609 type: MetalStack components: - - parent: 0 + - parent: 216 pos: -15.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 395 + - anchored: False + type: Collidable +- uid: 610 type: MetalStack components: - - parent: 0 + - parent: 216 pos: -15.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 396 - type: APC + - anchored: False + type: Collidable +- uid: 611 + type: solid_wall components: - - parent: 0 - pos: -9.5,4.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 7.5,-4.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 397 - type: APC + - flags: + - None + type: Destructible +- uid: 612 + type: solid_wall components: - - parent: 0 - pos: -16.5,-2.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 8.5,-4.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 398 - type: Wire + - flags: + - None + type: Destructible +- uid: 613 + type: solid_wall components: - - parent: 0 - pos: -16.5,-2.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,11.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 399 - type: Wire + - flags: + - None + type: Destructible +- uid: 614 + type: solid_wall components: - - parent: 0 - pos: -15.5,-2.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,10.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 400 - type: Wire + - flags: + - None + type: Destructible +- uid: 615 + type: solid_wall components: - - parent: 0 - pos: -14.5,-2.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,9.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 401 - type: Wire + - flags: + - None + type: Destructible +- uid: 616 + type: solid_wall components: - - parent: 0 - pos: -13.5,-2.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,8.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 402 - type: Wire + - flags: + - None + type: Destructible +- uid: 617 + type: solid_wall components: - - parent: 0 - pos: -13.5,-3.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,7.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 403 - type: Wire + - flags: + - None + type: Destructible +- uid: 618 + type: solid_wall components: - - parent: 0 - pos: -13.5,-4.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,6.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 404 - type: Wire + - flags: + - None + type: Destructible +- uid: 619 + type: solid_wall components: - - parent: 0 - pos: -13.5,-5.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 28.5,5.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 405 - type: Wire + - flags: + - None + type: Destructible +- uid: 620 + type: solid_wall components: - - parent: 0 - pos: -13.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 26.5,-2.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 406 - type: Wire + - flags: + - None + type: Destructible +- uid: 621 + type: solid_wall components: - - parent: 0 - pos: -12.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 26.5,-1.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 407 - type: Wire + - flags: + - None + type: Destructible +- uid: 622 + type: solid_wall components: - - parent: 0 - pos: -11.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 25.5,-0.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 408 - type: Wire + - flags: + - None + type: Destructible +- uid: 623 + type: solid_wall components: - - parent: 0 - pos: -10.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 26.5,-0.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 409 - type: Wire + - flags: + - None + type: Destructible +- uid: 624 + type: solid_wall components: - - parent: 0 - pos: -9.5,-6.5 - rot: -1.5707963267949 rad + - parent: 216 + pos: 27.5,-0.5 + rot: -1.5707963267948966 rad type: Transform -- uid: 410 + - flags: + - None + type: Destructible +- uid: 625 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,-4.5 rot: -1.5707963267949 rad type: Transform -- uid: 411 + - flags: + - None + type: Destructible +- uid: 626 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 412 + - flags: + - None + type: Destructible +- uid: 627 type: Table components: - - parent: 0 + - parent: 216 pos: -15.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 413 + - flags: + - None + type: Destructible +- uid: 628 type: CableStack1 components: - - parent: 0 + - parent: 216 pos: -15.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 414 + - anchored: False + type: Collidable +- uid: 629 type: CableStack1 components: - - parent: 0 + - parent: 216 pos: -15.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 415 + - anchored: False + type: Collidable +- uid: 630 type: GlassStack components: - - parent: 0 + - parent: 216 pos: -15.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 416 + - anchored: False + type: Collidable +- uid: 631 type: GlassStack components: - - parent: 0 + - parent: 216 pos: -15.5,-1.5 rot: -1.5707963267949 rad type: Transform -- uid: 417 + - anchored: False + type: Collidable +- uid: 632 type: GlassStack components: - - parent: 0 + - parent: 216 pos: -15.5,-3.5 rot: -1.5707963267949 rad type: Transform -- uid: 418 + - anchored: False + type: Collidable +- uid: 633 type: VendingMachineEngivend components: - - parent: 0 + - parent: 216 pos: -11.5,0.5 rot: -1.5707963267949 rad type: Transform -- uid: 419 + - flags: + - None + type: Breakable +- uid: 634 type: Table components: - - parent: 0 + - parent: 216 pos: 18.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 420 + - flags: + - None + type: Destructible +- uid: 635 type: Table components: - - parent: 0 + - parent: 216 pos: 21.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 421 + - flags: + - None + type: Destructible +- uid: 636 type: Table components: - - parent: 0 + - parent: 216 pos: 20.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 422 + - flags: + - None + type: Destructible +- uid: 637 type: Table components: - - parent: 0 + - parent: 216 pos: 18.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 423 + - flags: + - None + type: Destructible +- uid: 638 type: Table components: - - parent: 0 + - parent: 216 pos: 19.5,6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 424 + - flags: + - None + type: Destructible +- uid: 639 type: Table components: - - parent: 0 + - parent: 216 pos: 18.5,5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 425 + - flags: + - None + type: Destructible +- uid: 640 type: Table components: - - parent: 0 + - parent: 216 pos: 22.5,8.5 rot: -1.5707963267948966 rad type: Transform -- uid: 426 + - flags: + - None + type: Destructible +- uid: 641 type: Table components: - - parent: 0 + - parent: 216 pos: 24.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 427 + - flags: + - None + type: Destructible +- uid: 642 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: 19.5,4.5 rot: 3.141592653589793 rad type: Transform -- uid: 428 + - flags: + - None + type: Destructible +- uid: 643 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: 20.5,5.5 rot: 1.5707963267948966 rad type: Transform -- uid: 429 + - flags: + - None + type: Destructible +- uid: 644 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: 23.5,8.5 rot: 3.141592653589793 rad type: Transform -- uid: 430 + - flags: + - None + type: Destructible +- uid: 645 type: ChairOfficeLight components: - - parent: 0 + - parent: 216 pos: 24.5,5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 431 + - flags: + - None + type: Destructible +- uid: 646 type: Chair components: - - parent: 0 + - parent: 216 pos: 14.5,6.5 type: Transform -- uid: 432 + - flags: + - None + type: Destructible +- uid: 647 type: Chair components: - - parent: 0 + - parent: 216 pos: 14.5,8.5 type: Transform -- uid: 433 + - flags: + - None + type: Destructible +- uid: 648 type: Chair components: - - parent: 0 + - parent: 216 pos: 14.5,7.5 type: Transform -- uid: 434 + - flags: + - None + type: Destructible +- uid: 649 type: chem_dispenser components: - - parent: 0 + - parent: 216 pos: 23.5,9.5 type: Transform - containers: ReagentDispenser-reagentContainerContainer: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 435 +- uid: 650 type: Table components: - - parent: 0 + - parent: 216 pos: 23.5,7.5 rot: -1.5707963267948966 rad type: Transform -- uid: 436 + - flags: + - None + type: Destructible +- uid: 651 type: Catwalk components: - - parent: 0 + - parent: 216 pos: 0.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 437 +- uid: 652 type: Table components: - - parent: 0 + - parent: 216 pos: 25.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 438 + - flags: + - None + type: Destructible +- uid: 653 type: Table components: - - parent: 0 + - parent: 216 pos: 23.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 439 + - flags: + - None + type: Destructible +- uid: 654 type: Table components: - - parent: 0 + - parent: 216 pos: 24.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 440 + - flags: + - None + type: Destructible +- uid: 655 type: Table components: - - parent: 0 + - parent: 216 pos: 26.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 441 + - flags: + - None + type: Destructible +- uid: 656 type: Table components: - - parent: 0 + - parent: 216 pos: 27.5,10.5 rot: -1.5707963267948966 rad type: Transform -- uid: 442 + - flags: + - None + type: Destructible +- uid: 657 type: ComputerMedicalRecords components: - - parent: 0 + - parent: 216 pos: 21.5,5.5 rot: 3.141592653589793 rad type: Transform -- uid: 443 +- uid: 658 type: MedicalScanner components: - - parent: 0 + - parent: 216 pos: 18.5,-1.5 rot: 3.141592653589793 rad type: Transform + - flags: + - None + type: Destructible - containers: MedicalScanner-bodyContainer: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 444 +- uid: 659 type: MedicalScanner components: - - parent: 0 + - parent: 216 pos: 18.5,-5.5 rot: 3.141592653589793 rad type: Transform + - flags: + - None + type: Destructible - containers: MedicalScanner-bodyContainer: type: Content.Server.GameObjects.ContainerSlot type: ContainerContainer -- uid: 445 +- uid: 660 type: Table components: - - parent: 0 + - parent: 216 pos: 13.5,2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 446 + - flags: + - None + type: Destructible +- uid: 661 type: Table components: - - parent: 0 + - parent: 216 pos: 13.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 447 + - flags: + - None + type: Destructible +- uid: 662 type: Table components: - - parent: 0 + - parent: 216 pos: 13.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 448 + - flags: + - None + type: Destructible +- uid: 663 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 22.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 449 + - flags: + - None + type: Destructible +- uid: 664 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 17.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 450 + - flags: + - None + type: Destructible +- uid: 665 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 18.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 451 + - flags: + - None + type: Destructible +- uid: 666 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 20.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 452 + - flags: + - None + type: Destructible +- uid: 667 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 21.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 453 + - flags: + - None + type: Destructible +- uid: 668 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 19.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 454 + - flags: + - None + type: Destructible +- uid: 669 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 14.5,3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 455 + - flags: + - None + type: Destructible +- uid: 670 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 456 + - flags: + - None + type: Destructible +- uid: 671 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 12.5,3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 457 + - flags: + - None + type: Destructible +- uid: 672 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 12.5,2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 458 + - flags: + - None + type: Destructible +- uid: 673 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 12.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 459 + - flags: + - None + type: Destructible +- uid: 674 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 12.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 460 + - flags: + - None + type: Destructible +- uid: 675 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 12.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 461 + - flags: + - None + type: Destructible +- uid: 676 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 462 + - flags: + - None + type: Destructible +- uid: 677 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 14.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 463 + - flags: + - None + type: Destructible +- uid: 678 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 464 + - flags: + - None + type: Destructible +- uid: 679 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 465 + - flags: + - None + type: Destructible +- uid: 680 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 466 + - flags: + - None + type: Destructible +- uid: 681 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 467 + - flags: + - None + type: Destructible +- uid: 682 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 468 + - flags: + - None + type: Destructible +- uid: 683 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 13.5,-2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 469 + - flags: + - None + type: Destructible +- uid: 684 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 14.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 470 + - flags: + - None + type: Destructible +- uid: 685 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 15.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 471 + - flags: + - None + type: Destructible +- uid: 686 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 16.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 472 + - flags: + - None + type: Destructible +- uid: 687 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 17.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 473 + - flags: + - None + type: Destructible +- uid: 688 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 18.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 474 + - flags: + - None + type: Destructible +- uid: 689 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 19.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 475 + - flags: + - None + type: Destructible +- uid: 690 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 20.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 476 + - flags: + - None + type: Destructible +- uid: 691 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 21.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 477 + - flags: + - None + type: Destructible +- uid: 692 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 22.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 478 + - flags: + - None + type: Destructible +- uid: 693 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 23.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 479 + - flags: + - None + type: Destructible +- uid: 694 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 24.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 480 + - flags: + - None + type: Destructible +- uid: 695 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 25.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 481 + - flags: + - None + type: Destructible +- uid: 696 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 26.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 482 + - flags: + - None + type: Destructible +- uid: 697 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 26.5,-5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 483 + - flags: + - None + type: Destructible +- uid: 698 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 26.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 484 + - flags: + - None + type: Destructible +- uid: 699 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 27.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 485 + - flags: + - None + type: Destructible +- uid: 700 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 28.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 486 + - flags: + - None + type: Destructible +- uid: 701 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 29.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 487 + - flags: + - None + type: Destructible +- uid: 702 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 488 + - flags: + - None + type: Destructible +- uid: 703 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 31.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 489 + - flags: + - None + type: Destructible +- uid: 704 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 32.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 490 + - flags: + - None + type: Destructible +- uid: 705 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 33.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 491 + - flags: + - None + type: Destructible +- uid: 706 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-6.5 rot: -1.5707963267948966 rad type: Transform -- uid: 492 + - flags: + - None + type: Destructible +- uid: 707 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-5.5 rot: -1.5707963267948966 rad type: Transform -- uid: 493 + - flags: + - None + type: Destructible +- uid: 708 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 494 + - flags: + - None + type: Destructible +- uid: 709 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 495 + - flags: + - None + type: Destructible +- uid: 710 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 496 + - flags: + - None + type: Destructible +- uid: 711 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 497 + - flags: + - None + type: Destructible +- uid: 712 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 34.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 498 + - flags: + - None + type: Destructible +- uid: 713 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 33.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 499 + - flags: + - None + type: Destructible +- uid: 714 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 32.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 500 + - flags: + - None + type: Destructible +- uid: 715 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 31.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 501 + - flags: + - None + type: Destructible +- uid: 716 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 502 + - flags: + - None + type: Destructible +- uid: 717 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 29.5,-0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 503 + - flags: + - None + type: Destructible +- uid: 718 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,0.5 rot: -1.5707963267948966 rad type: Transform -- uid: 504 + - flags: + - None + type: Destructible +- uid: 719 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,1.5 rot: -1.5707963267948966 rad type: Transform -- uid: 505 + - flags: + - None + type: Destructible +- uid: 720 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,2.5 rot: -1.5707963267948966 rad type: Transform -- uid: 506 + - flags: + - None + type: Destructible +- uid: 721 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,3.5 rot: -1.5707963267948966 rad type: Transform -- uid: 507 + - flags: + - None + type: Destructible +- uid: 722 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 30.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 508 + - flags: + - None + type: Destructible +- uid: 723 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 29.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 509 + - flags: + - None + type: Destructible +- uid: 724 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 28.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 510 + - flags: + - None + type: Destructible +- uid: 725 type: solid_wall components: - - parent: 0 + - parent: 216 pos: 27.5,4.5 rot: -1.5707963267948966 rad type: Transform -- uid: 511 - type: solid_wall - components: - - parent: 0 - pos: 27.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 512 - type: solid_wall - components: - - parent: 0 - pos: 26.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 513 - type: solid_wall - components: - - parent: 0 - pos: 25.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 514 - type: solid_wall - components: - - parent: 0 - pos: 26.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 515 - type: solid_wall - components: - - parent: 0 - pos: 26.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 516 - type: solid_wall - components: - - parent: 0 - pos: 28.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 517 - type: solid_wall - components: - - parent: 0 - pos: 28.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 518 - type: solid_wall - components: - - parent: 0 - pos: 28.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 519 - type: solid_wall - components: - - parent: 0 - pos: 28.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 520 - type: solid_wall - components: - - parent: 0 - pos: 28.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 521 - type: solid_wall - components: - - parent: 0 - pos: 28.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 522 - type: solid_wall - components: - - parent: 0 - pos: 28.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 523 - type: solid_wall - components: - - parent: 0 - pos: 27.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 524 - type: solid_wall - components: - - parent: 0 - pos: 26.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 525 - type: solid_wall - components: - - parent: 0 - pos: 25.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 526 - type: solid_wall - components: - - parent: 0 - pos: 24.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 527 - type: solid_wall - components: - - parent: 0 - pos: 23.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 528 - type: solid_wall - components: - - parent: 0 - pos: 22.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 529 - type: solid_wall - components: - - parent: 0 - pos: 21.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 530 - type: solid_wall - components: - - parent: 0 - pos: 22.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 531 - type: solid_wall - components: - - parent: 0 - pos: 22.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 532 - type: solid_wall - components: - - parent: 0 - pos: 22.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 533 - type: solid_wall - components: - - parent: 0 - pos: 22.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 534 - type: solid_wall - components: - - parent: 0 - pos: 22.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 535 - type: solid_wall - components: - - parent: 0 - pos: 22.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 536 - type: solid_wall - components: - - parent: 0 - pos: 22.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 537 - type: solid_wall - components: - - parent: 0 - pos: 21.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 538 - type: solid_wall - components: - - parent: 0 - pos: 19.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 539 - type: solid_wall - components: - - parent: 0 - pos: 18.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 540 - type: solid_wall - components: - - parent: 0 - pos: 17.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 541 - type: solid_wall - components: - - parent: 0 - pos: 23.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 542 - type: solid_wall - components: - - parent: 0 - pos: 25.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 543 - type: solid_wall - components: - - parent: 0 - pos: 13.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 544 - type: solid_wall - components: - - parent: 0 - pos: 13.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 545 - type: solid_wall - components: - - parent: 0 - pos: 13.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 546 - type: solid_wall - components: - - parent: 0 - pos: 13.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 547 - type: solid_wall - components: - - parent: 0 - pos: 13.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 548 - type: solid_wall - components: - - parent: 0 - pos: 13.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 549 - type: solid_wall - components: - - parent: 0 - pos: 14.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 550 - type: solid_wall - components: - - parent: 0 - pos: 13.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 551 - type: solid_wall - components: - - parent: 0 - pos: 12.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 552 - type: solid_wall - components: - - parent: 0 - pos: 11.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 553 - type: solid_wall - components: - - parent: 0 - pos: 10.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 554 - type: solid_wall - components: - - parent: 0 - pos: 9.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 555 - type: solid_wall - components: - - parent: 0 - pos: 8.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 556 - type: solid_wall - components: - - parent: 0 - pos: 7.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 557 - type: solid_wall - components: - - parent: 0 - pos: 6.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 558 - type: solid_wall - components: - - parent: 0 - pos: 5.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 559 - type: solid_wall - components: - - parent: 0 - pos: 4.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 560 - type: solid_wall - components: - - parent: 0 - pos: 5.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 561 - type: solid_wall - components: - - parent: 0 - pos: 6.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 562 - type: solid_wall - components: - - parent: 0 - pos: 7.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 563 - type: solid_wall - components: - - parent: 0 - pos: 8.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 564 - type: solid_wall - components: - - parent: 0 - pos: 9.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 565 - type: solid_wall - components: - - parent: 0 - pos: 10.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 566 - type: solid_wall - components: - - parent: 0 - pos: 11.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 567 - type: solid_wall - components: - - parent: 0 - pos: 12.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 568 - type: solid_wall - components: - - parent: 0 - pos: 4.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 569 - type: solid_wall - components: - - parent: 0 - pos: 1.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 570 - type: solid_wall - components: - - parent: 0 - pos: 1.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 571 - type: solid_wall - components: - - parent: 0 - pos: 0.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 572 - type: solid_wall - components: - - parent: 0 - pos: -0.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 573 - type: solid_wall - components: - - parent: 0 - pos: -1.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 574 - type: solid_wall - components: - - parent: 0 - pos: -2.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 575 - type: solid_wall - components: - - parent: 0 - pos: -3.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 576 - type: solid_wall - components: - - parent: 0 - pos: -4.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 577 - type: solid_wall - components: - - parent: 0 - pos: -5.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 578 - type: solid_wall - components: - - parent: 0 - pos: -6.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 579 - type: solid_wall - components: - - parent: 0 - pos: -7.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 580 - type: solid_wall - components: - - parent: 0 - pos: 1.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 581 - type: solid_wall - components: - - parent: 0 - pos: 1.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 582 - type: solid_wall - components: - - parent: 0 - pos: 1.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 583 - type: Catwalk - components: - - parent: 0 - pos: 5.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 584 - type: Catwalk - components: - - parent: 0 - pos: 12.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 585 - type: Table - components: - - parent: 0 - pos: 23.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 586 - type: Table - components: - - parent: 0 - pos: 23.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 587 - type: AirlockMedicalGlass - components: - - parent: 0 - pos: 15.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 588 - type: AirlockMedicalGlass - components: - - parent: 0 - pos: 16.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 589 - type: AirlockMedicalGlass - components: - - parent: 0 - pos: 20.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 590 - type: AirlockMedicalGlass - components: - - parent: 0 - pos: 26.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 591 - type: Beaker - components: - - parent: 0 - pos: 26.416822,10.651619 - rot: -1.5707963267948966 rad - type: Transform -- uid: 592 - type: Beaker - components: - - parent: 0 - pos: 24.541822,10.635994 - rot: -1.5707963267948966 rad - type: Transform -- uid: 593 - type: Beaker - components: - - parent: 0 - pos: 25.291822,10.667244 - rot: -1.5707963267948966 rad - type: Transform -- uid: 594 - type: Wire - components: - - parent: 0 - pos: 1.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 595 - type: Wire - components: - - parent: 0 - pos: 2.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 596 - type: Wire - components: - - parent: 0 - pos: 2.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 597 - type: Wire - components: - - parent: 0 - pos: 2.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 598 - type: Wire - components: - - parent: 0 - pos: 2.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 599 - type: Wire - components: - - parent: 0 - pos: 2.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 600 - type: Wire - components: - - parent: 0 - pos: 2.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 601 - type: Wire - components: - - parent: 0 - pos: 2.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 602 - type: Wire - components: - - parent: 0 - pos: 2.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 603 - type: Wire - components: - - parent: 0 - pos: 3.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 604 - type: Wire - components: - - parent: 0 - pos: 4.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 605 - type: Wire - components: - - parent: 0 - pos: 5.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 606 - type: Wire - components: - - parent: 0 - pos: 5.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 607 - type: Wire - components: - - parent: 0 - pos: 6.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 608 - type: Wire - components: - - parent: 0 - pos: 7.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 609 - type: Wire - components: - - parent: 0 - pos: 8.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 610 - type: Wire - components: - - parent: 0 - pos: 9.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 611 - type: Wire - components: - - parent: 0 - pos: 10.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 612 - type: Wire - components: - - parent: 0 - pos: 11.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 613 - type: Wire - components: - - parent: 0 - pos: 12.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 614 - type: Wire - components: - - parent: 0 - pos: 12.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 615 - type: Wire - components: - - parent: 0 - pos: 13.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 616 - type: Wire - components: - - parent: 0 - pos: 14.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 617 - type: Wire - components: - - parent: 0 - pos: 15.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 618 - type: Wire - components: - - parent: 0 - pos: 16.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 619 - type: Wire - components: - - parent: 0 - pos: 16.5,9.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 620 - type: Wire - components: - - parent: 0 - pos: 16.5,8.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 621 - type: Wire - components: - - parent: 0 - pos: 16.5,7.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 622 - type: Wire - components: - - parent: 0 - pos: 16.5,6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 623 - type: Wire - components: - - parent: 0 - pos: 16.5,5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 624 - type: Wire - components: - - parent: 0 - pos: 16.5,4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 625 - type: Wire - components: - - parent: 0 - pos: 16.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 626 - type: Wire - components: - - parent: 0 - pos: 16.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 627 - type: Wire - components: - - parent: 0 - pos: 17.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 628 - type: Wire - components: - - parent: 0 - pos: 18.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 629 - type: Wire - components: - - parent: 0 - pos: 18.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 630 - type: APC - components: - - parent: 0 - pos: 18.5,3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 631 - type: Wire - components: - - parent: 0 - pos: 1.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 632 - type: Wire - components: - - parent: 0 - pos: 1.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 633 - type: APC - components: - - parent: 0 - pos: 1.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 634 - type: Airlock - components: - - parent: 0 - pos: 1.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 635 - type: Airlock - components: - - parent: 0 - pos: 4.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 636 - type: Airlock - components: - - parent: 0 - pos: 13.5,10.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 637 - type: APC - components: - - parent: 0 - pos: 13.5,6.5 - type: Transform -- uid: 638 - type: Wire - components: - - parent: 0 - pos: 13.5,6.5 - type: Transform -- uid: 639 - type: APC - components: - - parent: 0 - pos: 28.5,8.5 - type: Transform -- uid: 640 - type: Wire - components: - - parent: 0 - pos: 25.5,4.5 - type: Transform -- uid: 641 - type: Poweredlight - components: - - parent: 0 - pos: 17.5,4 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 642 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 642 - type: LightTube - components: - - parent: 641 - type: Transform -- uid: 643 - type: Poweredlight - components: - - parent: 0 - pos: 22.5,3 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 644 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 644 - type: LightTube - components: - - parent: 643 - type: Transform -- uid: 645 - type: Poweredlight - components: - - parent: 0 - pos: 13.5,3 - rot: -1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 646 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 646 - type: LightTube - components: - - parent: 645 - type: Transform -- uid: 647 - type: Wire - components: - - parent: 0 - pos: 27.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 648 - type: Wire - components: - - parent: 0 - pos: 26.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 649 - type: Wire - components: - - parent: 0 - pos: 15.5,8.5 - type: Transform -- uid: 650 - type: Wire - components: - - parent: 0 - pos: 14.5,8.5 - type: Transform -- uid: 651 - type: Wire - components: - - parent: 0 - pos: 13.5,8.5 - type: Transform -- uid: 652 - type: Wire - components: - - parent: 0 - pos: 15.5,6.5 - type: Transform -- uid: 653 - type: Wire - components: - - parent: 0 - pos: 14.5,6.5 - type: Transform -- uid: 654 - type: APC - components: - - parent: 0 - pos: 30.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 655 - type: Wire - components: - - parent: 0 - pos: 19.5,2.5 - type: Transform -- uid: 656 - type: Wire - components: - - parent: 0 - pos: 20.5,2.5 - type: Transform -- uid: 657 - type: Wire - components: - - parent: 0 - pos: 21.5,2.5 - type: Transform -- uid: 658 - type: Wire - components: - - parent: 0 - pos: 22.5,2.5 - type: Transform -- uid: 659 - type: Wire - components: - - parent: 0 - pos: 23.5,2.5 - type: Transform -- uid: 660 - type: Wire - components: - - parent: 0 - pos: 24.5,2.5 - type: Transform -- uid: 661 - type: Wire - components: - - parent: 0 - pos: 25.5,2.5 - type: Transform -- uid: 662 - type: Wire - components: - - parent: 0 - pos: 25.5,3.5 - type: Transform -- uid: 663 - type: Poweredlight - components: - - parent: 0 - pos: 14,9.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 664 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 664 - type: LightTube - components: - - parent: 663 - type: Transform -- uid: 665 - type: Poweredlight - components: - - parent: 0 - pos: 22,9.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 666 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 666 - type: LightTube - components: - - parent: 665 - type: Transform -- uid: 667 - type: Wire - components: - - parent: 0 - pos: 30.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 668 - type: Wire - components: - - parent: 0 - pos: 29.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 669 - type: Poweredlight - components: - - parent: 0 - pos: 16.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 670 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 670 - type: LightTube - components: - - parent: 669 - type: Transform -- uid: 671 - type: Table - components: - - parent: 0 - pos: 23.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 672 - type: Table - components: - - parent: 0 - pos: 24.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 673 - type: APC - components: - - parent: 0 - pos: 20.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 674 - type: Wire - components: - - parent: 0 - pos: 16.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 675 - type: Wire - components: - - parent: 0 - pos: 16.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 676 - type: Wire - components: - - parent: 0 - pos: 16.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 677 - type: Wire - components: - - parent: 0 - pos: 16.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 678 - type: Wire - components: - - parent: 0 - pos: 16.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 679 - type: Wire - components: - - parent: 0 - pos: 16.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 680 - type: Wire - components: - - parent: 0 - pos: 17.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 681 - type: Wire - components: - - parent: 0 - pos: 18.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 682 - type: Wire - components: - - parent: 0 - pos: 19.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 683 - type: Wire - components: - - parent: 0 - pos: 20.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 684 - type: Wire - components: - - parent: 0 - pos: 20.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 685 - type: Wire - components: - - parent: 0 - pos: 20.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 686 - type: Wire - components: - - parent: 0 - pos: 20.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 687 - type: Wire - components: - - parent: 0 - pos: 21.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 688 - type: Wire - components: - - parent: 0 - pos: 22.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 689 - type: Wire - components: - - parent: 0 - pos: 23.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 690 - type: Wire - components: - - parent: 0 - pos: 24.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 691 - type: Wire - components: - - parent: 0 - pos: 25.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 692 - type: Wire - components: - - parent: 0 - pos: 26.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 693 - type: Wire - components: - - parent: 0 - pos: 27.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 694 - type: Wire - components: - - parent: 0 - pos: 28.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 695 - type: Wire - components: - - parent: 0 - pos: 29.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 696 - type: Wire - components: - - parent: 0 - pos: 30.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 697 - type: Wire - components: - - parent: 0 - pos: 30.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 698 - type: Wire - components: - - parent: 0 - pos: 30.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 699 - type: Wire - components: - - parent: 0 - pos: 30.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 700 - type: APC - components: - - parent: 0 - pos: 30.5,-6.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 701 - type: Poweredlight - components: - - parent: 0 - pos: 31.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 702 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 702 - type: LightTube - components: - - parent: 701 - type: Transform -- uid: 703 - type: Poweredlight - components: - - parent: 0 - pos: 30,1.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 704 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 704 - type: LightTube - components: - - parent: 703 - type: Transform -- uid: 705 - type: Wire - components: - - parent: 0 - pos: 26.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 706 - type: Wire - components: - - parent: 0 - pos: 27.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 707 - type: Wire - components: - - parent: 0 - pos: 28.5,2.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 708 - type: Wire - components: - - parent: 0 - pos: 28.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 709 - type: Wire - components: - - parent: 0 - pos: 25.5,5.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 710 - type: Wire - components: - - parent: 0 - pos: 25.5,6.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 711 - type: Wire - components: - - parent: 0 - pos: 25.5,7.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 712 - type: Wire - components: - - parent: 0 - pos: 25.5,8.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 713 - type: Poweredlight - components: - - parent: 0 - pos: 28,7.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 714 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 714 - type: LightTube - components: - - parent: 713 - type: Transform -- uid: 715 - type: VendingMachineMedical - components: - - parent: 0 - pos: 29.5,3.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 716 - type: VendingMachineMedical - components: - - parent: 0 - pos: 27.5,-5.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 717 - type: VendingMachineMedical - components: - - parent: 0 - pos: 25.5,-5.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 718 - type: VendingMachineWallMedical - components: - - parent: 0 - pos: 1.5,-3.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 719 - type: MedkitFilled - components: - - parent: 0 - pos: 13.460339,0.6141751 - rot: 3.141592653589793 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 720 - type: MedkitFilled - components: - - parent: 0 - pos: 13.632214,1.5673001 - rot: 3.141592653589793 rad - type: Transform - - containers: - storagebase: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 721 - type: ComputerMedicalRecords - components: - - parent: 0 - pos: 22.5,-5.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 722 - type: Poweredlight - components: - - parent: 0 - pos: 23.5,-6 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 723 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 723 - type: LightTube - components: - - parent: 722 - type: Transform -- uid: 724 - type: Brutepack - components: - - parent: 0 - pos: 18.476385,4.841032 - rot: 1.5707963267948966 rad - type: Transform -- uid: 725 - type: Brutepack - components: - - parent: 0 - pos: 18.601385,5.512907 - rot: 1.5707963267948966 rad - type: Transform -- uid: 726 - type: Ointment - components: - - parent: 0 - pos: 18.49201,6.059782 - rot: 1.5707963267948966 rad - type: Transform -- uid: 727 - type: Ointment - components: - - parent: 0 - pos: 18.77326,6.653532 - rot: 1.5707963267948966 rad - type: Transform -- uid: 728 - type: SpawnPointLatejoin - components: - - parent: 0 - pos: 17.5,8.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 729 - type: SpawnPointLatejoin - components: - - parent: 0 - pos: 19.5,-3.5 - rot: 1.5707963267948966 rad - type: Transform -- uid: 730 - type: Table - components: - - parent: 0 - pos: 33.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 731 - type: Table - components: - - parent: 0 - pos: 33.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 732 - type: Table - components: - - parent: 0 - pos: 33.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 733 - type: Table - components: - - parent: 0 - pos: 33.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 734 - type: Table - components: - - parent: 0 - pos: 33.5,-5.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 735 - type: LargeBeaker - components: - - parent: 0 - pos: 33.18525,-5.681699 - rot: -1.5707963267948966 rad - type: Transform -- uid: 736 - type: LargeBeaker - components: - - parent: 0 - pos: 33.294624,-5.181699 - rot: -1.5707963267948966 rad - type: Transform -- uid: 737 - type: LargeBeaker - components: - - parent: 0 - pos: 33.544624,-5.572324 - rot: -1.5707963267948966 rad - type: Transform -- uid: 738 - type: Beaker - components: - - parent: 0 - pos: 33.357124,-4.837949 - rot: -1.5707963267948966 rad - type: Transform -- uid: 739 - type: Beaker - components: - - parent: 0 - pos: 33.357124,-4.166074 - rot: -1.5707963267948966 rad - type: Transform -- uid: 740 - type: Beaker - components: - - parent: 0 - pos: 33.388374,-4.431699 - rot: -1.5707963267948966 rad - type: Transform -- uid: 741 - type: Beaker - components: - - parent: 0 - pos: 33.62275,-4.228574 - rot: -1.5707963267948966 rad - type: Transform -- uid: 742 - type: Beaker - components: - - parent: 0 - pos: 33.62275,-4.634824 - rot: -1.5707963267948966 rad - type: Transform -- uid: 743 - type: CrateMedical - components: - - parent: 0 - pos: 32.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 744 - type: CrateMedical - components: - - parent: 0 - pos: 31.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 745 - type: LockerMedical - components: - - parent: 0 - pos: 30.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 746 - type: LockerMedical - components: - - parent: 0 - pos: 29.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 747 - type: LockerMedical - components: - - parent: 0 - pos: 27.5,5.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 748 - type: LockerChemistry - components: - - parent: 0 - pos: 27.5,6.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 749 - type: solid_wall - components: - - parent: 0 - pos: 4.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 750 - type: solid_wall - components: - - parent: 0 - pos: 4.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 751 - type: solid_wall - components: - - parent: 0 - pos: 4.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 752 - type: solid_wall - components: - - parent: 0 - pos: 4.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 753 - type: solid_wall - components: - - parent: 0 - pos: 4.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 754 - type: solid_wall - components: - - parent: 0 - pos: 4.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 755 - type: solid_wall - components: - - parent: 0 - pos: 4.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 756 - type: solid_wall - components: - - parent: 0 - pos: 4.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 757 - type: solid_wall - components: - - parent: 0 - pos: 4.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 758 - type: solid_wall - components: - - parent: 0 - pos: 4.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 759 - type: solid_wall - components: - - parent: 0 - pos: 7.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 760 - type: solid_wall - components: - - parent: 0 - pos: 7.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 761 - type: solid_wall - components: - - parent: 0 - pos: 7.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 762 - type: solid_wall - components: - - parent: 0 - pos: 7.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 763 - type: solid_wall - components: - - parent: 0 - pos: 7.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 764 - type: solid_wall - components: - - parent: 0 - pos: 8.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 765 - type: solid_wall - components: - - parent: 0 - pos: 10.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 766 - type: solid_wall - components: - - parent: 0 - pos: 11.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 767 - type: solid_wall - components: - - parent: 0 - pos: 12.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 768 - type: solid_wall - components: - - parent: 0 - pos: 13.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 769 - type: solid_wall - components: - - parent: 0 - pos: 14.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 770 - type: solid_wall - components: - - parent: 0 - pos: 15.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 771 - type: solid_wall - components: - - parent: 0 - pos: 14.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 772 - type: solid_wall - components: - - parent: 0 - pos: 14.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 773 - type: solid_wall - components: - - parent: 0 - pos: 14.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 774 - type: solid_wall - components: - - parent: 0 - pos: 14.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 775 - type: solid_wall - components: - - parent: 0 - pos: 15.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 776 - type: solid_wall - components: - - parent: 0 - pos: 17.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 777 - type: solid_wall - components: - - parent: 0 - pos: 17.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 778 - type: solid_wall - components: - - parent: 0 - pos: 18.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 779 - type: solid_wall - components: - - parent: 0 - pos: 18.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 780 - type: solid_wall - components: - - parent: 0 - pos: 18.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 781 - type: solid_wall - components: - - parent: 0 - pos: 18.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 782 - type: solid_wall - components: - - parent: 0 - pos: 18.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 783 - type: solid_wall - components: - - parent: 0 - pos: 18.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 784 - type: solid_wall - components: - - parent: 0 - pos: 18.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 785 - type: solid_wall - components: - - parent: 0 - pos: 18.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 786 - type: solid_wall - components: - - parent: 0 - pos: 19.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 787 - type: solid_wall - components: - - parent: 0 - pos: 20.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 788 - type: solid_wall - components: - - parent: 0 - pos: 21.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 789 - type: solid_wall - components: - - parent: 0 - pos: 22.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 790 - type: solid_wall - components: - - parent: 0 - pos: 23.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 791 - type: solid_wall - components: - - parent: 0 - pos: 24.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 792 - type: solid_wall - components: - - parent: 0 - pos: 25.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 793 - type: solid_wall - components: - - parent: 0 - pos: 26.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 794 - type: solid_wall - components: - - parent: 0 - pos: 27.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 795 - type: solid_wall - components: - - parent: 0 - pos: 28.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 796 - type: solid_wall - components: - - parent: 0 - pos: 6.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 797 - type: solid_wall - components: - - parent: 0 - pos: 7.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 798 - type: solid_wall - components: - - parent: 0 - pos: 14.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 799 - type: solid_wall - components: - - parent: 0 - pos: 14.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 800 - type: solid_wall - components: - - parent: 0 - pos: 8.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 801 - type: solid_wall - components: - - parent: 0 - pos: 9.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 802 - type: solid_wall - components: - - parent: 0 - pos: 10.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 803 - type: solid_wall - components: - - parent: 0 - pos: 11.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 804 - type: solid_wall - components: - - parent: 0 - pos: 12.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 805 - type: solid_wall - components: - - parent: 0 - pos: 13.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 806 - type: solid_wall - components: - - parent: 0 - pos: 14.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 807 - type: solid_wall - components: - - parent: 0 - pos: 14.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 808 - type: solid_wall - components: - - parent: 0 - pos: 14.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 809 - type: solid_wall - components: - - parent: 0 - pos: 14.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 810 - type: solid_wall - components: - - parent: 0 - pos: 14.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 811 - type: solid_wall - components: - - parent: 0 - pos: 18.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 812 - type: solid_wall - components: - - parent: 0 - pos: 18.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 813 - type: solid_wall - components: - - parent: 0 - pos: 18.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 814 - type: solid_wall - components: - - parent: 0 - pos: 18.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 815 - type: solid_wall - components: - - parent: 0 - pos: 18.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 816 - type: solid_wall - components: - - parent: 0 - pos: 18.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 817 - type: solid_wall - components: - - parent: 0 - pos: 13.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 818 - type: solid_wall - components: - - parent: 0 - pos: 12.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 819 - type: solid_wall - components: - - parent: 0 - pos: 11.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 820 - type: solid_wall - components: - - parent: 0 - pos: 10.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 821 - type: solid_wall - components: - - parent: 0 - pos: 9.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 822 - type: solid_wall - components: - - parent: 0 - pos: 8.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 823 - type: solid_wall - components: - - parent: 0 - pos: 4.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 824 - type: solid_wall - components: - - parent: 0 - pos: 10.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 825 - type: solid_wall - components: - - parent: 0 - pos: 10.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 826 - type: solid_wall - components: - - parent: 0 - pos: 10.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 827 - type: solid_wall - components: - - parent: 0 - pos: 4.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 828 - type: solid_wall - components: - - parent: 0 - pos: 4.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 829 - type: solid_wall - components: - - parent: 0 - pos: 4.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 830 - type: solid_wall - components: - - parent: 0 - pos: 7.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 831 - type: solid_wall - components: - - parent: 0 - pos: 7.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 832 - type: solid_wall - components: - - parent: 0 - pos: 7.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 833 - type: solid_wall - components: - - parent: 0 - pos: 7.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 834 - type: Catwalk - components: - - parent: 0 - pos: 5.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 835 - type: Catwalk - components: - - parent: 0 - pos: 6.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 836 - type: Catwalk - components: - - parent: 0 - pos: 6.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 837 - type: solid_wall - components: - - parent: 0 - pos: 1.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 838 - type: solid_wall - components: - - parent: 0 - pos: 1.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 839 - type: solid_wall - components: - - parent: 0 - pos: 1.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 840 - type: solid_wall - components: - - parent: 0 - pos: 1.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 841 - type: solid_wall - components: - - parent: 0 - pos: 1.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 842 - type: solid_wall - components: - - parent: 0 - pos: 1.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 843 - type: solid_wall - components: - - parent: 0 - pos: 1.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 844 - type: solid_wall - components: - - parent: 0 - pos: 1.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 845 - type: solid_wall - components: - - parent: 0 - pos: 1.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 846 - type: Wire - components: - - parent: 0 - pos: 2.5,11.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 847 - type: Wire - components: - - parent: 0 - pos: 2.5,12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 848 - type: Wire - components: - - parent: 0 - pos: 2.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 849 - type: Wire - components: - - parent: 0 - pos: 3.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 850 - type: Wire - components: - - parent: 0 - pos: 4.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 851 - type: Wire - components: - - parent: 0 - pos: 6.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 852 - type: Wire - components: - - parent: 0 - pos: 6.5,28.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 853 - type: Wire - components: - - parent: 0 - pos: 5.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 854 - type: Wire - components: - - parent: 0 - pos: 5.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 855 - type: Wire - components: - - parent: 0 - pos: 5.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 856 - type: Wire - components: - - parent: 0 - pos: 6.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 857 - type: Wire - components: - - parent: 0 - pos: 6.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 858 - type: Wire - components: - - parent: 0 - pos: 6.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 859 - type: Wire - components: - - parent: 0 - pos: 6.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 860 - type: Wire - components: - - parent: 0 - pos: 6.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 861 - type: Wire - components: - - parent: 0 - pos: 6.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 862 - type: Wire - components: - - parent: 0 - pos: 6.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 863 - type: Wire - components: - - parent: 0 - pos: 6.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 864 - type: Wire - components: - - parent: 0 - pos: 6.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 865 - type: Wire - components: - - parent: 0 - pos: 6.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 866 - type: Wire - components: - - parent: 0 - pos: 6.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 867 - type: Wire - components: - - parent: 0 - pos: 5.5,13.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 868 - type: AirlockScienceGlass - components: - - parent: 0 - pos: 14.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 869 - type: AirlockScience - components: - - parent: 0 - pos: 14.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 870 - type: AirlockScience - components: - - parent: 0 - pos: 16.5,18.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 871 - type: AirlockScience - components: - - parent: 0 - pos: 16.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 872 - type: Airlock - components: - - parent: 0 - pos: 5.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 873 - type: Airlock - components: - - parent: 0 - pos: 7.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 874 - type: Table - components: - - parent: 0 - pos: 9.5,15.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 875 - type: Poweredlight - components: - - parent: 0 - pos: 6.5,12 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 876 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 876 - type: LightTube - components: - - parent: 875 - type: Transform -- uid: 877 - type: Poweredlight - components: - - parent: 0 - pos: 12.5,12 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 878 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 878 - type: LightTube - components: - - parent: 877 - type: Transform -- uid: 879 - type: LightTube - components: - - parent: 880 - type: Transform -- uid: 880 - type: Poweredlight - components: - - parent: 0 - pos: 14,18.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 879 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 881 - type: Wire - components: - - parent: 0 - pos: 3.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 882 - type: Wire - components: - - parent: 0 - pos: 2.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 883 - type: Poweredlight - components: - - parent: 0 - pos: 18,22.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 884 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 884 - type: LightTube - components: - - parent: 883 - type: Transform -- uid: 885 - type: Poweredlight - components: - - parent: 0 - pos: 18,27.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 886 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 886 - type: LightTube - components: - - parent: 885 - type: Transform -- uid: 887 - type: PoweredSmallLight - components: - - parent: 0 - pos: 18,17.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 888 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 888 - type: LightBulb - components: - - parent: 887 - type: Transform -- uid: 889 - type: Poweredlight - components: - - parent: 0 - pos: 2,17.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 890 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 890 - type: LightTube - components: - - parent: 889 - type: Transform -- uid: 891 - type: LightTube - components: - - parent: 892 - type: Transform -- uid: 892 - type: Poweredlight - components: - - parent: 0 - pos: 2,23.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 891 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 893 - type: PoweredSmallLight - components: - - parent: 0 - pos: 11,24.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 894 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 894 - type: LightBulb - components: - - parent: 893 - type: Transform -- uid: 895 - type: Catwalk - components: - - parent: 0 - pos: 13.5,24.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 896 - type: PoweredSmallLight - components: - - parent: 0 - pos: 7.5,26 - rot: 1.5707963267948966 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 897 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 897 - type: LightBulb - components: - - parent: 896 - type: Transform -- uid: 898 - type: ResearchAndDevelopmentServer - components: - - parent: 0 - pos: 11.5,24.5 - rot: 1.5707963267948966 rad - type: Transform - - points: 343000 - type: ResearchServer -- uid: 899 - type: ComputerResearchAndDevelopment - components: - - parent: 0 - pos: 8.5,18.5 - type: Transform -- uid: 900 - type: BaseResearchAndDevelopmentPointSource - components: - - parent: 0 - pos: 13.5,16.5 - type: Transform -- uid: 901 - type: Protolathe - components: - - parent: 0 - pos: 8.5,17.5 - type: Transform -- uid: 902 - type: Autolathe - components: - - parent: 0 - pos: 13.5,18.5 - type: Transform -- uid: 903 - type: Autolathe - components: - - parent: 0 - pos: -4.5,-5.5 - type: Transform -- uid: 904 - type: Table - components: - - parent: 0 - pos: 8.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 905 - type: Table - components: - - parent: 0 - pos: 9.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 906 - type: Table - components: - - parent: 0 - pos: 10.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 907 - type: Table - components: - - parent: 0 - pos: 11.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 908 - type: Table - components: - - parent: 0 - pos: 13.5,17.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 909 - type: Wire - components: - - parent: 0 - pos: 2.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 910 - type: Wire - components: - - parent: 0 - pos: 1.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 911 - type: APC - components: - - parent: 0 - pos: 1.5,14.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 912 - type: APC - components: - - parent: 0 - pos: 14.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 913 - type: APC - components: - - parent: 0 - pos: 18.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 914 - type: Wire - components: - - parent: 0 - pos: 7.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 915 - type: Wire - components: - - parent: 0 - pos: 8.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 916 - type: Wire - components: - - parent: 0 - pos: 9.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 917 - type: Wire - components: - - parent: 0 - pos: 10.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 918 - type: Wire - components: - - parent: 0 - pos: 11.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 919 - type: Wire - components: - - parent: 0 - pos: 12.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 920 - type: Wire - components: - - parent: 0 - pos: 13.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 921 - type: Wire - components: - - parent: 0 - pos: 14.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 922 - type: Wire - components: - - parent: 0 - pos: 14.5,19.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 923 - type: Wire - components: - - parent: 0 - pos: 15.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 924 - type: Wire - components: - - parent: 0 - pos: 16.5,20.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 925 - type: Wire - components: - - parent: 0 - pos: 16.5,21.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 926 - type: Wire - components: - - parent: 0 - pos: 16.5,22.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 927 - type: Wire - components: - - parent: 0 - pos: 16.5,23.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 928 - type: Wire - components: - - parent: 0 - pos: 16.5,24.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 929 - type: Wire - components: - - parent: 0 - pos: 16.5,25.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 930 - type: Wire - components: - - parent: 0 - pos: 16.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 931 - type: Wire - components: - - parent: 0 - pos: 16.5,27.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 932 - type: Wire - components: - - parent: 0 - pos: 17.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 933 - type: Wire - components: - - parent: 0 - pos: 18.5,26.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 934 - type: Generator - components: - - parent: 0 - pos: 3.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 935 - type: Generator - components: - - parent: 0 - pos: 2.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 936 - type: Generator - components: - - parent: 0 - pos: 1.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 937 - type: Generator - components: - - parent: 0 - pos: 0.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 938 - type: Wire - components: - - parent: 0 - pos: 0.5,-12.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 939 - type: Poweredlight - components: - - parent: 0 - pos: 8,16.5 - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 940 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 940 - type: LightTube - components: - - parent: 939 - type: Transform -- uid: 941 - type: APC - components: - - parent: 0 - pos: 7.5,18.5 - type: Transform -- uid: 942 - type: Wire - components: - - parent: 0 - pos: 7.5,18.5 - type: Transform -- uid: 943 - type: GlassStack - components: - - parent: 0 - pos: 8.560405,21.456738 - type: Transform -- uid: 944 - type: GlassStack - components: - - parent: 0 - pos: 8.57603,21.566113 - type: Transform -- uid: 945 - type: MetalStack - components: - - parent: 0 - pos: 9.435405,21.503613 - type: Transform -- uid: 946 - type: MetalStack - components: - - parent: 0 - pos: 9.654155,21.628613 - type: Transform -- uid: 947 - type: CableStack1 - components: - - parent: 0 - pos: 10.561831,21.767809 - type: Transform -- uid: 948 - type: CableStack1 - components: - - parent: 0 - pos: 10.577456,21.424059 - type: Transform -- uid: 949 - type: ChairOfficeLight - components: - - parent: 0 - pos: 9.5,18.5 - rot: 3.141592653589793 rad - type: Transform -- uid: 950 - type: ChairOfficeLight - components: - - parent: 0 - pos: 9.5,16.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 951 - type: Chair - components: - - parent: 0 - pos: 12.5,17.5 - type: Transform -- uid: 952 - type: WardrobeScience - components: - - parent: 0 - pos: 12.5,21.5 - rot: -1.5707963267948966 rad - type: Transform - - IsPlaceable: False - type: PlaceableSurface - - containers: - EntityStorageComponent: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 953 - type: solid_wall - components: - - parent: 0 - pos: 5.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 954 - type: solid_wall - components: - - parent: 0 - pos: 6.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 955 - type: solid_wall - components: - - parent: 0 - pos: 7.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 956 - type: solid_wall - components: - - parent: 0 - pos: 8.5,2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 957 - type: solid_wall - components: - - parent: 0 - pos: 8.5,1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 958 - type: solid_wall - components: - - parent: 0 - pos: 8.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 959 - type: solid_wall - components: - - parent: 0 - pos: 8.5,-0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 960 - type: solid_wall - components: - - parent: 0 - pos: 8.5,-1.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 961 - type: solid_wall - components: - - parent: 0 - pos: 8.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 962 - type: solid_wall - components: - - parent: 0 - pos: 8.5,-3.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 963 - type: solid_wall - components: - - parent: 0 - pos: 8.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 964 - type: solid_wall - components: - - parent: 0 - pos: 7.5,-4.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 965 - type: GravityGenerator - components: - - parent: 0 - pos: 6.5,0.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 966 - type: Poweredlight - components: - - parent: 0 - pos: 8,-1.5 - rot: 3.141592653589793 rad - type: Transform - - color: '#FFFFFFFF' - type: PointLight - - containers: - light_bulb: - entities: - - 967 - type: Content.Server.GameObjects.ContainerSlot - type: ContainerContainer -- uid: 967 - type: LightTube - components: - - parent: 966 - type: Transform -- uid: 968 - type: AirlockEngineering - components: - - parent: 0 - pos: 4.5,-2.5 - rot: -1.5707963267948966 rad - type: Transform -- uid: 969 - type: PowerCellSmallStandard - components: - - parent: 1 - type: Transform - - startingCharge: 1000 - type: PowerCell -- uid: 970 - type: PowerCellSmallStandard - components: - - parent: 2 - type: Transform - - startingCharge: 1000 - type: PowerCell -- uid: 971 - type: MagazinePistolSmg - components: - - parent: 269 - type: Transform - - containers: - RangedMagazine-magazine: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer -- uid: 972 - type: MagazinePistolSmg - components: - - parent: 270 - type: Transform - - containers: - RangedMagazine-magazine: - type: Robust.Server.GameObjects.Components.Container.Container - type: ContainerContainer + - flags: + - None + type: Destructible ... diff --git a/Resources/Prototypes/Body/Parts/humanoid_parts.yml b/Resources/Prototypes/Body/Parts/humanoid_parts.yml index 5437b3e6a3..a9964674e2 100644 --- a/Resources/Prototypes/Body/Parts/humanoid_parts.yml +++ b/Resources/Prototypes/Body/Parts/humanoid_parts.yml @@ -33,6 +33,7 @@ damageContainer: biologicalDamageContainer resistances: defaultResistances surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + isVital: true mechanisms: - mechanism.Brain.BasicHuman - mechanism.Eyes.BasicHuman diff --git a/Resources/Prototypes/Catalog/Fills/backpack.yml b/Resources/Prototypes/Catalog/Fills/backpack.yml new file mode 100644 index 0000000000..f6ddfd31de --- /dev/null +++ b/Resources/Prototypes/Catalog/Fills/backpack.yml @@ -0,0 +1,57 @@ +- type: entity + abstract: true + parent: BackpackClothing + id: BackpackClothingFilled + components: + - type: StorageFill + contents: + - BoxSurvival + +- type: entity + abstract: true + parent: ClownPack + id: ClownPackFilled + components: + - type: StorageFill + contents: + - BoxSurvival + +- type: entity + abstract: true + parent: SecPack + id: SecPackFilled + components: + - type: StorageFill + contents: + - BoxSurvival + - Stunbaton + - Flash + +- type: entity + abstract: true + parent: BackpackMedical + id: BackpackMedicalFilled + components: + - type: StorageFill + contents: + - BoxSurvival + +- type: entity + abstract: true + parent: BackpackCaptain + id: BackpackCaptainFilled + components: + - type: StorageFill + contents: + - BoxSurvival + #- StationCharter + #- TelescopicBaton + +- type: entity + abstract: true + parent: BackpackEngineering + id: BackpackEngineeringFilled + components: + - type: StorageFill + contents: + - BoxSurvival diff --git a/Resources/Prototypes/Damage/damage_containers.yml b/Resources/Prototypes/Damage/damage_containers.yml index bb950b47f1..5fad0c557c 100644 --- a/Resources/Prototypes/Damage/damage_containers.yml +++ b/Resources/Prototypes/Damage/damage_containers.yml @@ -5,6 +5,7 @@ - Burn - Toxin - Airloss + - Genetic - type: damageContainer id: metallicDamageContainer diff --git a/Resources/Prototypes/Damage/resistance_sets.yml b/Resources/Prototypes/Damage/resistance_sets.yml index 5b829d48df..47fe96ef92 100644 --- a/Resources/Prototypes/Damage/resistance_sets.yml +++ b/Resources/Prototypes/Damage/resistance_sets.yml @@ -2,55 +2,79 @@ id: defaultResistances coefficients: Blunt: 1.0 + Slash: 1.0 Piercing: 1.0 Heat: 1.0 - Disintegration: 1.0 - Cellular: 1.0 - DNA: 1.0 + Shock: 1.0 + Cold: 1.0 + Poison: 1.0 + Radiation: 1.0 Asphyxiation: 1.0 + Bloodloss: 1.0 + Cellular: 1.0 flatReductions: Blunt: 0 + Slash: 0 Piercing: 0 Heat: 0 - Disintegration: 0 + Shock: 0 + Cold: 0 + Poison: 0 + Radiation: 0 + Asphyxiation: 0 + Bloodloss: 0 Cellular: 0 - DNA: 0 - Asphyxiation: 0 - type: resistanceSet id: dionaResistances coefficients: Blunt: 0.5 + Slash: 1.2 Piercing: 0.7 Heat: 1.8 - Disintegration: 1.8 - Cellular: 1.0 - DNA: 1.0 + Shock: 0.5 + Cold: 1.5 + Poison: 0.8 + Radiation: 0 Asphyxiation: 1.0 + Bloodloss: 1.0 + Cellular: 1.0 flatReductions: Blunt: 0 + Slash: 0 Piercing: 0 Heat: 0 - Disintegration: 0 - Cellular: 0 - DNA: 0 + Shock: 0 + Cold: 0 + Poison: 0 + Radiation: 0 Asphyxiation: 0 + Bloodloss: 0 + Cellular: 0 - type: resistanceSet id: metallicResistances coefficients: Blunt: 0.7 + Slash: 0.5 Piercing: 0.7 Heat: 1.0 - Disintegration: 1.0 - Cellular: 0.0 - DNA: 0.0 - Asphyxiation: 0.0 + Shock: 1.2 + Cold: 0 + Poison: 0 + Radiation: 0 + Asphyxiation: 0 + Bloodloss: 0 + Cellular: 0 flatReductions: Blunt: 0 + Slash: 0 Piercing: 0 Heat: 0 - Disintegration: 0 - Cellular: 0 - DNA: 0 - Asphyxiation: 0 \ No newline at end of file + Shock: 0 + Cold: 0 + Poison: 0 + Radiation: 0 + Asphyxiation: 0 + Bloodloss: 0 + Cellular: 0 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index a861d66e27..fad96b4a63 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -6,17 +6,16 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/backpack.rsi - state: backpack + state: icon - type: Icon sprite: Clothing/Back/Backpacks/backpack.rsi - state: backpack + state: icon - type: Clothing size: 9999 QuickEquip: false Slots: - back sprite: Clothing/Back/Backpacks/backpack.rsi - HeldPrefix: backpack - type: Storage capacity: 100 @@ -28,13 +27,12 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/clown.rsi - state: clown + state: icon - type: Icon sprite: Clothing/Back/Backpacks/clown.rsi - state: clown + state: icon - type: Clothing sprite: Clothing/Back/Backpacks/clown.rsi - HeldPrefix: clown - type: entity parent: BackpackClothing @@ -44,13 +42,12 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/security.rsi - state: security + state: icon - type: Icon sprite: Clothing/Back/Backpacks/security.rsi - state: security + state: icon - type: Clothing sprite: Clothing/Back/Backpacks/security.rsi - HeldPrefix: security - type: entity parent: BackpackClothing @@ -60,13 +57,12 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/engineering.rsi - state: engineering + state: icon - type: Icon sprite: Clothing/Back/Backpacks/engineering.rsi - state: engineering + state: icon - type: Clothing sprite: Clothing/Back/Backpacks/engineering.rsi - HeldPrefix: engineering - type: entity parent: BackpackClothing @@ -76,13 +72,12 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/medical.rsi - state: medical + state: icon - type: Icon sprite: Clothing/Back/Backpacks/medical.rsi - state: medical + state: icon - type: Clothing sprite: Clothing/Back/Backpacks/medical.rsi - HeldPrefix: medical - type: entity parent: BackpackClothing @@ -92,13 +87,59 @@ components: - type: Sprite sprite: Clothing/Back/Backpacks/captain.rsi - state: captain + state: icon - type: Icon sprite: Clothing/Back/Backpacks/captain.rsi - state: captain + state: icon - type: Clothing sprite: Clothing/Back/Backpacks/captain.rsi - HeldPrefix: captain + +# Inhands/On mob aren't working until I refactor this file -Swept + +- type: entity + parent: BackpackClothing + id: BackpackMime + name: mime backpack + description: A silent backpack made for those silent workers. Silence Co. + components: + - type: Sprite + sprite: Clothing/Back/Backpacks/mime.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Backpacks/mime.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Backpacks/mime.rsi + +- type: entity + parent: BackpackClothing + id: BackpackChemistry + name: chemistry backpack + description: A backpack specially designed to repel stains and hazardous liquids. + components: + - type: Sprite + sprite: Clothing/Back/Backpacks/chemistry.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Backpacks/chemistry.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Backpacks/chemistry.rsi + +- type: entity + parent: BackpackClothing + id: BackpackBotany + name: botany backpack + description: It's a backpack made of all-natural fibers. + components: + - type: Sprite + sprite: Clothing/Back/Backpacks/botany.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Backpacks/botany.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Backpacks/botany.rsi - type: entity parent: BackpackClothing diff --git a/Resources/Prototypes/Entities/Clothing/Back/courier.yml b/Resources/Prototypes/Entities/Clothing/Back/courier.yml deleted file mode 100644 index a9e45b3953..0000000000 --- a/Resources/Prototypes/Entities/Clothing/Back/courier.yml +++ /dev/null @@ -1,149 +0,0 @@ -- type: entity - parent: BackpackClothing - id: MessengerBag - name: messenger bag - description: A sturdy backpack worn over one shoulder. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier.rsi - state: courier - - type: Icon - sprite: Clothing/Back/Couriers/courier.rsi - state: courier - - type: Clothing - sprite: Clothing/Back/Couriers/courier.rsi - ClothingPrefix: courier - -- type: entity - parent: BackpackClothing - id: MessengerBagChemistry - name: chemistry messenger bag - description: A sterile backpack worn over one shoulder, in Chemistry colors. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_chemistry.rsi - state: courier-chemistry - - type: Icon - sprite: Clothing/Back/Couriers/courier_chemistry.rsi - state: courier-chemistry - - type: Clothing - sprite: Clothing/Back/Couriers/courier_chemistry.rsi - HeldPrefix: medical - ClothingPrefix: courier-chemistry - -- type: entity - parent: BackpackClothing - id: MessengerBagMedical - name: medical messenger bag - description: A sterile backpack worn over one shoulder used in medical departments. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_medical.rsi - state: courier-medical - - type: Icon - sprite: Clothing/Back/Couriers/courier_medical.rsi - state: courier-medical - - type: Clothing - sprite: Clothing/Back/Couriers/courier_medical.rsi - HeldPrefix: medical - ClothingPrefix: courier-medical - -- type: entity - parent: BackpackClothing - id: MessengerBagVirology - name: virology messenger bag - description: A sterile backpack worn over one shoulder. This one is in Virology colors. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_virology.rsi - state: courier-virology - - type: Icon - sprite: Clothing/Back/Couriers/courier_virology.rsi - state: courier-virology - - type: Clothing - sprite: Clothing/Back/Couriers/courier_virology.rsi - HeldPrefix: medical - ClothingPrefix: courier-virology - -- type: entity - parent: BackpackClothing - id: MessengerBagEngineering - name: engineering messenger bag - description: A strong backpack worn over one shoulder. This one is designed for Industrial work. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_engineering.rsi - state: courier-engineering - - type: Icon - sprite: Clothing/Back/Couriers/courier_engineering.rsi - state: courier-engineering - - type: Clothing - sprite: Clothing/Back/Couriers/courier_engineering.rsi - HeldPrefix: engineering - ClothingPrefix: courier-engineering - -- type: entity - parent: BackpackClothing - id: MessengerBagScience - name: science messenger bag - description: A sterile backpack worn over one shoulder used in scientific departments. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_science.rsi - state: courier-science - - type: Icon - sprite: Clothing/Back/Couriers/courier_science.rsi - state: courier-science - - type: Clothing - sprite: Clothing/Back/Couriers/courier_science.rsi - ClothingPrefix: courier-science - -- type: entity - parent: BackpackClothing - id: MessengerBagCaptain - name: captain's messenger bag - description: A special backpack worn over one shoulder. This one is made specifically for officers. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_captain.rsi - state: courier-captain - - type: Icon - sprite: Clothing/Back/Couriers/courier_captain.rsi - state: courier-captain - - type: Clothing - sprite: Clothing/Back/Couriers/courier_captain.rsi - HeldPrefix: captain - ClothingPrefix: courier-captain - -- type: entity - parent: BackpackClothing - id: MessengerBagHydroponics - name: hydroponics messenger bag - description: A backpack worn over one shoulder. This one is designed for plant-related work. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_hydroponics.rsi - state: courier-hydroponics - - type: Icon - sprite: Clothing/Back/Couriers/courier_hydroponics.rsi - state: courier-hydroponics - - type: Clothing - sprite: Clothing/Back/Couriers/courier_hydroponics.rsi - ClothingPrefix: courier-hydroponics - -- type: entity - parent: BackpackClothing - id: MessengerBagSecurity - name: security messenger bag - description: A tactical backpack worn over one shoulder. This one is in Security colors. - components: - - type: Sprite - sprite: Clothing/Back/Couriers/courier_security.rsi - state: courier-security - - type: Icon - sprite: Clothing/Back/Couriers/courier_security.rsi - state: courier-security - - type: Clothing - sprite: Clothing/Back/Couriers/courier_security.rsi - HeldPrefix: security - ClothingPrefix: courier-security diff --git a/Resources/Prototypes/Entities/Clothing/Back/duffel.yml b/Resources/Prototypes/Entities/Clothing/Back/duffel.yml new file mode 100644 index 0000000000..8dc7431db2 --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Back/duffel.yml @@ -0,0 +1,137 @@ +- type: entity + parent: Clothing + id: Duffelbag + name: duffelbag + description: "A large duffel bag for holding extra things." + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel.rsi + size: 9999 + QuickEquip: false + Slots: + - back + - type: Storage + capacity: 100 + +- type: entity + parent: Duffelbag + id: DuffelbagEngineering + name: engineering duffelbag + description: + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_eng.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_eng.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_eng.rsi + +- type: entity + parent: Duffelbag + id: DuffelbagMedical + name: medical duffelbag + description: "A large duffel bag for holding extra medical supplies." + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_med.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_med.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_med.rsi + +- type: entity + parent: Duffelbag + id: DuffelbagCaptain + name: captain duffelbag + description: "A large duffel bag for holding extra captainly goods." + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_cap.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_cap.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_cap.rsi + +- type: entity + parent: Duffelbag + id: DuffelbagClown + name: clown duffelbag + description: + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_clown.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_clown.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_clown.rsi + +- type: entity + parent: Duffelbag + id: DuffelbagSecurity + name: security duffelbag + description: + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_sec.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_sec.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_sec.rsi + +- type: entity + parent: Duffelbag + id: DuffelbagSyndicate + name: syndicate duffelbag + description: + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_syn.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_syn.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_syn.rsi + +# FILLED + +- type: entity + parent: Duffelbag + id: DuffelbagSurgeryFilled + name: surgical duffelbag + description: "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools." + components: + - type: Sprite + sprite: Clothing/Back/Duffels/duffel_med.rsi + state: icon + - type: Icon + sprite: Clothing/Back/Duffels/duffel_med.rsi + state: icon + - type: Clothing + sprite: Clothing/Back/Duffels/duffel_med.rsi + - type: StorageFill + contents: + - Hemostat + - BoneSaw + - Drill + - Cautery + - Retractor + - Scalpel + - type: Storage + capacity: 30 diff --git a/Resources/Prototypes/Entities/Clothing/Back/satchel.yml b/Resources/Prototypes/Entities/Clothing/Back/satchel.yml index 43db28946b..dfafbb49b3 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/satchel.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/satchel.yml @@ -1,168 +1,121 @@ - type: entity - parent: BackpackClothing - id: Satchel + parent: Clothing + id: SatchelBase name: satchel description: A trendy looking satchel. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel.rsi - state: satchel + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel.rsi - state: satchel + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel.rsi - ClothingPrefix: satchel - type: Storage - capacity: 300 + capacity: 100 - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelEngineering name: engineering satchel description: A tough satchel with extra pockets. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_engineering.rsi - state: satchel-engineering + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_engineering.rsi - state: satchel-engineering + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_engineering.rsi - HeldPrefix: engineering - ClothingPrefix: satchel-engineering - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelMedical name: medical satchel description: A sterile satchel used in medical departments. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_medical.rsi - state: satchel-medical + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_medical.rsi - state: satchel-medical + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_medical.rsi - HeldPrefix: medical - ClothingPrefix: satchel-medical - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelChemistry name: chemistry satchel description: A sterile satchel with chemist colours. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_chemistry.rsi - state: satchel-chemistry + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_chemistry.rsi - state: satchel-chemistry + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_chemistry.rsi - HeldPrefix: medical - ClothingPrefix: satchel-chemistry - type: entity - parent: BackpackClothing - id: SatchelGenetics - name: genetics satchel - description: A sterile satchel with geneticist colours. - components: - - type: Sprite - sprite: Clothing/Back/Satchels/satchel_genetics.rsi - state: satchel-genetics - - type: Icon - sprite: Clothing/Back/Satchels/satchel_genetics.rsi - state: satchel-genetics - - type: Clothing - sprite: Clothing/Back/Satchels/satchel_genetics.rsi - HeldPrefix: medical - ClothingPrefix: satchel-genetics - -- type: entity - parent: BackpackClothing - id: SatchelVirology - name: virology satchel - description: A sterile satchel with virologist colours. - components: - - type: Sprite - sprite: Clothing/Back/Satchels/satchel_virology.rsi - state: satchel-virology - - type: Icon - sprite: Clothing/Back/Satchels/satchel_virology.rsi - state: satchel-virology - - type: Clothing - sprite: Clothing/Back/Satchels/satchel_virology.rsi - HeldPrefix: medical - ClothingPrefix: satchel-virology - -- type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelScience name: science satchel description: Useful for holding research materials. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_science.rsi - state: satchel-science + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_science.rsi - state: satchel-science + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_science.rsi - ClothingPrefix: satchel-science - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelSecurity name: security satchel description: A robust satchel for security related needs. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_security.rsi - state: satchel-security + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_security.rsi - state: satchel-security + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_security.rsi - HeldPrefix: security - ClothingPrefix: satchel-security - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelCaptain name: captain's satchel description: An exclusive satchel for Nanotrasen officers. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_captain.rsi - state: satchel-captain + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_captain.rsi - state: satchel-captain + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_captain.rsi - HeldPrefix: captain - ClothingPrefix: satchel-captain - type: entity - parent: BackpackClothing + parent: SatchelBase id: SatchelHydroponics name: hydroponics satchel description: A satchel made of all natural fibers. components: - type: Sprite sprite: Clothing/Back/Satchels/satchel_hydroponics.rsi - state: satchel-hydroponics + state: icon - type: Icon sprite: Clothing/Back/Satchels/satchel_hydroponics.rsi - state: satchel-hydroponics + state: icon - type: Clothing sprite: Clothing/Back/Satchels/satchel_hydroponics.rsi - ClothingPrefix: satchel-hydroponics diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index 96b0556f18..e3e11dea52 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -95,3 +95,18 @@ state: icon - type: Clothing sprite: Clothing/Masks/mask_mime.rsi + +- type: entity + parent: MasksBase + id: MaskSterile + name: sterile mask + description: + components: + - type: Sprite + sprite: Clothing/Masks/mask_sterile.rsi + state: icon + - type: Icon + sprite: Clothing/Masks/mask_sterile.rsi + state: icon + - type: Clothing + sprite: Clothing/Masks/mask_sterile.rsi diff --git a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml index bc92e47c07..324bd96eb9 100644 --- a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml +++ b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml @@ -16,6 +16,8 @@ - state: closed_unlit shader: unshaded map: ["enum.DoorVisualLayers.BaseUnlit"] + - state: welded + map: ["enum.DoorVisualLayers.BaseWelded"] - state: bolted shader: unshaded map: ["enum.DoorVisualLayers.BaseBolted"] diff --git a/Resources/Prototypes/Entities/Constructible/Ground/pipes.yml b/Resources/Prototypes/Entities/Constructible/Ground/pipes.yml index 5dcbab768c..da29191613 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/pipes.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/pipes.yml @@ -12,32 +12,31 @@ - type: Icon texture: Constructible/Power/eightdirwire.png - type: Sprite - sprite: Constructible/Power/hv_cable.rsi - type: Destructible thresholdvalue: 100 + - type: Appearance + visuals: + - type: PipeVisualizer + pipeRSI: Constructible/Atmos/pipe.rsi - type: entity parent: PipeBase id: FourwayPipe name: Fourway Pipe components: - - type: Sprite - state: hvcable_15 - type: NodeContainer nodes: - !type:PipeNode nodeGroupID: Pipe - pipeDirection: FourWay + pipeDirection: Fourway - type: entity parent: PipeBase id: LongitudinalPipe name: Longitudinal Pipe components: - - type: Sprite - state: hvcable_3 - type: NodeContainer nodes: - !type:PipeNode nodeGroupID: Pipe - pipeDirection: Longitudinal + pipeDirection: Longitudinal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Constructible/Ground/pumps.yml b/Resources/Prototypes/Entities/Constructible/Ground/pumps.yml index e3741e762e..ff727b63f6 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/pumps.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/pumps.yml @@ -12,25 +12,44 @@ - type: Icon texture: Constructible/Power/eightdirwire.png - type: Sprite - sprite: Constructible/Power/mv_cable.rsi + - type: Appearance + visuals: + - type: PipeVisualizer + pipeRSI: Constructible/Atmos/pipe.rsi + - type: PumpVisualizer + pumpRSI: Constructible/Atmos/pressurepump.rsi - type: Destructible thresholdvalue: 100 - type: entity + abstract: true parent: PumpBase - id: NorthFromSouthPipePump - name: North from south pipe pump + id: NorthwardLongitudinalPump components: - - type: Sprite - state: mvcable_3 - type: NodeContainer nodes: - !type:PipeNode nodeGroupID: Pipe - pipeDirection: North + pipeDirection: South - !type:PipeNode nodeGroupID: Pipe - pipeDirection: South - - type: DebugPump - outletDirection: North + pipeDirection: North + +- type: entity + parent: NorthwardLongitudinalPump + id: NorthwardLongitudinalVolumePump + name: Northward Longitudinal Volume Pump + components: + - type: VolumePump inletDirection: South + outletDirection: North + +- type: entity + parent: NorthwardLongitudinalPump + id: NorthwardLongitudinalPressurePump + name: Northward Longitudinal Pressure Pump + components: + - type: PressurePump + inletDirection: South + outletDirection: North + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Constructible/Ground/wires.yml b/Resources/Prototypes/Entities/Constructible/Ground/wires.yml index 269ff6074d..90b44d52ee 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/wires.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/wires.yml @@ -86,17 +86,3 @@ wireType: Apc - type: Destructible spawnondestroy: ApcExtensionCableStack1 - -#Depriciated, to be removed from maps - -- type: entity - id: Wire - name: Depriciated Wire - parent: ApcExtensionCable - components: - - type: NodeContainer - nodes: - - !type:AdjacentNode - nodeGroupID: HVPower - - !type:AdjacentNode - nodeGroupID: Apc diff --git a/Resources/Prototypes/Entities/Constructible/Power/AME/ame_controller.yml b/Resources/Prototypes/Entities/Constructible/Power/AME/ame_controller.yml new file mode 100644 index 0000000000..53c4c42f14 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/AME/ame_controller.yml @@ -0,0 +1,44 @@ +- type: entity + id: AMEController + name: AME Controller + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: Icon + sprite: Constructible/Power/ame_controller.rsi + state: control + - type: Sprite + sprite: Constructible/Power/ame_controller.rsi + state: control + - type: Collidable + shapes: + - !type:PhysShapeAabb + layer: + - Opaque + - Impassable + - MobImpassable + - VaultImpassable + - SmallImpassable + - type: Destructible + maxHP: 500 + - type: SnapGrid + offset: Center + - type: Anchorable + - type: AMEController + - type: UserInterface + interfaces: + - key: enum.AMEControllerUiKey.Key + type: AMEControllerBoundUserInterface + - type: Appearance + visuals: + - type: AMEControllerVisualizer + - type: NodeContainer + nodes: + - !type:AdjacentNode + nodeGroupID: AMEngine + - !type:AdjacentNode + nodeGroupID: HVPower + - type: PowerReceiver + - type: PowerSupplier + supplyRate: 0 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Constructible/Power/AME/ame_structure.yml b/Resources/Prototypes/Entities/Constructible/Power/AME/ame_structure.yml new file mode 100644 index 0000000000..93c9b23a5f --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/AME/ame_structure.yml @@ -0,0 +1,46 @@ +- type: entity + id: AMEShielding + name: AME shielding + description: Keeps the antimatter in and the matter out. + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: Sprite + drawdepth: Walls + sprite: Constructible/Power/ame_shielding.rsi + state: shield_0 + - type: Icon + texture: Constructible/Power/ame_shielding_base.png + - type: Collidable + shapes: + - !type:PhysShapeAabb + layer: + - Opaque + - Impassable + - MobImpassable + - VaultImpassable + - SmallImpassable + - type: Destructible + maxHP: 500 + spawnondestroy: AMEPart + - type: SnapGrid + offset: Center + - type: Airtight + - type: IconSmooth + mode: CardinalFlags + base: shield_ + key: ame_shield + - type: AMEShield + - type: NodeContainer + nodes: + - !type:AdjacentNode + nodeGroupID: AMEngine + - type: PointLight + enabled: false + radius: 5 + energy: 0.5 + color: "#00AAFF" + - type: Appearance + visuals: + - type: AMEVisualizer \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Constructible/Power/cloning_machine.yml b/Resources/Prototypes/Entities/Constructible/Power/cloning_machine.yml new file mode 100644 index 0000000000..11125bcc92 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/cloning_machine.yml @@ -0,0 +1,44 @@ +- type: entity + id: CloningPod + name: Cloning Pod + description: A Cloning Pod. 50% reliable. + components: + - type: Sprite + netsync: false + sprite: Objects/Specific/Medical/cloning.rsi + layers: + - state: pod_0 + map: ["enum.CloningPodVisualLayers.Machine"] + - type: PowerReceiver + - type: Icon + sprite: Objects/Specific/Medical/cloning.rsi + state: pod_0 + - type: Anchorable + - type: Clickable + - type: InteractionOutline + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.5,-0.25,0.5,0.25" + layer: + - Opaque + - Impassable + - MobImpassable + - VaultImpassable + IsScrapingFloor: true + - type: Physics + mass: 25 + anchored: true + - type: SnapGrid + offset: Center + - type: CloningPod + cloningTime: 10.0 + - type: Destructible + deadThreshold: 100 + - type: Appearance + visuals: + - type: CloningPodVisualizer + - type: UserInterface + interfaces: + - key: enum.CloningPodUIKey.Key + type: CloningPodBoundUserInterface diff --git a/Resources/Prototypes/Entities/Constructible/Power/debug_power.yml b/Resources/Prototypes/Entities/Constructible/Power/debug_power.yml new file mode 100644 index 0000000000..ca870a2241 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/debug_power.yml @@ -0,0 +1,126 @@ +- type: entity + id: DebugGenerator + parent: BaseGenerator + name: Debug Generator + +- type: entity + id: DebugConsumer + name: Debug Consumer + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + layer: [MobMask, Opaque] + - type: SnapGrid + offset: Center + - type: Sprite + texture: Constructible/Power/wiredmachine.png + - type: Icon + texture: Constructible/Power/wiredmachine.png + - type: NodeContainer + nodes: + - !type:AdjacentNode + nodeGroupID: HVPower + - type: PowerConsumer + drawRate: 50 + - type: Breakable + deadThreshold: 100 + - type: Anchorable + +- type: entity + id: DebugBatteryStorage + name: Debug Battery Storage + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + layer: [MobMask, Opaque] + - type: SnapGrid + offset: Center + - type: Sprite + texture: Constructible/Power/provider.png + - type: Icon + texture: Constructible/Power/provider.png + - type: Battery + - type: NodeContainer + nodes: + - !type:AdjacentNode + nodeGroupID: HVPower + - type: PowerConsumer + - type: BatteryStorage + - type: Anchorable + +- type: entity + id: DebugBatteryDischarger + name: Debug Battery Discharger + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + layer: [MobMask, Opaque] + - type: SnapGrid + offset: Center + - type: Sprite + texture: Constructible/Power/provider.png + - type: Icon + texture: Constructible/Power/provider.png + - type: Battery + - type: NodeContainer + nodes: + - !type:AdjacentNode + nodeGroupID: HVPower + - type: PowerSupplier + - type: BatteryDischarger + - type: Anchorable + +- type: entity + id: DebugSmes + parent: BaseSmes + name: Debug Smes + +- type: entity + id: DebugSubstation + parent: BaseSubstation + name: Debug Substation + +- type: entity + id: DebugApc + parent: BaseApc + name: Debug Apc + +- type: entity + id: DebugPowerReceiver + name: Debug Power Receiver + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.5, -0.5, 0.5, 0.5" + layer: [MobMask, Opaque] + - type: SnapGrid + offset: Center + - type: Sprite + texture: Constructible/Power/wirelessmachine.png + - type: Icon + texture: Constructible/Power/wirelessmachine.png + - type: PowerReceiver + - type: Anchorable diff --git a/Resources/Prototypes/Entities/Constructible/Power/power.yml b/Resources/Prototypes/Entities/Constructible/Power/power_base.yml similarity index 53% rename from Resources/Prototypes/Entities/Constructible/Power/power.yml rename to Resources/Prototypes/Entities/Constructible/Power/power_base.yml index 70c472224d..61118ad05e 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/power.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/power_base.yml @@ -1,6 +1,7 @@ - type: entity - id: DebugGenerator - name: Debug Generator + id: BaseGenerator + name: Base Generator + abstract: true placement: mode: SnapgridCenter components: @@ -26,93 +27,9 @@ - type: Anchorable - type: entity - id: DebugConsumer - name: Debug Consumer - placement: - mode: SnapgridCenter - components: - - type: Clickable - - type: InteractionOutline - - type: Collidable - shapes: - - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - layer: [MobMask, Opaque] - - type: SnapGrid - offset: Center - - type: Sprite - texture: Constructible/Power/wiredmachine.png - - type: Icon - texture: Constructible/Power/wiredmachine.png - - type: NodeContainer - nodes: - - !type:AdjacentNode - nodeGroupID: HVPower - - type: PowerConsumer - drawRate: 50 - - type: Breakable - deadThreshold: 100 - - type: Anchorable - -- type: entity - id: DebugBatteryStorage - name: Debug Battery Storage - placement: - mode: SnapgridCenter - components: - - type: Clickable - - type: InteractionOutline - - type: Collidable - shapes: - - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - layer: [MobMask, Opaque] - - type: SnapGrid - offset: Center - - type: Sprite - texture: Constructible/Power/provider.png - - type: Icon - texture: Constructible/Power/provider.png - - type: Battery - - type: NodeContainer - nodes: - - !type:AdjacentNode - nodeGroupID: HVPower - - type: PowerConsumer - - type: BatteryStorage - - type: Anchorable - -- type: entity - id: DebugBatteryDischarger - name: Debug Battery Discharger - placement: - mode: SnapgridCenter - components: - - type: Clickable - - type: InteractionOutline - - type: Collidable - shapes: - - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - layer: [MobMask, Opaque] - - type: SnapGrid - offset: Center - - type: Sprite - texture: Constructible/Power/provider.png - - type: Icon - texture: Constructible/Power/provider.png - - type: Battery - - type: NodeContainer - nodes: - - !type:AdjacentNode - nodeGroupID: HVPower - - type: PowerSupplier - - type: BatteryDischarger - - type: Anchorable - -- type: entity - id: DebugSmes - name: Debug Smes + id: BaseSmes + name: Base Smes + abstract: true placement: mode: SnapgridCenter components: @@ -155,8 +72,9 @@ - type: Anchorable - type: entity - id: DebugSubstation - name: Debug Substation + id: BaseSubstation + name: Base Substation + abstract: true placement: mode: SnapgridCenter components: @@ -193,8 +111,9 @@ - type: Anchorable - type: entity - id: DebugApc - name: Debug Apc + id: BaseApc + name: Base Apc + abstract: true placement: mode: SnapgridCenter components: @@ -239,28 +158,6 @@ - key: enum.ApcUiKey.Key type: ApcBoundUserInterface -- type: entity - id: DebugPowerReceiver - name: Debug Power Receiver - placement: - mode: SnapgridCenter - components: - - type: Clickable - - type: InteractionOutline - - type: Collidable - shapes: - - !type:PhysShapeAabb - bounds: "-0.5, -0.5, 0.5, 0.5" - layer: [MobMask, Opaque] - - type: SnapGrid - offset: Center - - type: Sprite - texture: Constructible/Power/wirelessmachine.png - - type: Icon - texture: Constructible/Power/wirelessmachine.png - - type: PowerReceiver - - type: Anchorable - - type: entity id: SolarPanel name: solar panel @@ -291,50 +188,3 @@ offset: Center - type: Breakable deadThreshold: 100 - -#Depriciated, to be removed from maps - -- type: entity - id: Generator - name: Depriciated Generator - parent: DebugGenerator - components: - - type: PowerSupplier - voltage: High - supplyRate: 100000 - -- type: entity - id: APC - name: Depriciated Apc - parent: DebugApc - components: - - type: NodeContainer - nodes: - - !type:AdjacentNode - nodeGroupID: HVPower - - !type:AdjacentNode - nodeGroupID: Apc - - type: PowerConsumer - voltage: High - - type: BatteryStorage - activeDrawRate: 10000 - -- type: entity - id: SMES - name: Depriciated Smes - parent: DebugSmes - -- type: entity - id: SmesDry - name: Depriciated Smes - parent: DebugSmes - -- type: entity - id: WiredMachine - name: Depriciated WiredMachine - parent: DebugConsumer - -- type: entity - id: WirelessMachine - name: Depriciated WirelessMachine - parent: DebugPowerReceiver diff --git a/Resources/Prototypes/Entities/Constructible/Power/saltern_power.yml b/Resources/Prototypes/Entities/Constructible/Power/saltern_power.yml new file mode 100644 index 0000000000..6fcf924aed --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Power/saltern_power.yml @@ -0,0 +1,44 @@ +- type: entity + id: SalternGenerator + parent: BaseGenerator + name: Generator + components: + - type: PowerSupplier + supplyRate: 30000 + +- type: entity + id: SalternSmes + parent: BaseSmes + name: Smes + components: + - type: Battery + maxCharge: 10000000 + startingCharge: 10000000 + - type: BatteryStorage + activeDrawRate: 0 + - type: BatteryDischarger + activeSupplyRate: 0 + +- type: entity + id: SalternSubstation + parent: BaseSubstation + name: Substation + components: + - type: Battery + maxCharge: 4000000 + startingCharge: 4000000 + - type: BatteryStorage + activeDrawRate: 8000 + - type: BatteryDischarger + activeSupplyRate: 6000 + +- type: entity + id: SalternApc + parent: BaseApc + name: Apc + components: + - type: Battery + maxCharge: 12000 + startingCharge: 2000 + - type: BatteryStorage + activeDrawRate: 2000 diff --git a/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml b/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml index 0c3aeb82aa..a359afb625 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/bar_sign.yml @@ -15,11 +15,35 @@ - type: PowerReceiver - type: BarSign +- type: entity + id: LargeBarSign + name: large bar sign + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + - type: Sprite + drawdepth: WallTops + sprite: Constructible/Misc/sylphs.rsi + state: sylph + - type: Icon + sprite: Constructible/Misc/sylphs.rsi + state: sylph + - type: PowerReceiver + - type: BarSign - type: entity - id: BarSignMalteseFalcon - name: Maltese Falcon + id: BarSignEngineChange + name: The Engine Change parent: BarSign components: - type: BarSign - current: MalteseFalcon + current: EngineChange + +- type: entity + id: BarSignCyberSylph + name: Cyber Sylph + parent: LargeBarSign + components: + - type: BarSign + current: CyberSylph diff --git a/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml b/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml new file mode 100644 index 0000000000..243d5eb565 --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Walls/extinguisher_cabinet.yml @@ -0,0 +1,26 @@ +- type: entity + id: ExtinguisherCabinet + name: extinguisher cabinet + abstract: true + description: A small wall mounted cabinet designed to hold a fire extinguisher. + components: + - type: Clickable + - type: InteractionOutline + - type: Sprite + sprite: Constructible/Misc/extinguisher_cabinet.rsi + state: extinguisher_closed + - type: Icon + sprite: Constructible/Misc/extinguisher_cabinet.rsi + state: extinguisher_closed + - type: ExtinguisherCabinet + - type: Appearance + visuals: + - type: ExtinguisherCabinetVisualizer + placement: + mode: SnapgridCenter + +- type: entity + id: ExtinguisherCabinetFilled + parent: ExtinguisherCabinet + components: + - type: ExtinguisherCabinetFilled diff --git a/Resources/Prototypes/Entities/Constructible/Walls/lighting.yml b/Resources/Prototypes/Entities/Constructible/Walls/lighting.yml index 06ee76322b..7e795b0391 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/lighting.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/lighting.yml @@ -3,11 +3,6 @@ name: "unpowered light" components: - type: Clickable - bounds: - south: 0.25,-0.5,0.75,0.5 - north: -0.25,-0.5,0.25,0.5 - east: -0.5,-0.5,0.5,0 - west: -0.5,0,0.5,0.5 - type: InteractionOutline - type: Collidable - type: LoopingSound @@ -22,6 +17,7 @@ energy: 1.2 offset: "0.5, 0" color: "#DCDCC6" + - type: SignalReceiver placement: snap: - Wallmount @@ -31,9 +27,6 @@ id: Poweredlight parent: WallLight components: - - type: Clickable - - type: InteractionOutline - - type: Collidable - type: Sprite sprite: Constructible/Lighting/light_tube.rsi state: off @@ -53,8 +46,6 @@ id: PoweredSmallLight parent: WallLight components: - - type: Clickable - - type: InteractionOutline - type: Sprite sprite: Constructible/Lighting/light_small.rsi state: off diff --git a/Resources/Prototypes/Entities/Constructible/Walls/linking.yml b/Resources/Prototypes/Entities/Constructible/Walls/linking.yml new file mode 100644 index 0000000000..176945ebfa --- /dev/null +++ b/Resources/Prototypes/Entities/Constructible/Walls/linking.yml @@ -0,0 +1,37 @@ +- type: entity + id: SignalSwitch + name: "signal switch" + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + - type: Sprite + sprite: Constructible/Linking/switch.rsi + state: on + - type: Icon + sprite: Constructible/Linking/switch.rsi + state: on + - type: SignalSwitch + - type: SignalTransmitter + placement: + snap: + - Wallmount + +- type: entity + id: SignalButton + name: "signal button" + components: + - type: Clickable + - type: InteractionOutline + - type: Collidable + - type: Sprite + sprite: Constructible/Linking/switch.rsi + state: dead + - type: Icon + sprite: Constructible/Linking/switch.rsi + state: dead + - type: SignalButton + - type: SignalTransmitter + placement: + snap: + - Wallmount diff --git a/Resources/Prototypes/Entities/Constructible/disposal.yml b/Resources/Prototypes/Entities/Constructible/disposal.yml index d9e67582e7..64ee85fe52 100644 --- a/Resources/Prototypes/Entities/Constructible/disposal.yml +++ b/Resources/Prototypes/Entities/Constructible/disposal.yml @@ -10,20 +10,6 @@ - type: InteractionOutline - type: Collidable anchored: true - shapes: - - !type:PhysShapeAabb - bounds: "-0.3,-0.3,0.3,0.3" - mask: - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - layer: - - Opaque - - Impassable - - MobImpassable - - VaultImpassable - - SmallImpassable - type: SnapGrid offset: Center - type: Anchorable diff --git a/Resources/Prototypes/Entities/Effects/Markers/gamemode_conditional_spawners.yml b/Resources/Prototypes/Entities/Effects/Markers/gamemode_conditional_spawners.yml index f026ba3d01..e6586b1a44 100644 --- a/Resources/Prototypes/Entities/Effects/Markers/gamemode_conditional_spawners.yml +++ b/Resources/Prototypes/Entities/Effects/Markers/gamemode_conditional_spawners.yml @@ -167,7 +167,6 @@ - SmgAtreides - SmgC20r - SmgDrozd - - SmgStraylight - SmgWt550 - SmgZoric chance: 0.95 diff --git a/Resources/Prototypes/Entities/Effects/Markers/spawn_points_jobs.yml b/Resources/Prototypes/Entities/Effects/Markers/spawn_points_jobs.yml index 3512267b89..78e10568b3 100644 --- a/Resources/Prototypes/Entities/Effects/Markers/spawn_points_jobs.yml +++ b/Resources/Prototypes/Entities/Effects/Markers/spawn_points_jobs.yml @@ -38,7 +38,6 @@ id: SpawnPointBartender parent: SpawnPointJobBase name: spawn point (bartender) - components: - type: SpawnPoint job_id: Bartender @@ -52,7 +51,6 @@ id: SpawnPointChef parent: SpawnPointJobBase name: spawn point (chef) - components: - type: SpawnPoint job_id: Chef @@ -66,7 +64,6 @@ id: SpawnPointClown parent: SpawnPointJobBase name: spawn point (clown) - components: - type: SpawnPoint job_id: Clown @@ -75,12 +72,24 @@ - type: Icon state: Clown +# Mime +- type: entity + id: SpawnPointMime + parent: SpawnPointJobBase + name: spawn point (mime) + components: + - type: SpawnPoint + job_id: Mime + - type: Sprite + state: Mime + - type: Icon + state: Mime + # Janitor - type: entity id: SpawnPointJanitor parent: SpawnPointJobBase name: spawn point (janitor) - components: - type: SpawnPoint job_id: Janitor @@ -94,7 +103,6 @@ id: SpawnPointCaptain parent: SpawnPointJobBase name: spawn point (captain) - components: - type: SpawnPoint job_id: Captain @@ -108,7 +116,6 @@ id: SpawnPointHeadOfPersonnel parent: SpawnPointJobBase name: spawn point (headofpersonnel) - components: - type: SpawnPoint job_id: HeadOfPersonnel @@ -122,7 +129,6 @@ id: SpawnPointChiefEngineer parent: SpawnPointJobBase name: spawn point (chiefengineer) - components: - type: SpawnPoint job_id: ChiefEngineer @@ -136,7 +142,6 @@ id: SpawnPointStationEngineer parent: SpawnPointJobBase name: spawn point (stationengineer) - components: - type: SpawnPoint job_id: StationEngineer @@ -150,7 +155,6 @@ id: SpawnPointChiefMedicalOfficer parent: SpawnPointJobBase name: spawn point (chiefmedicalofficer) - components: - type: SpawnPoint job_id: ChiefMedicalOfficer @@ -164,7 +168,6 @@ id: SpawnPointMedicalDoctor parent: SpawnPointJobBase name: spawn point (medicaldoctor) - components: - type: SpawnPoint job_id: MedicalDoctor @@ -178,7 +181,6 @@ id: SpawnPointResearchDirector parent: SpawnPointJobBase name: spawn point (researchdirector) - components: - type: SpawnPoint job_id: ResearchDirector @@ -192,7 +194,6 @@ id: SpawnPointScientist parent: SpawnPointJobBase name: spawn point (scientist) - components: - type: SpawnPoint job_id: Scientist @@ -206,7 +207,6 @@ id: SpawnPointHeadOfSecurity parent: SpawnPointJobBase name: spawn point (headofsecurity) - components: - type: SpawnPoint job_id: HeadOfSecurity @@ -220,7 +220,6 @@ id: SpawnPointSecurityOfficer parent: SpawnPointJobBase name: spawn point (securityofficer) - components: - type: SpawnPoint job_id: SecurityOfficer diff --git a/Resources/Prototypes/Entities/Effects/Markers/toy_spawner.yml b/Resources/Prototypes/Entities/Effects/Markers/toy_spawner.yml new file mode 100644 index 0000000000..3fb752e38c --- /dev/null +++ b/Resources/Prototypes/Entities/Effects/Markers/toy_spawner.yml @@ -0,0 +1,80 @@ +- type: entity + name: Toy Spawner + id: ToySpawner + components: + - type: Sprite + netsync: false + visible: false + sprite: Interface/Misc/markers.rsi + state: spawner_toy + - type: Icon + sprite: Interface/Misc/markers.rsi + state: spawner_toy + - type: Marker + - type: Clickable + - type: InteractionOutline + - type: Collidable + - type: TrashSpawner + rarePrototypes: + - CarvingHelpMe + - CarvingHello + - CarvingThankYou + - CarvingVeryGood + - CarvingImSorry + - FoamBlade + rareChance: 0.03 + prototypes: + - PlushieBee + - PlushieNuke + - PlushieLizard + - PlushieNar + - PlushieCarp + - PlushieSlime + - PlushieSnake + - ToyMouse + chance: 0.5 + offset: 0.2 + placement: + mode: AlignTileAny + +- type: entity + name: Figure Spawner + id: FigureSpawner + components: + - type: Sprite + netsync: false + visible: false + sprite: Interface/Misc/markers.rsi + state: spawner_figure + - type: Icon + sprite: Interface/Misc/markers.rsi + state: spawner_figure + - type: Marker + - type: Clickable + - type: InteractionOutline + - type: Collidable + - type: TrashSpawner + prototypes: + - ToyAi + - ToyNuke + - ToyAssistant + - ToyGriffin + - ToyHonk + - ToyIan + - ToyMarauder + - ToyMauler + - ToyGygax + - ToyOdysseus + - ToyOwlman + - ToyDeathRipley + - ToyPhazon + - ToyFireRipley + - ToyReticence + - ToyRipley + - ToySeraph + - ToyDurand + - ToySkeleton + chance: 0.5 + offset: 0.2 + placement: + mode: AlignTileAny diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 43a4507138..e672beebd5 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -92,7 +92,7 @@ state: r_foot - map: ["enum.HumanoidVisualLayers.Handcuffs"] color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi + sprite: Objects/Misc/handcuffs.rsi state: body-overlay-2 visible: false - map: ["enum.Slots.IDCARD"] @@ -112,8 +112,6 @@ sprite: Mobs/Customization/human_hair.rsi - map: ["enum.Slots.MASK"] - map: ["enum.Slots.HEAD"] - - map: ["hand-left"] - - map: ["hand-right"] - type: Icon sprite: Mobs/Species/Human/parts.rsi state: full @@ -169,6 +167,8 @@ interfaces: - key: enum.StrippingUiKey.Key type: StrippableBoundUserInterface + - key: enum.AcceptCloningUiKey.Key + type: AcceptCloningBoundUserInterface - type: entity @@ -230,7 +230,7 @@ state: r_hand - map: ["enum.HumanoidVisualLayers.Handcuffs"] color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi + sprite: Objects/Misc/handcuffs.rsi state: body-overlay-2 visible: false - map: ["enum.Slots.IDCARD"] diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxbase.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxbase.yml new file mode 100644 index 0000000000..0fadbb8698 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxbase.yml @@ -0,0 +1,15 @@ +- type: entity + id: BoxBase + parent: BaseItem + abstract: true + components: + - type: Sprite + sprite: Objects/Storage/boxes.rsi + - type: Icon + sprite: Objects/Storage/boxicons.rsi + - type: Item + sprite: Objects/Storage/boxes.rsi + size: 9999 + - type: Storage + capacity: 60 + size: 9999 diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxes_food.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxes_food.yml new file mode 100644 index 0000000000..29a21b0c4c --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxes_food.yml @@ -0,0 +1,26 @@ +- type: entity + name: donkpocket box + parent: BoxBase + id: BoxDonkpocket + description: + components: + - type: StorageFill + contents: + - FoodDonkPocket + - FoodDonkPocket + - FoodDonkPocket + - FoodDonkPocket + - FoodDonkPocket + - FoodDonkPocket + - type: Sprite + sprite: Objects/Storage/donkpocket.rsi + state: icon + - type: Icon + sprite: Objects/Storage/donkpocket.rsi + state: icon + - type: Item + color: "#951710" + sprite: Objects/Storage/donkpocket.rsi + state: icon + - type: Storage + capacity: 30 diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxes_general.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxes_general.yml new file mode 100644 index 0000000000..ab23c1689d --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxes_general.yml @@ -0,0 +1,149 @@ +- type: entity + name: lightbulb box + parent: BoxBase + id: BoxLightbulb + description: + components: + - type: StorageFill + contents: + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - type: Sprite + layers: + - state: box + - state: light + - type: Icon + state: light + - type: Item + +- type: entity + name: lighttube box + parent: BoxBase + id: BoxLighttube + description: + components: + - type: StorageFill + contents: + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - type: Sprite + layers: + - state: box + - state: lighttube + - type: Icon + state: lighttube + - type: Item + +- type: entity + name: mixed lights box + parent: BoxBase + id: BoxLightMixed + description: + components: + - type: StorageFill + contents: + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightTube + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - LightBulb + - type: Sprite + layers: + - state: box + - state: lightmixed + - type: Icon + state: lightmixed + - type: Item + +- type: entity + name: pda box + parent: BoxBase + id: BoxPDA + description: + components: + - type: StorageFill + contents: + - AssistantPDA + - AssistantPDA + - AssistantPDA + - type: Sprite + layers: + - state: box + - state: pda + - type: Icon + state: pda + - type: Item + - type: Storage + capacity: 3 + +- type: entity + name: meson box + parent: BoxBase + id: BoxMesonScanners + description: + components: + - type: StorageFill + contents: + - MesonGlasses + - MesonGlasses + - MesonGlasses + - MesonGlasses + - type: Sprite + layers: + - state: box + - state: meson + - type: Icon + state: meson + - type: Item + - type: Storage + capacity: 20 + +- type: entity + name: survival box + parent: BoxBase + id: BoxSurvival + description: + components: + - type: StorageFill + contents: + - BreathMaskClothing + #- O2 Canister + #- Injector + - type: Sprite + layers: + - state: box + - state: writing + - type: Icon + state: box + - type: Item + size: 15 + - type: Storage + capacity: 15 + size: 15 diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxes_medical.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxes_medical.yml new file mode 100644 index 0000000000..09d5699b22 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxes_medical.yml @@ -0,0 +1,67 @@ +- type: entity + name: syringe box + parent: BoxBase + id: BoxSyringe + description: + components: + - type: StorageFill + contents: + - Syringe + - Syringe + - Syringe + - Syringe + - Syringe + - Syringe + - type: Sprite + layers: + - state: box + - state: syringe + - type: Icon + state: syringe + - type: Item + - type: Storage + capacity: 30 + +- type: entity + name: sterile box + parent: BoxBase + id: BoxSterile + description: + components: + - type: StorageFill + contents: + - MaskSterile + - MaskSterile + - MaskSterile + - MaskSterile + - type: Sprite + layers: + - state: box + - state: sterile + - type: Icon + state: sterile + - type: Item + - type: Storage + capacity: 20 + +- type: entity + name: latex box + parent: BoxBase + id: BoxLatex + description: + components: + - type: StorageFill + contents: + - GlovesLatex + - GlovesLatex + - GlovesLatex + - GlovesLatex + - type: Sprite + layers: + - state: box + - state: latex + - type: Icon + state: latex + - type: Item + - type: Storage + capacity: 20 diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxes_science.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxes_science.yml new file mode 100644 index 0000000000..b52f00a68b --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxes_science.yml @@ -0,0 +1,23 @@ +- type: entity + name: beaker box + parent: BoxBase + id: BoxBeaker + description: + components: + - type: StorageFill + contents: + - Beaker + - Beaker + - Beaker + - LargeBeaker + - LargeBeaker + - LargeBeaker + - type: Sprite + layers: + - state: box + - state: beaker + - type: Icon + state: beaker + - type: Item + - type: Storage + capacity: 30 diff --git a/Resources/Prototypes/Entities/Objects/Boxes/boxes_security.yml b/Resources/Prototypes/Entities/Objects/Boxes/boxes_security.yml new file mode 100644 index 0000000000..1308c376eb --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Boxes/boxes_security.yml @@ -0,0 +1,67 @@ +- type: entity + name: handcuff box + parent: BoxBase + id: BoxHandcuff + description: + components: + - type: StorageFill + contents: + - Handcuffs + - Handcuffs + - Handcuffs + - Handcuffs + - Handcuffs + - Handcuffs + - type: Sprite + layers: + - state: box_security + - state: handcuff + - type: Icon + state: handcuff + - type: Item + - type: Storage + capacity: 6 + +- type: entity + name: flashbang box + parent: BoxBase + id: BoxFlashbang + description: + components: + - type: StorageFill + contents: + - GrenadeFlashBang + - GrenadeFlashBang + - GrenadeFlashBang + - GrenadeFlashBang + - type: Sprite + layers: + - state: box_security + - state: flashbang + - type: Icon + state: flashbang + - type: Item + - type: Storage + capacity: 20 + +- type: entity + name: sechud box + parent: BoxBase + id: BoxSechud + description: + components: + - type: StorageFill + contents: + - SecGlasses + - SecGlasses + - SecGlasses + - SecGlasses + - type: Sprite + layers: + - state: box_security + - state: sechud + - type: Icon + state: sechud + - type: Item + - type: Storage + capacity: 20 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/drinks_cans.yml index 98efe1543c..0723ed75d4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/drinks_cans.yml @@ -38,7 +38,7 @@ parent: DrinkCanBaseFull id: DrinkIceTeaCan name: ice tea can - description: '' + description: A can of refreshing ice tea. components: - type: Sprite sprite: Objects/Consumable/Drinks/ice_tea_can.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/food.yml b/Resources/Prototypes/Entities/Objects/Consumable/food.yml index 5a1c3e677e..77c33ed7b0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/food.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/food.yml @@ -189,7 +189,7 @@ name: bread (slice) parent: FoodBase id: FoodBreadSlice - description: + description: A slice of bread. components: - type: Food trash: TrashPlate @@ -207,7 +207,7 @@ name: banana bread (slice) parent: FoodBase id: FoodBananaBreadSlice - description: + description: A slice of delicious banana bread. components: - type: Food trash: TrashPlate @@ -329,7 +329,7 @@ name: brain cake (slice) parent: FoodBase id: FoodBrainCakeSlice - description: '' + description: Braaains. components: - type: Food trash: TrashPlate diff --git a/Resources/Prototypes/Entities/Objects/Consumable/trash.yml b/Resources/Prototypes/Entities/Objects/Consumable/trash.yml index 06cbdacf41..dd95f0e23f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/trash.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/trash.yml @@ -207,10 +207,17 @@ parent: TrashBase id: TrashBananaPeel components: - - type: Sprite - sprite: Objects/Consumable/Food/banana.rsi - state: peel - - type: Icon - sprite: Objects/Consumable/Food/banana.rsi - state: peel - - type: Slippery + - type: Sprite + sprite: Objects/Consumable/Food/banana.rsi + state: peel + - type: Icon + sprite: Objects/Consumable/Food/banana.rsi + state: peel + - type: Slippery + intersectPercentage: 0.2 + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + layer: + - MobImpassable diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index 672db4b488..c6e848a267 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -85,6 +85,33 @@ map: ["enum.PDAVisualLayers.Flashlight"] - type: Slippery paralyzeTime: 4 + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + layer: + - MobImpassable + +- type: entity + name: Mime PDA + parent: BasePDA + id: MimePDA + description: Suprisingly not on mute. + components: + - type: PDA + idCard: MimeIDCard + - type: Icon + sprite: Objects/Devices/pda.rsi + state: pda-mime + - type: Sprite + sprite: Objects/Devices/pda.rsi + netsync: false + layers: + - state: pda-mime + map: ["enum.PDAVisualLayers.Base"] + - state: light_overlay + shader: unshaded + map: ["enum.PDAVisualLayers.Flashlight"] - type: entity name: Cargo PDA diff --git a/Resources/Prototypes/Entities/Objects/Fun/dice.yml b/Resources/Prototypes/Entities/Objects/Fun/dice.yml index 75c6145c96..041f65a0c8 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/dice.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/dice.yml @@ -11,6 +11,7 @@ name: "d100" parent: BaseDice id: d100 + description: A die with one hundred sides! Probably not fairly weighted... components: - type: Dice sides: 100 @@ -26,6 +27,7 @@ name: "d20" parent: BaseDice id: d20 + description: A die with twenty sides. The preferred die to throw at the GM. components: - type: Dice sides: 20 @@ -40,6 +42,7 @@ name: "d12" parent: BaseDice id: d12 + description: A die with twelve sides. There's an air of neglect about it. components: - type: Dice sides: 12 @@ -54,6 +57,7 @@ name: "d10" parent: BaseDice id: d10 + description: A die with ten sides. Useful for percentages. components: - type: Dice sides: 10 @@ -68,6 +72,7 @@ name: "d8" parent: BaseDice id: d8 + description: A die with eight sides. It feels... lucky. components: - type: Dice sides: 8 @@ -82,6 +87,7 @@ name: "d6" parent: BaseDice id: d6 + description: A die with six sides. Basic and serviceable. components: - type: Dice sides: 6 @@ -96,6 +102,7 @@ name: "d4" parent: BaseDice id: d4 + description: A die with four sides. The nerd's caltrop. components: - type: Dice sides: 4 diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml index c341ef56d0..f1c5501fe1 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml @@ -27,3 +27,4 @@ fuelType: chem.H2O fuelName: water fuelCost: 50 + - type: FireExtinguisher diff --git a/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml b/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml index 51544fabf1..c972607ef5 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/handcuffs.yml @@ -9,22 +9,18 @@ uncuffTime: 3.0 stunBonus: 2.0 breakoutTime: 20.0 - cuffedRSI: Objects/Misc/handcuffs.rsi + cuffedRSI: Objects/Misc/handcuffs.rsi iconState: body-overlay - - type: Sprite sprite: Objects/Misc/handcuffs.rsi state: handcuff - - type: Icon sprite: Objects/Misc/handcuffs.rsi state: handcuff - - type: Clothing sprite: Objects/Misc/handcuffs.rsi Slots: [belt] - - type: entity name: makeshift handcuffs description: Homemade handcuffs crafted from spare cables. @@ -36,7 +32,7 @@ uncuffTime: 3.5 stunBonus: 2.0 breakoutTime: 15.0 - cuffedRSI: Objects/Misc/cablecuffs.rsi + cuffedRSI: Objects/Misc/cablecuffs.rsi bodyIconState: body-overlay color: red breakOnRemove: true @@ -62,4 +58,4 @@ - type: Clothing sprite: Objects/Misc/cablecuffs.rsi color: red - Slots: [belt] \ No newline at end of file + Slots: [belt] diff --git a/Resources/Prototypes/Entities/Clothing/Belt/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml similarity index 93% rename from Resources/Prototypes/Entities/Clothing/Belt/identification_cards.yml rename to Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 0364c3a024..899cb9c7b8 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -6,13 +6,13 @@ abstract: true components: - type: Sprite - sprite: Clothing/Belt/id_cards.rsi + sprite: Objects/Misc/id_cards.rsi - type: Icon - sprite: Clothing/Belt/id_cards.rsi + sprite: Objects/Misc/id_cards.rsi - type: Clothing Slots: - idcard - sprite: Clothing/Belt/id_cards.rsi + sprite: Objects/Misc/id_cards.rsi HeldPrefix: default - type: Access - type: IdCard @@ -141,6 +141,21 @@ - type: PresetIdCard job: Clown +- type: entity + parent: IDCardStandard + id: MimeIDCard + name: mime ID card + components: + - type: Sprite + layers: + - state: default + - state: assigned + - state: idmime + - type: Icon + state: idmime + - type: PresetIdCard + job: Mime + - type: entity parent: IDCardStandard id: JanitorIDCard diff --git a/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml b/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml new file mode 100644 index 0000000000..37c7d7f639 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml @@ -0,0 +1,16 @@ +- type: entity + id: AMEJar + name: Antimatter Fuel Jar + parent: BaseItem + description: A hermetically sealed jar containing antimatter for use in an antimatter reactor. + components: + - type: Item + size: 5 + sprite: Objects/Power/AME/ame_jar.rsi + - type: Sprite + sprite: Objects/Power/AME/ame_jar.rsi + state: jar + - type: Icon + sprite: Objects/Power/AME/ame_jar.rsi + state: jar + - type: AMEFuelContainer \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml b/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml new file mode 100644 index 0000000000..2c17c51179 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml @@ -0,0 +1,16 @@ +- type: entity + id: AMEPart + name: Antimatter Engine Part + parent: BaseItem + description: "A flatpack used for constructing an antimatter engine reactor.\nUse a multitool to unpack it." + components: + - type: Item + size: 5 + sprite: Objects/Power/AME/ame_part.rsi + - type: Sprite + sprite: Objects/Power/AME/ame_part.rsi + state: box + - type: Icon + sprite: Objects/Power/AME/ame_part.rsi + state: box + - type: AMEPart \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/janitor.yml index 7386b835b5..419856502b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/janitor.yml @@ -102,17 +102,22 @@ parent: BaseItem description: A cheap bar of soap. Doesn't smell. components: - - type: Sprite - sprite: Objects/Specific/Janitorial/soap.rsi - state: soap - - type: Icon - sprite: Objects/Specific/Janitorial/soap.rsi - state: soap - - type: Item - sprite: Objects/Specific/Janitorial/soap.rsi - - type: Slippery - paralyzeTime: 2.5 - + - type: Sprite + sprite: Objects/Specific/Janitorial/soap.rsi + state: soap + - type: Icon + sprite: Objects/Specific/Janitorial/soap.rsi + state: soap + - type: Item + sprite: Objects/Specific/Janitorial/soap.rsi + - type: Slippery + paralyzeTime: 2.5 + - type: Collidable + shapes: + - !type:PhysShapeAabb + bounds: "-0.3,-0.4,0.3,0.4" + layer: + - MobImpassable - type: entity name: soap diff --git a/Resources/Prototypes/Entities/Objects/Tools/flare.yml b/Resources/Prototypes/Entities/Objects/Tools/flare.yml new file mode 100644 index 0000000000..e9311b8b39 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Tools/flare.yml @@ -0,0 +1,77 @@ +- type: entity + name: emergency flare # todo: we need some sort of IgnitionSourceComponent we can add to this, so when it's lit it will cause fires when touching fuel + parent: BaseItem + id: FlareBase + description: A flare that produces a very bright light for a short while. Point the flame away from yourself. + components: + - type: ExpendableLight + spentName: spent flare + spentDesc: It looks like this flare has burnt out. What a bummer. + glowDuration: 400 + fadeOutDuration: 4 + iconStateOn: flare_unlit + iconStateSpent: flare_spent + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Flare/flare_on.ogg + loopedSound: /Audio/Items/Flare/flare_burn.ogg + - type: Sprite + sprite: Objects/Misc/flare.rsi + layers: + - state: flare_base + - state: flare_burn + color: "#FFFFFF" + visible: false + shader: unshaded + - state: flare_unlit + color: "#FF0000" + - type: Icon + sprite: Objects/Misc/flare.rsi + state: flare_spent + - type: Item + sprite: Objects/Misc/flare.rsi + color: "#FF0000" + HeldPrefix: off + - type: LoopingSound + - type: Appearance + visuals: + - type: ExpendableLightVisualizer + - type: PointLight + enabled: false + color: "#FF8080" + radius: 1.0 + energy: 9.0 + - type: LightBehaviour + behaviours: + - !type:RandomizeBehaviour # immediately make it bright and flickery + id: turn_on + interpolate: Nearest + minDuration: 0.02 + maxDuration: 0.06 + startValue: 6.0 + endValue: 9.0 + property: Energy + isLooped: true + - !type:FadeBehaviour # have the radius start small and get larger as it starts to burn + id: turn_on + interpolate: Linear + maxDuration: 8.0 + startValue: 1.0 + endValue: 6.0 + property: Radius + - !type:RandomizeBehaviour # weaker flicker as it fades out + id: fade_out + interpolate: Nearest + minDuration: 0.02 + maxDuration: 0.06 + startValue: 4.0 + endValue: 8.0 + property: Energy + isLooped: true + - !type:FadeBehaviour # fade out radius as it burns out + id: fade_out + interpolate: Linear + maxDuration: 4.0 + startValue: 6.0 + endValue: 1.0 + property: Radius \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml new file mode 100644 index 0000000000..6b42ea0bbe --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -0,0 +1,417 @@ +- type: entity + name: green glowstick + parent: BaseItem + id: GlowstickBase + description: Useful for raves and emergencies. + components: + - type: ExpendableLight + spentName: spent green glowstick + spentDesc: It looks like this glowstick has stopped glowing. How tragic. + glowDuration: 900 # time in seconds + fadeOutDuration: 300 + iconStateOn: glowstick_lit + iconStateSpent: glowstick_unlit + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_glow + color: "#00FF00" + visible: false + shader: unshaded + - state: glowstick_unlit + color: "#00FF00" + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: Item + sprite: Objects/Misc/glowstick.rsi + color: "#00FF00" + HeldPrefix: off + - type: Appearance + visuals: + - type: ExpendableLightVisualizer + - type: PointLight + enabled: false + color: "#00FF00" + radius: 5 + energy: 0 + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour # slowly fade in once activated + id: turn_on + interpolate: Linear + maxDuration: 10.0 + startValue: 0.0 + endValue: 3.0 + property: Energy + - !type:FadeBehaviour # fade out energy as it burns out + id: fade_out + interpolate: Linear + maxDuration: 10 # 300.0 + startValue: 3.0 + endValue: 0.2 + property: Energy + - !type:FadeBehaviour # fade out radius as it burns out + id: fade_out + interpolate: Linear + maxDuration: 10 # 300.0 + startValue: 5.0 + endValue: 1.5 + property: Radius + +- type: entity + name: red glowstick + parent: GlowstickBase + id: GlowstickRed + components: + - type: ExpendableLight + spentName: spent red glowstick + spentDesc: It looks like this glowstick has stopped glowing. How tragic. + glowDuration: 900 + fadeOutDuration: 300 + iconStateOn: glowstick_lit + iconStateSpent: glowstick_unlit + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_glow + color: "#FF0000" + visible: false + shader: unshaded + - state: glowstick_unlit + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + color: "#FF0000" + HeldPrefix: off + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + energy: 0 + +- type: entity + name: purple glowstick + parent: GlowstickBase + id: GlowstickPurple + components: + - type: ExpendableLight + spentName: spent purple glowstick + spentDesc: It looks like this glowstick has stopped glowing. How tragic. + glowDuration: 900 + fadeOutDuration: 300 + iconStateOn: glowstick_lit + iconStateSpent: glowstick_unlit + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_glow + color: "#FF00FF" + visible: false + shader: unshaded + - state: glowstick_unlit + color: "#FF00FF" + - type: Item + sprite: Objects/Misc/glowstick.rsi + color: "#FF00FF" + HeldPrefix: off + - type: PointLight + enabled: false + color: "#FF00FF" + radius: 5 + energy: 0 + +- type: entity + name: yellow glowstick + parent: GlowstickBase + id: GlowstickYellow + components: + - type: ExpendableLight + spentName: spent yellow glowstick + spentDesc: It looks like this glowstick has stopped glowing. How tragic. + glowDuration: 900 + fadeOutDuration: 300 + iconStateOn: glowstick_lit + iconStateSpent: glowstick_unlit + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_glow + color: "#FFFF00" + visible: false + shader: unshaded + - state: glowstick_unlit + color: "#FFFF00" + - type: Item + sprite: Objects/Misc/glowstick.rsi + color: "#FFFF00" + HeldPrefix: off + - type: PointLight + enabled: false + color: "#FFFF00" + radius: 5 + energy: 0 + +- type: entity + name: blue glowstick + parent: GlowstickBase + id: GlowstickBlue + components: + - type: ExpendableLight + spentName: spent blue glowstick + spentDesc: It looks like this glowstick has stopped glowing. How tragic. + glowDuration: 900 + fadeOutDuration: 300 + iconStateOn: glowstick_lit + iconStateSpent: glowstick_unlit + turnOnBehaviourID: turn_on + fadeOutBehaviourID: fade_out + litSound: /Audio/Items/Handcuffs/rope_breakout.ogg + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_glow + color: "#0000FF" + visible: false + shader: unshaded + - state: glowstick_unlit + color: "#0000FF" + - type: Item + sprite: Objects/Misc/glowstick.rsi + color: "#0000FF" + HeldPrefix: off + - type: PointLight + enabled: false + color: "#0000FF" + radius: 5 + energy: 0 + +# ---------------------------------------------------------------------------- +# THE FOLLOWING ARE ALL DUMMY ENTITIES USED TO TEST THE LIGHT BEHAVIOUR SYSTEM +# ---------------------------------------------------------------------------- +- type: entity + name: light pulse test + parent: BaseItem + id: LightBehaviourTest1 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: true + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + maxDuration: 10.0 + minValue: 1.0 + maxValue: 7.0 + isLooped: true + property: Energy + enabled: true + +- type: entity + name: color cycle test + parent: BaseItem + id: LightBehaviourTest2 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: true + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:ColorCycleBehaviour + interpolate: Nearest + maxDuration: 0.8 + isLooped: true + enabled: true + colors: + - red + - blue + - green + +- type: entity + name: multi-behaviour light test + parent: BaseItem + id: LightBehaviourTest3 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Nearest + minDuration: 0.2 + maxDuration: 1.0 + maxValue: 0.2 + property: Enabled + isLooped: true + enabled: true + - !type:ColorCycleBehaviour + interpolate: Cubic + maxDuration: 0.8 + isLooped: true + enabled: true + colors: + - red + - blue + - green + +- type: entity + name: light fade in test + parent: BaseItem + id: LightBehaviourTest4 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:FadeBehaviour + interpolate: Cubic + maxDuration: 5.0 + minValue: 0.0 + maxValue: 10.0 + isLooped: true + property: Energy + enabled: true + +- type: entity + name: light pulse radius test + parent: BaseItem + id: LightBehaviourTest5 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + minDuration: 1.0 + maxDuration: 5.0 + minValue: 2.0 + maxValue: 10.0 + isLooped: true + property: Radius + enabled: true + +- type: entity + name: light randomize radius test + parent: BaseItem + id: LightBehaviourTest6 + components: + - type: Sprite + sprite: Objects/Misc/glowstick.rsi + layers: + - state: glowstick_base + - state: glowstick_unlit + shader: unshaded + color: "#FF0000" + - type: Item + sprite: Objects/Misc/glowstick.rsi + HeldPrefix: off + - type: Icon + sprite: Objects/Misc/glowstick.rsi + state: glowstick_unlit + - type: PointLight + enabled: false + color: "#FF0000" + radius: 5 + energy: 10 + - type: LightBehaviour + behaviours: + - !type:RandomizeBehaviour + interpolate: Nearest + maxDuration: 0.5 + minValue: 10.0 + maxValue: 25.0 + isLooped: true + property: Radius + enabled: true \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml b/Resources/Prototypes/Entities/Objects/Tools/surgery.yml similarity index 96% rename from Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml rename to Resources/Prototypes/Entities/Objects/Tools/surgery.yml index 5e1ecf0b39..ecb3d12221 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/surgery.yml @@ -14,7 +14,7 @@ - type: entity name: scalpel parent: BaseSurgeryTool - id: scalpel + id: Scalpel desc: A surgical tool used to make incisions into flesh. components: - type: SurgeryTool @@ -32,7 +32,7 @@ - type: entity name: retractor parent: BaseSurgeryTool - id: retractor + id: Retractor desc: A surgical tool used to hold open incisions. components: - type: SurgeryTool @@ -50,7 +50,7 @@ - type: entity name: cautery parent: BaseSurgeryTool - id: cautery + id: Cautery desc: A surgical tool used to cauterize open wounds. components: - type: SurgeryTool @@ -68,7 +68,7 @@ - type: entity name: drill parent: BaseSurgeryTool - id: drill + id: Drill desc: A surgical drill for making holes into hard material. components: - type: SurgeryTool @@ -86,7 +86,7 @@ - type: entity name: bone saw parent: BaseSurgeryTool - id: bone_saw + id: BoneSaw desc: A surgical tool used to cauterize open wounds. components: - type: SurgeryTool @@ -104,7 +104,7 @@ - type: entity name: hemostat parent: BaseSurgeryTool - id: hemostat + id: Hemostat desc: A surgical tool used to compress blood vessels to prevent bleeding. components: - type: SurgeryTool @@ -117,4 +117,4 @@ sprite: Objects/Specific/Medical/surgery_tools.rsi state: hemostat - type: ItemCooldown - - type: MeleeWeapon \ No newline at end of file + - type: MeleeWeapon diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index 51df8c6cac..bb8b312c91 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -185,6 +185,7 @@ - type: Tool qualities: - Multitool + - type: SignalLinker - type: entity name: jaws of life diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index 481454a863..5880fd2600 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -160,44 +160,6 @@ steps: 1 zeroVisible: true -- type: entity - name: Straylight - parent: SmgBase - id: SmgStraylight - description: Pla-ket-ket-ket-ket - components: - - type: Sprite - sprite: Objects/Weapons/Guns/SMGs/straylight.rsi - layers: - - state: base - map: ["enum.RangedBarrelVisualLayers.Base"] - - state: bolt-closed - map: ["enum.RangedBarrelVisualLayers.Bolt"] - - state: mag-0 - map: ["enum.RangedBarrelVisualLayers.Mag"] - - type: Icon - sprite: Objects/Weapons/Guns/SMGs/straylight.rsi - - type: Item - size: 24 - sprite: Objects/Weapons/Guns/SMGs/straylight.rsi - - type: RangedWeapon - - type: MagazineBarrel - currentSelector: Automatic - allSelectors: - - Single - - Automatic - fireRate: 10 - caliber: Pistol - magazineTypes: - - Smg - - type: Appearance - visuals: - - type: BarrelBoltVisualizer - - type: MagVisualizer - magState: mag - steps: 1 - zeroVisible: true - - type: entity name: WT550 parent: SmgBase diff --git a/Resources/Prototypes/Entities/Objects/materials.yml b/Resources/Prototypes/Entities/Objects/materials.yml index 3ec6cfbf88..154f7da4ec 100644 --- a/Resources/Prototypes/Entities/Objects/materials.yml +++ b/Resources/Prototypes/Entities/Objects/materials.yml @@ -81,8 +81,6 @@ texture: Objects/Tools/cable_coil.png - type: WirePlacer - type: Clickable - bounds: - all: -0.15,-0.15,0.15,0.15 - type: entity parent: CableStack1 diff --git a/Resources/Prototypes/Entities/puddle.yml b/Resources/Prototypes/Entities/puddle.yml index 7f28f6986f..f4a6faaab8 100644 --- a/Resources/Prototypes/Entities/puddle.yml +++ b/Resources/Prototypes/Entities/puddle.yml @@ -15,10 +15,13 @@ - type: LoopingSound - type: InteractionOutline - type: Clickable + - type: Slippery - type: Collidable shapes: - !type:PhysShapeAabb - bounds: "-0.5,-0.5,0.5,0.5" + bounds: "-0.4,-0.4,0.4,0.4" + layer: + - MobImpassable hard: false - type: entity diff --git a/Resources/Prototypes/Recipes/Construction/misc.yml b/Resources/Prototypes/Recipes/Construction/misc.yml index d8e96ea00a..96fe94099f 100644 --- a/Resources/Prototypes/Recipes/Construction/misc.yml +++ b/Resources/Prototypes/Recipes/Construction/misc.yml @@ -10,3 +10,20 @@ steps: - material: Metal amount: 1 + +- type: construction + id: ExtinguisherCabinet + name: extinguisher cabinet + category: Items/Misc + keywords: [misc] + placementMode: SnapgridCenter + canBuildInImpassable: true + description: A small wall mounted cabinet designed to hold a fire extinguisher. + icon: Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png + result: ExtinguisherCabinet + steps: + - material: Metal + amount: 2 + icon: + sprite: Constructible/Misc/extinguisher_cabinet.rsi + state: extinguisher_closed diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml index d62b69d882..fd044ba811 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/cargo_technician.yml @@ -15,6 +15,6 @@ id: CargoTechGear equipment: innerclothing: UniformCargoTech - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesBlack idcard: CargoPDA diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml index 38e1f44803..d70aedb6dc 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/assistant.yml @@ -13,7 +13,6 @@ id: AssistantGear equipment: innerclothing: UniformColorGrey - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesBlack idcard: AssistantPDA - diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml index 14f9ea8bcd..c53e4a8602 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/bartender.yml @@ -15,6 +15,6 @@ equipment: innerclothing: UniformBartender outerclothing: OuterclothingArmorVest - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesBlack idcard: BartenderPDA diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 8cd3ed63e8..c894a616b2 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -14,6 +14,6 @@ id: ChefGear equipment: innerclothing: UniformChef - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesBlack idcard: ChefPDA diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index ff6ce07861..b207def046 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -15,7 +15,7 @@ id: ClownGear equipment: innerclothing: UniformClown - backpack: ClownPack + backpack: ClownPackFilled shoes: ShoesClown mask: MaskClown pocket1: BikeHorn diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml index 801d162339..6258c02c90 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/janitor.yml @@ -14,7 +14,7 @@ id: JanitorGear equipment: innerclothing: UniformJanitor - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesGaloshes head: HatPurplesoft idcard: JanitorPDA diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml new file mode 100644 index 0000000000..ec6e82ead2 --- /dev/null +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -0,0 +1,25 @@ +- type: job + id: Mime + name: "mime" + positions: 1 + startingGear: MimeGear + department: + - Civilian + icon: "Mime" + access: + - Theatre + - Maintenance + +- type: startingGear + id: MimeGear + equipment: + innerclothing: UniformMime + backpack: BackpackClothing + head: HatBeret + belt: SuspendersClothing + gloves: GlovesWhite + shoes: ShoesMime + pocket1: Pen + pocket2: Paper + mask: MaskMime + idcard: MimePDA diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index dc5ca4269b..d1e7de6324 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -28,7 +28,7 @@ id: CaptainGear equipment: innerclothing: UniformCaptain - backpack: BackpackCaptain + backpack: BackpackCaptainFilled shoes: ShoesBlack head: HatCaptain eyes: SunGlasses diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index a92ccc03e1..a0d26826f9 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -23,7 +23,7 @@ id: HoPGear equipment: innerclothing: UniformHoP - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesBrown head: HatHopcap idcard: HoPPDA diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index c92118c6f0..f42372b89c 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -19,6 +19,6 @@ equipment: head: HatHardhatWhite innerclothing: UniformChiefEngineer - backpack: BackpackEngineering + backpack: BackpackEngineeringFilled shoes: ShoesBrown idcard: CEPDA diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml index 0f1099d79d..fbeaf3b5b8 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/station_engineer.yml @@ -16,7 +16,7 @@ id: StationEngineerGear equipment: innerclothing: UniformEngineering - backpack: BackpackEngineering + backpack: BackpackEngineeringFilled shoes: ShoesWorkboots outerclothing: OuterclothingHazard idcard: EngineerPDA diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 7629149734..2e738fb1c1 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -19,7 +19,7 @@ id: CMOGear equipment: innerclothing: UniformCMO - backpack: BackpackMedical + backpack: BackpackMedicalFilled shoes: ShoesBrown outerclothing: OuterclothingLabcoatcmo idcard: CMOPDA diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index 3371416216..db04903106 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -15,7 +15,7 @@ id: DoctorGear equipment: innerclothing: UniformMedicalDoctor - backpack: BackpackMedical + backpack: BackpackMedicalFilled shoes: ShoesWhite outerclothing: OuterclothingLabcoatmedspecopen idcard: MedicalPDA diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index 75a3ed2fe7..a9b41a2cb1 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -17,7 +17,8 @@ id: ResearchDirectorGear equipment: innerclothing: UniformResearchDirector - backpack: BackpackClothing + # Note to Swept add science backpacks + backpack: BackpackClothingFilled shoes: ShoesBrown outerclothing: OuterclothingLabcoatopen idcard: RnDPDA diff --git a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml index 7ae835700b..787f88037c 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/scientist.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/scientist.yml @@ -15,7 +15,7 @@ id: ScientistGear equipment: innerclothing: UniformScientist - backpack: BackpackClothing + backpack: BackpackClothingFilled shoes: ShoesWhite outerclothing: OuterclothingLabcoat idcard: SciencePDA diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 9f567a046f..00293c4e3a 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -18,7 +18,7 @@ id: HoSGear equipment: innerclothing: UniformHoS - backpack: SecPack + backpack: SecPackFilled shoes: ShoesJackboots outerclothing: OuterclothingHoSTrenchcoat eyes: SecGlasses diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index 58c8a3ce4d..1ee779bce6 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -16,7 +16,7 @@ id: SecurityOfficerGear equipment: innerclothing: UniformSec - backpack: SecPack + backpack: SecPackFilled shoes: ShoesJackboots eyes: SecGlasses outerclothing: OuterclothingArmorVest diff --git a/Resources/Prototypes/bar_signs.yml b/Resources/Prototypes/bar_signs.yml index 61854e558f..89474e7a91 100644 --- a/Resources/Prototypes/bar_signs.yml +++ b/Resources/Prototypes/bar_signs.yml @@ -1,15 +1,3 @@ -- type: barSign - id: MalteseFalcon - name: "Maltese Falcon" - icon: "maltesefalcon" - description: "The Maltese Falcon, Space Bar and Grill." - -- type: barSign - id: TheBark - name: "The Bark" - icon: "thebark" - description: "Ian's bar of choice." - - type: barSign id: Harmbaton name: "The Harmbaton" @@ -28,72 +16,24 @@ icon: "thedrunkcarp" description: "Don't drink and swim." -- type: barSign - id: ScotchServinWill - name: "Scotch Servin Willy's" - icon: "scotchservinwill" - description: "Willy sure moved up in the world from clown to bartender." - - type: barSign id: OfficerBeersky name: "Officer Beersky's" icon: "officerbeersky" description: "Man eat a dong, these drinks are great." -- type: barSign - id: TheCavern - name: "The Cavern" - icon: "thecavern" - description: "Fine drinks while listening to some fine tunes." - - type: barSign id: TheOuterSpess name: "The Outer Spess" icon: "theouterspess" description: "This bar isn't actually located in outer space." -- type: barSign - id: SlipperyShots - name: "Slippery Shots" - icon: "slipperyshots" - description: "Slippery slope to drunkeness with our shots!" - -- type: barSign - id: TheGreyTide - name: "The Grey Tide" - icon: "thegreytide" - description: "Abandon your toolboxing ways and enjoy a lazy beer!" - -- type: barSign - id: HonkednLoaded - name: "Honked 'n' Loaded" - icon: "honkednloaded" - description: "Honk." - -- type: barSign - id: TheNest - name: "The Nest" - icon: "thenest" - description: "A good place to retire for a drink after a long night of crime fighting." - - type: barSign id: TheCoderbus name: "The Coderbus" icon: "thecoderbus" description: "A very controversial bar known for its wide variety of constantly-changing drinks." -- type: barSign - id: TheAdminbus - name: "The Adminbus" - icon: "theadminbus" - description: "An establishment visited mainly by space-judges. It isn't bombed nearly as much as court hearings." - -- type: barSign - id: OldCockInn - name: "The Old Cock Inn" - icon: "oldcockinn" - description: "Something about this sign fills you with despair." - - type: barSign id: TheWretchedHive name: "The Wretched Hive" @@ -118,30 +58,12 @@ icon: "combocafe" description: "Renowned system-wide for their utterly uncreative drink combinations." -- type: barSign - id: VladsSaladBar - name: "Vlad's Salad Bar" - icon: "vladssaladbar" - description: "Under new management. Vlad was always a bit too trigger happy with that shotgun." - -- type: barSign - id: TheShaken - name: "The Shaken" - icon: "theshaken" - description: "This establishment does not serve stirred drinks." - - type: barSign id: TheAleNath name: "The Ale' Nath" icon: "thealenath" description: "All right, buddy. I think you've had EI NATH. Time to get a cab." -- type: barSign - id: TheAlohaAnackbar - name: "The Aloha Snackbar" - icon: "alohasnackbar" - description: "A tasteful, inoffensive tiki bar sign." - - type: barSign id: TheNet name: "The Net" @@ -154,6 +76,42 @@ icon: "maidcafe" description: "Welcome back, master!" +- type: barSign + id: MalteseFalcon + name: "Maltese Falcon" + icon: "maltesefalcon" + description: "Play it again, sam." + +- type: barSign + id: TheSun + name: "The Sun" + icon: "thesun" + description: "Ironically bright for such a shady bar." + +- type: barSign + id: TheBirdCage + name: "The Birdcage" + icon: "birdcage" + description: "Caw caw!" + +- type: barSign + id: Zocalo + name: "Zocalo" + icon: "zocalo" + description: "Anteriormente ubicado en Spessmerica." + +- type: barSign + id: LV426 + name: "LV-426" + icon: "lv426" + description: "Drinking with fancy facemasks is clearly more important than going to medbay." + +- type: barSign + id: WiggleRoom + name: "The Wiggle Roomm" + icon: "thewiggleroom" + description: "MoMMIs got moves." + - type: barSign id: TheLightbulb name: "The Lightbulb" @@ -172,6 +130,12 @@ icon: "enginechange" description: "Still waiting." +- type: barSign + id: Emprah + name: "4 The Emprah" + icon: "emprah" + description: "Enjoyed by fanatics, heretics, and brain-damaged patrons alike." + # Hidden signs list below this point - type: barSign id: EmpBarSign @@ -181,13 +145,6 @@ rename_area: false hidden: true -- type: barSign - id: SyndiBarSign - name: "Syndi Cat" - icon: "syndibarsign" - description: "Syndicate or die." - hidden: true - - type: barSign id: SignOff name: "" diff --git a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack.png b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack.png rename to Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/backpack-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/meta.json index 28c9ebe555..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/backpack.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "backpack", + "name": "icon", "directions": 1 }, { - "name": "backpack-equipped-BACKPACK", + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "backpack-inhand-left", + "name": "inhand-left", "directions": 4 }, { - "name": "backpack-inhand-right", + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..0f412e2338 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/icon.png b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/icon.png new file mode 100644 index 0000000000..669c5bc3e7 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-left.png new file mode 100644 index 0000000000..85031c086a Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-right.png new file mode 100644 index 0000000000..ddba7a891e Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Backpacks/botany.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/captain.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain.png b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain.png rename to Resources/Textures/Clothing/Back/Backpacks/captain.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/captain.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/captain.rsi/captain-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/captain.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/meta.json index 2e63d7d679..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/captain.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "captain-inhand-right", - "directions": 4 - }, - { - "name": "captain", + "name": "icon", "directions": 1 }, { - "name": "captain-equipped-BACKPACK", + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "captain-inhand-left", + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..9f10db67a9 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/icon.png b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/icon.png new file mode 100644 index 0000000000..9112452d20 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-left.png new file mode 100644 index 0000000000..d9b52e3dd8 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-right.png new file mode 100644 index 0000000000..9461cb38c8 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Backpacks/chemistry.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/clown.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown.png b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown.png rename to Resources/Textures/Clothing/Back/Backpacks/clown.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/clown.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/clown.rsi/clown-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/clown.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/meta.json index 58102b39ac..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/clown.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "clown-inhand-right", - "directions": 4 - }, - { - "name": "clown", + "name": "icon", "directions": 1 }, { - "name": "clown-inhand-left", + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "clown-equipped-BACKPACK", + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering.png b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering.png rename to Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/engineering-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/meta.json index 09fa110b6e..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/engineering.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "engineering", + "name": "icon", "directions": 1 }, { - "name": "engineering-inhand-left", + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "engineering-equipped-BACKPACK", + "name": "inhand-left", "directions": 4 }, { - "name": "engineering-inhand-right", + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Backpacks/holding.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/holding.rsi/meta.json index f4de573b6a..3fde6c9744 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/holding.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/holding.rsi/meta.json @@ -1,5 +1,7 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/medical.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical.png b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical.png rename to Resources/Textures/Clothing/Back/Backpacks/medical.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/medical.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/medical.rsi/medical-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/medical.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/meta.json index d62196bd26..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/medical.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "medical-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "medical", + "name": "icon", "directions": 1 }, { - "name": "medical-inhand-left", + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "medical-inhand-right", + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..bfe4179307 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/icon.png b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/icon.png new file mode 100644 index 0000000000..7ad80206d8 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-left.png new file mode 100644 index 0000000000..f4318242ca Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-right.png new file mode 100644 index 0000000000..083cf6092f Binary files /dev/null and b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Backpacks/mime.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Backpacks/security.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/security.png b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/security.rsi/security.png rename to Resources/Textures/Clothing/Back/Backpacks/security.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-inhand-left.png b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-inhand-left.png rename to Resources/Textures/Clothing/Back/Backpacks/security.rsi/inhand-left.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-inhand-right.png b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Back/Backpacks/security.rsi/security-inhand-right.png rename to Resources/Textures/Clothing/Back/Backpacks/security.rsi/inhand-right.png diff --git a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/meta.json b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/meta.json index 73c20c8317..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Backpacks/security.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Backpacks/security.rsi/meta.json @@ -1,24 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "security-inhand-left", - "directions": 4 - }, - { - "name": "security-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "security", + "name": "icon", "directions": 1 }, { - "name": "security-inhand-right", + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-black.png b/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-black.png deleted file mode 100644 index 304c8e7fc6..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-black.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-equipped-BACKPACK.png deleted file mode 100644 index c4918a47f5..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier.png b/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier.png deleted file mode 100644 index 030e579221..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/courier.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier.rsi/meta.json deleted file mode 100644 index 5a48a51c34..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier.rsi/meta.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-black", - "directions": 1 - }, - { - "name": "courier-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "courier", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain-equipped-BACKPACK.png deleted file mode 100644 index 4429ba7d70..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain.png b/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain.png deleted file mode 100644 index e48aa43062..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/courier-captain.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/meta.json deleted file mode 100644 index 269b909cfa..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_captain.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-captain-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "courier-captain", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry-equipped-BACKPACK.png deleted file mode 100644 index 7a2a212058..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry.png b/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry.png deleted file mode 100644 index 7fc412c33c..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/courier-chemistry.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/meta.json deleted file mode 100644 index 6bbd0dc2d2..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_chemistry.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-chemistry", - "directions": 1 - }, - { - "name": "courier-chemistry-equipped-BACKPACK", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering-equipped-BACKPACK.png deleted file mode 100644 index 79a06d2b19..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering.png b/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering.png deleted file mode 100644 index f58b5b1e77..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/courier-engineering.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/meta.json deleted file mode 100644 index b62916b65c..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_engineering.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-engineering", - "directions": 1 - }, - { - "name": "courier-engineering-equipped-BACKPACK", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics-equipped-BACKPACK.png deleted file mode 100644 index a81a1468ce..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics.png b/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics.png deleted file mode 100644 index aef9c42255..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/courier-hydroponics.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/meta.json deleted file mode 100644 index 4474ce28a9..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_hydroponics.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-hydroponics", - "directions": 1 - }, - { - "name": "courier-hydroponics-equipped-BACKPACK", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical-equipped-BACKPACK.png deleted file mode 100644 index 880bf53439..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical.png b/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical.png deleted file mode 100644 index a6711c1181..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/courier-medical.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/meta.json deleted file mode 100644 index 0f4a220b06..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_medical.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-medical-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "courier-medical", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science-equipped-BACKPACK.png deleted file mode 100644 index bc6270f519..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science.png b/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science.png deleted file mode 100644 index da1afc33d0..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/courier-science.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/meta.json deleted file mode 100644 index 7b0c7dd7f8..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_science.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-science-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "courier-science", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security-equipped-BACKPACK.png deleted file mode 100644 index fd076d74bd..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security.png b/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security.png deleted file mode 100644 index ff9a24f4c1..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/courier-security.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/meta.json deleted file mode 100644 index 69d0af205c..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_security.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-security-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "courier-security", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology-equipped-BACKPACK.png deleted file mode 100644 index 4b75c5fbde..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology.png b/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology.png deleted file mode 100644 index 8817a17bd1..0000000000 Binary files a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/courier-virology.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/meta.json b/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/meta.json deleted file mode 100644 index 18788305e4..0000000000 --- a/Resources/Textures/Clothing/Back/Couriers/courier_virology.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "courier-virology", - "directions": 1 - }, - { - "name": "courier-virology-equipped-BACKPACK", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..11d050d33c Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/icon.png new file mode 100644 index 0000000000..f8c4e35cef Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-left.png new file mode 100644 index 0000000000..b1bab04c2e Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-right.png new file mode 100644 index 0000000000..769e6f4604 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..bbdf579a94 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/icon.png new file mode 100644 index 0000000000..a3a5b515aa Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-left.png new file mode 100644 index 0000000000..b723b23bce Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-right.png new file mode 100644 index 0000000000..912d2a7bb3 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_cap.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..781ad572bf Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/icon.png new file mode 100644 index 0000000000..d69734dc8a Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-left.png new file mode 100644 index 0000000000..da673dc3b7 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-right.png new file mode 100644 index 0000000000..ca857332fb Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_clown.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..9791670835 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/icon.png new file mode 100644 index 0000000000..e67468659a Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-left.png new file mode 100644 index 0000000000..4bb1cdc0ea Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-right.png new file mode 100644 index 0000000000..06599a1245 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_eng.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..07c8e5e54e Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/icon.png new file mode 100644 index 0000000000..b24896c01b Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-left.png new file mode 100644 index 0000000000..1be16c33e4 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-right.png new file mode 100644 index 0000000000..0cedf53f5c Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_med.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..184b4a1c69 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/icon.png new file mode 100644 index 0000000000..0b20edf42b Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-left.png new file mode 100644 index 0000000000..f14193e88b Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-right.png new file mode 100644 index 0000000000..fb686d390e Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_sec.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..3ef2c5cbbd Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/icon.png b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/icon.png new file mode 100644 index 0000000000..3da810039e Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-left.png new file mode 100644 index 0000000000..299d95f318 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-right.png new file mode 100644 index 0000000000..8b7063fa6d Binary files /dev/null and b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/meta.json b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/meta.json new file mode 100644 index 0000000000..e84a910cb3 --- /dev/null +++ b/Resources/Textures/Clothing/Back/Duffels/duffel_syn.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/satchel-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel.rsi/satchel-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/satchel.png b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel.rsi/satchel.png rename to Resources/Textures/Clothing/Back/Satchels/satchel.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-left.png new file mode 100644 index 0000000000..2f5f5f35cd Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-right.png new file mode 100644 index 0000000000..7952889f7d Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/meta.json index 3d3e0fd83e..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "satchel-equipped-BACKPACK", - "directions": 4 - }, { - "name": "satchel", + "name": "icon", "directions": 1 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/satchel-captain-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/satchel-captain-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/satchel-captain.png b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/satchel-captain.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-left.png new file mode 100644 index 0000000000..32cc456a07 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-right.png new file mode 100644 index 0000000000..0df9cc21c1 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/meta.json index 5c36b9da60..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_captain.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-captain-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-captain", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/satchel-chemistry-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/satchel-chemistry-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/satchel-chemistry.png b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/satchel-chemistry.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-left.png new file mode 100644 index 0000000000..987d684afa Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-right.png new file mode 100644 index 0000000000..772211909b Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/meta.json index d20399567e..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_chemistry.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-chemistry-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-chemistry", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/satchel-engineering-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/satchel-engineering-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/satchel-engineering.png b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/satchel-engineering.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-left.png new file mode 100644 index 0000000000..09db285b13 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-right.png new file mode 100644 index 0000000000..5d60aa8c33 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/meta.json index 2f47544f5a..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_engineering.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-engineering-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-engineering", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/meta.json deleted file mode 100644 index 541db6f2dc..0000000000 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "satchel-genetics-equipped-BACKPACK", - "directions": 4 - }, - { - "name": "satchel-genetics", - "directions": 1 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics-equipped-BACKPACK.png deleted file mode 100644 index 53a3c3c8a6..0000000000 Binary files a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics.png b/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics.png deleted file mode 100644 index ceb3eedb7b..0000000000 Binary files a/Resources/Textures/Clothing/Back/Satchels/satchel_genetics.rsi/satchel-genetics.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/satchel-hydroponics-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/satchel-hydroponics-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/satchel-hydroponics.png b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/satchel-hydroponics.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-left.png new file mode 100644 index 0000000000..3a99826f69 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-right.png new file mode 100644 index 0000000000..f486b2d0b9 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/meta.json index dc674418b9..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_hydroponics.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-hydroponics-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-hydroponics", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/satchel-medical-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/satchel-medical-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/satchel-medical.png b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/satchel-medical.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-left.png new file mode 100644 index 0000000000..bb089a8d44 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-right.png new file mode 100644 index 0000000000..9b292a1d3d Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/meta.json index 62340a94b0..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_medical.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-medical-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-medical", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/satchel-science-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/satchel-science-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/satchel-science.png b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/satchel-science.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-left.png new file mode 100644 index 0000000000..b910c8a3dc Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-right.png new file mode 100644 index 0000000000..a3d1c9fe22 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/meta.json index 8c4a68e1f8..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_science.rsi/meta.json @@ -1,16 +1,26 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-science", + "name": "icon", "directions": 1 }, { - "name": "satchel-science-equipped-BACKPACK", + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", "directions": 4 } ] diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/satchel-security-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/equipped-BACKPACK.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/satchel-security-equipped-BACKPACK.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/equipped-BACKPACK.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/satchel-security.png b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/icon.png similarity index 100% rename from Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/satchel-security.png rename to Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/icon.png diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-left.png b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-left.png new file mode 100644 index 0000000000..2311df1b11 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-right.png b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-right.png new file mode 100644 index 0000000000..6219205405 Binary files /dev/null and b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/meta.json index 01776a4c20..e84a910cb3 100644 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/meta.json +++ b/Resources/Textures/Clothing/Back/Satchels/satchel_security.rsi/meta.json @@ -1,17 +1,27 @@ { "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", "size": { "x": 32, "y": 32 }, "states": [ { - "name": "satchel-security-equipped-BACKPACK", + "name": "icon", + "directions": 1 + }, + { + "name": "equipped-BACKPACK", "directions": 4 }, { - "name": "satchel-security", - "directions": 1 + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/meta.json b/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/meta.json deleted file mode 100644 index a29abae487..0000000000 --- a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/meta.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "satchel-virology", - "directions": 1 - }, - { - "name": "satchel-virology-equipped-BACKPACK", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology-equipped-BACKPACK.png b/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology-equipped-BACKPACK.png deleted file mode 100644 index 49725f781d..0000000000 Binary files a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology-equipped-BACKPACK.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology.png b/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology.png deleted file mode 100644 index 809f1b86e0..0000000000 Binary files a/Resources/Textures/Clothing/Back/Satchels/satchel_virology.rsi/satchel-virology.png and /dev/null differ diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/meta.json b/Resources/Textures/Clothing/Belt/id_cards.rsi/meta.json deleted file mode 100644 index 7575d54e9b..0000000000 --- a/Resources/Textures/Clothing/Belt/id_cards.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "assigned", "directions": 1, "delays": [[1.0]]}, {"name": "gold", "directions": 1, "delays": [[1.0]]}, {"name": "default", "directions": 1, "delays": [[1.0]]}, {"name": "idassistant", "directions": 1, "delays": [[1.0]]}, {"name": "idcaptain", "directions": 1, "delays": [[1.0]]}, {"name": "idcargotechnician", "directions": 1, "delays": [[1.0]]}, {"name": "idcentcom", "directions": 1, "delays": [[1.0]]}, {"name": "idchiefengineer", "directions": 1, "delays": [[1.0]]}, {"name": "idchiefmedicalofficer", "directions": 1, "delays": [[1.0]]}, {"name": "idclown", "directions": 1, "delays": [[1.0]]}, {"name": "idheadofpersonnel", "directions": 1, "delays": [[1.0]]}, {"name": "idheadofsecurity", "directions": 1, "delays": [[1.0]]}, {"name": "idjanitor", "directions": 1, "delays": [[1.0]]}, {"name": "idmedicaldoctor", "directions": 1, "delays": [[1.0]]}, {"name": "idresearchdirector", "directions": 1, "delays": [[1.0]]}, {"name": "idscientist", "directions": 1, "delays": [[1.0]]}, {"name": "idsecurityofficer", "directions": 1, "delays": [[1.0]]}, {"name": "idcargotechnician", "directions": 1, "delays": [[1.0]]}, {"name": "idstationengineer", "directions": 1, "delays": [[1.0]]}, {"name": "silver", "directions": 1, "delays": [[1.0]]}, {"name": "default-inhand-left", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "gold-inhand-left", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "silver-inhand-left", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "default-inhand-right", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "gold-inhand-right", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "silver-inhand-right", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "idbartender", "directions": 1, "delays": [[1.0]]}, {"name": "idcook", "directions": 1, "delays": [[1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Masks/mask_sterile.rsi/equipped-MASK.png b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/equipped-MASK.png new file mode 100644 index 0000000000..7502e741a8 Binary files /dev/null and b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Clothing/Masks/mask_sterile.rsi/icon.png b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/icon.png new file mode 100644 index 0000000000..4067149249 Binary files /dev/null and b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Masks/mask_sterile.rsi/meta.json b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/meta.json new file mode 100644 index 0000000000..7ec693eda3 --- /dev/null +++ b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5a73e8f825ff279e82949b9329783a9e3070e2da", + "states": [ + { + "name": "icon", + "directions": 1, + }, + { + "name": "equipped-MASK", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "up-equipped-MASK", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Clothing/Masks/mask_sterile.rsi/up-equipped-MASK.png b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/up-equipped-MASK.png new file mode 100644 index 0000000000..3ba8642c01 Binary files /dev/null and b/Resources/Textures/Clothing/Masks/mask_sterile.rsi/up-equipped-MASK.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/meta.json b/Resources/Textures/Constructible/Atmos/pipe.rsi/meta.json new file mode 100644 index 0000000000..92a08111a2 --- /dev/null +++ b/Resources/Textures/Constructible/Atmos/pipe.rsi/meta.json @@ -0,0 +1,196 @@ +{ + "version":1, + "size":{ + "x":32, + "y":32 + }, + "license":"CC-BY-SA-3.0", + "copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", + "states":[ + { + "name":"pipeEast2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNorth2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSouth2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeWest2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeFourway1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeFourway2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeFourway3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLateral1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLateral2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLateral3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLongitudinal1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLongitudinal2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeLongitudinal3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNEBend1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNEBend2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNEBend3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNWBend1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNWBend2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeNWBend3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSEBend1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSEBend2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSEBend3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSWBend1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSWBend2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeSWBend3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTEast1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTEast2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTEast3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTNorth1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTNorth2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTNorth3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTSouth1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTSouth2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTSouth3", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTWest1", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTWest2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pipeTWest3", + "directions":1, + "delays":[ [ 1.0 ] ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeEast2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeEast2.png new file mode 100644 index 0000000000..a44e27011f Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeEast2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway1.png new file mode 100644 index 0000000000..3da5ae8a6a Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway2.png new file mode 100644 index 0000000000..7c29562995 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway3.png new file mode 100644 index 0000000000..069f5e6573 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeFourway3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral1.png new file mode 100644 index 0000000000..b8f1f66190 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral2.png new file mode 100644 index 0000000000..aad6e9f0f6 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral3.png new file mode 100644 index 0000000000..e715454f7e Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLateral3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal1.png new file mode 100644 index 0000000000..92bbfb0722 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal2.png new file mode 100644 index 0000000000..9bc0fd7997 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal3.png new file mode 100644 index 0000000000..3666086c91 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeLongitudinal3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend1.png new file mode 100644 index 0000000000..54b5c5782a Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend2.png new file mode 100644 index 0000000000..e5766e903b Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend3.png new file mode 100644 index 0000000000..f861f8b49e Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNEBend3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend1.png new file mode 100644 index 0000000000..2d02ced038 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend2.png new file mode 100644 index 0000000000..f88805cd27 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend3.png new file mode 100644 index 0000000000..36061210b8 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNWBend3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNorth2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNorth2.png new file mode 100644 index 0000000000..2dbddd2c44 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeNorth2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend1.png new file mode 100644 index 0000000000..568023bc17 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend2.png new file mode 100644 index 0000000000..e81dfe290c Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend3.png new file mode 100644 index 0000000000..496ab8c7a8 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSEBend3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend1.png new file mode 100644 index 0000000000..ca044b85d3 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend2.png new file mode 100644 index 0000000000..7ea0ed3efe Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend3.png new file mode 100644 index 0000000000..902c626149 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSWBend3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSouth2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSouth2.png new file mode 100644 index 0000000000..ba98a65841 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeSouth2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast1.png new file mode 100644 index 0000000000..083cbfc9ea Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast2.png new file mode 100644 index 0000000000..60b75434b0 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast3.png new file mode 100644 index 0000000000..817e74e7fb Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTEast3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth1.png new file mode 100644 index 0000000000..e082a773c5 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth2.png new file mode 100644 index 0000000000..0557b014c5 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth3.png new file mode 100644 index 0000000000..2780655438 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTNorth3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth1.png new file mode 100644 index 0000000000..04e434edcf Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth2.png new file mode 100644 index 0000000000..21517957ee Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth3.png new file mode 100644 index 0000000000..51fa53dde6 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTSouth3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest1.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest1.png new file mode 100644 index 0000000000..4711725c00 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest1.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest2.png new file mode 100644 index 0000000000..bf87ae1f25 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest3.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest3.png new file mode 100644 index 0000000000..2a4bf92267 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeTWest3.png differ diff --git a/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeWest2.png b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeWest2.png new file mode 100644 index 0000000000..bac3e06608 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pipe.rsi/pipeWest2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/meta.json b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/meta.json new file mode 100644 index 0000000000..d8390a7ef9 --- /dev/null +++ b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version":1, + "size":{ + "x":32, + "y":32 + }, + "license":"CC-BY-SA-3.0", + "copyright":"Taken from https://github.com/tgstation/tgstation at commit 57cd1d59ca019dd0e7811ac451f295f818e573da", + "states":[ + { + "name":"pumpEast2West2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pumpNorth2South2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pumpSouth2North2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pumpWest2East2", + "directions":1, + "delays":[ [ 1.0 ] ] + }, + { + "name":"pumpEnabledEast2West2", + "directions":1, + "delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name":"pumpEnabledNorth2South2", + "directions":1, + "delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name":"pumpEnabledSouth2North2", + "directions":1, + "delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name":"pumpEnabledWest2East2", + "directions":1, + "delays":[ [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEast2West2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEast2West2.png new file mode 100644 index 0000000000..dc07973864 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEast2West2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledEast2West2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledEast2West2.png new file mode 100644 index 0000000000..4e2d4e1a78 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledEast2West2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledNorth2South2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledNorth2South2.png new file mode 100644 index 0000000000..6e33ce9160 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledNorth2South2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledSouth2North2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledSouth2North2.png new file mode 100644 index 0000000000..fffb200483 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledSouth2North2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledWest2East2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledWest2East2.png new file mode 100644 index 0000000000..ddcd2cd54d Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpEnabledWest2East2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpNorth2South2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpNorth2South2.png new file mode 100644 index 0000000000..3f26d407ea Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpNorth2South2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpSouth2North2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpSouth2North2.png new file mode 100644 index 0000000000..d805b9df59 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpSouth2North2.png differ diff --git a/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpWest2East2.png b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpWest2East2.png new file mode 100644 index 0000000000..789ad70f39 Binary files /dev/null and b/Resources/Textures/Constructible/Atmos/pressurepump.rsi/pumpWest2East2.png differ diff --git a/Resources/Textures/Constructible/Linking/switch.rsi/dead.png b/Resources/Textures/Constructible/Linking/switch.rsi/dead.png new file mode 100644 index 0000000000..7b6a4689e3 Binary files /dev/null and b/Resources/Textures/Constructible/Linking/switch.rsi/dead.png differ diff --git a/Resources/Textures/Constructible/Linking/switch.rsi/meta.json b/Resources/Textures/Constructible/Linking/switch.rsi/meta.json new file mode 100644 index 0000000000..52e2eb00d2 --- /dev/null +++ b/Resources/Textures/Constructible/Linking/switch.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/2f127f8b95220226cdd5be356723f3b849c53acf", + "states": [ + { + "name": "on", + "select": [], + "flags": {}, + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "off", + "select": [], + "flags": {}, + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead", + "select": [], + "flags": {}, + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Constructible/Linking/switch.rsi/off.png b/Resources/Textures/Constructible/Linking/switch.rsi/off.png new file mode 100644 index 0000000000..41c50ed6c2 Binary files /dev/null and b/Resources/Textures/Constructible/Linking/switch.rsi/off.png differ diff --git a/Resources/Textures/Constructible/Linking/switch.rsi/on.png b/Resources/Textures/Constructible/Linking/switch.rsi/on.png new file mode 100644 index 0000000000..54f9cab603 Binary files /dev/null and b/Resources/Textures/Constructible/Linking/switch.rsi/on.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/alohasnackbar.png b/Resources/Textures/Constructible/Misc/barsign.rsi/alohasnackbar.png deleted file mode 100644 index dc1ad65c6c..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/alohasnackbar.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/birdcage.png b/Resources/Textures/Constructible/Misc/barsign.rsi/birdcage.png new file mode 100644 index 0000000000..41cdaddbe4 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/birdcage.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/emprah.png b/Resources/Textures/Constructible/Misc/barsign.rsi/emprah.png new file mode 100644 index 0000000000..eff93f6a5f Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/emprah.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/honkednloaded.png b/Resources/Textures/Constructible/Misc/barsign.rsi/honkednloaded.png deleted file mode 100644 index 15b94d5773..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/honkednloaded.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/lv426.png b/Resources/Textures/Constructible/Misc/barsign.rsi/lv426.png new file mode 100644 index 0000000000..811a71320b Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/lv426.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/meta.json b/Resources/Textures/Constructible/Misc/barsign.rsi/meta.json index 3498d5eb1b..764787ab0f 100644 --- a/Resources/Textures/Constructible/Misc/barsign.rsi/meta.json +++ b/Resources/Textures/Constructible/Misc/barsign.rsi/meta.json @@ -1 +1,529 @@ -{"version":1,"size":{"x":64,"y":32},"states":[{"name":"alohasnackbar","directions":1,"delays":[[1.0]]},{"name":"combocafe","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},{"name":"emergencyrumparty","directions":1,"delays":[[1.0,1.0,1.0,5.0,1.0,1.0,1.0,1.0]]},{"name":"empbarsign","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},{"name":"empty","directions":1,"delays":[[1.0]]},{"name":"goose","directions":1,"delays":[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]},{"name":"honkednloaded","directions":1,"delays":[[0.4,1.0]]},{"name":"maidcafe","directions":1,"delays":[[1.0,0.03,0.03,0.03,0.03,0.6,0.03,0.03,2.0,0.03,0.03,0.03,0.03,2.0,0.03,0.03]]},{"name":"maltesefalcon","directions":1,"delays":[[3.8,0.4,1.6,0.1,5.6,0.1,0.4,0.1]]},{"name":"officerbeersky","directions":1,"delays":[[3.0,0.4,1.6,0.1,3.4,0.1,0.4,0.1,0.8]]},{"name":"oldcockinn","directions":1,"delays":[[1.8,0.1,0.1,0.6,0.8,0.6,0.8,0.6,2.4,0.1,0.1,0.1]]},{"name":"robustacafe","directions":1,"delays":[[1.8,0.1,0.1,0.1,0.1,1.6,0.1,0.1,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.1,0.1]]},{"name":"scotchservinwill","directions":1,"delays":[[3.0,0.4,1.6,0.1,3.4,0.1,0.4,0.1,0.8]]},{"name":"slipperyshots","directions":1,"delays":[[0.4,1.0]]},{"name":"syndibarsign","directions":1,"delays":[[0.1,0.9,2.5,1.0,2.5,0.1,0.05,0.2,0.1,0.05,2.5,1.0,2.5,0.1,0.05,0.2,0.1,0.05,2.5,1.0]]},{"name":"the_lightbulb","directions":1,"delays":[[0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,1.6,0.1,1.3,0.2,2.0,0.3]]},{"name":"theadminbus","directions":1,"delays":[[2.5,1.5]]},{"name":"thealenath","directions":1,"delays":[[1.8,0.1,0.1,0.1,0.1,1.6,0.1,0.1,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.1,0.1]]},{"name":"thebark","directions":1,"delays":[[3.0,0.4,1.6,0.1,3.4,0.1,0.4,0.1,0.8]]},{"name":"thecavern","directions":1,"delays":[[1.0,4.5,0.2,1.5]]},{"name":"thecoderbus","directions":1,"delays":[[2.5,1.5]]},{"name":"thedrunkcarp","directions":1,"delays":[[0.5,0.1,0.4,1.0,0.5,0.3,0.1,1.0]]},{"name":"thegreytide","directions":1,"delays":[[0.4,1.0]]},{"name":"theharmbaton","directions":1,"delays":[[3.0,0.4,1.6,0.1,3.4,0.1,0.4,0.1,0.8]]},{"name":"thenest","directions":1,"delays":[[0.6,0.6,0.6,0.6,0.6,0.2,0.2,0.6,0.6,0.4,0.1,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.1,0.4,0.1,0.4,0.4]]},{"name":"thenet","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},{"name":"theouterspess","directions":1,"delays":[[1.0,1.0]]},{"name":"theshaken","directions":1,"delays":[[1.8,0.1,0.1,0.1,0.1,1.6,0.1,0.1,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.1,0.1]]},{"name":"thesingulo","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]]},{"name":"thewretchedhive","directions":1,"delays":[[0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.1,0.1,0.1,0.4]]},{"name":"vladssaladbar","directions":1,"delays":[[1.0]]},{"name":"enginechange","directions":1,"delays":[[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2]]}]} \ No newline at end of file +{ + "version": 1, + "size": { + "x": 64, + "y": 32 + }, + "license": "CC-BY-SA 3", + "copyright": "https://github.com/vgstation-coders/vgstation13/commit/1fbb5e417d0200fe60c6b628656a371093d2d715", + "copyright": "https://github.com/tgstation/tgstation/commit/68aade356cf53032f206cb5a887581ac7d166cae", + "states": [ + { + "name": "combocafe", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "thewiggleroom", + "directions": 1, + "delays": [ + [ + 0.4, + 0.8, + 0.4, + 0.8 + ] + ] + }, + { + "name": "thesun", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "lv426", + "directions": 1, + "delays": [ + [ + 1, + 1 + ] + ] + }, + { + "name": "birdcage", + "directions": 1, + "delays": [ + [ + 0.4, + 0.8 + ] + ] + }, + { + "name": "zocalo", + "directions": 1, + "delays": [ + [ + 1, + 1 + ] + ] + }, + { + "name": "emergencyrumparty", + "directions": 1, + "delays": [ + [ + 1, + 1, + 1, + 5, + 1, + 1, + 1, + 1 + ] + ] + }, + { + "name": "empbarsign", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "empty", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "goose", + "directions": 1, + "delays": [ + [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5 + ] + ] + }, + { + "name": "maidcafe", + "directions": 1, + "delays": [ + [ + 1, + 0.03, + 0.03, + 0.03, + 0.03, + 0.6, + 0.03, + 0.03, + 2, + 0.03, + 0.03, + 0.03, + 0.03, + 2, + 0.03, + 0.03 + ] + ] + }, + { + "name": "officerbeersky", + "directions": 1, + "delays": [ + [ + 3, + 0.4, + 1.6, + 0.1, + 3.4, + 0.1, + 0.4, + 0.1, + 0.8 + ] + ] + }, + { + "name": "the_lightbulb", + "directions": 1, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 1.6, + 0.1, + 1.3, + 0.2, + 2, + 0.3 + ] + ] + }, + { + "name": "thealenath", + "directions": 1, + "delays": [ + [ + 1.8, + 0.1, + 0.1, + 0.1, + 0.1, + 1.6, + 0.1, + 0.1, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.1, + 0.1 + ] + ] + }, + { + "name": "thecoderbus", + "directions": 1, + "delays": [ + [ + 2.5, + 1.5 + ] + ] + }, + { + "name": "thedrunkcarp", + "directions": 1, + "delays": [ + [ + 0.5, + 0.1, + 0.4, + 1, + 0.5, + 0.3, + 0.1, + 1 + ] + ] + }, + { + "name": "theharmbaton", + "directions": 1, + "delays": [ + [ + 3, + 0.4, + 1.6, + 0.1, + 3.4, + 0.1, + 0.4, + 0.1, + 0.8 + ] + ] + }, + { + "name": "thenet", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "theouterspess", + "directions": 1, + "delays": [ + [ + 1, + 1 + ] + ] + }, + { + "name": "emprah", + "directions": 1, + "delays": [ + [ + 1, + 1 + ] + ] + }, + { + "name": "thesingulo", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "robustacafe", + "directions": 1, + "delays": [ + [ + 1.8, + 0.1, + 0.1, + 0.1, + 0.1, + 1.6, + 0.1, + 0.1, + 0.6, + 0.6, + 0.6, + 0.6, + 0.6, + 0.6, + 0.6, + 0.6, + 0.6, + 0.1, + 0.1 + ] + ] + }, + { + "name": "maltesefalcon", + "directions": 1, + "delays": [ + [ + 3.8, + 0.4, + 1.6, + 0.1, + 5.6, + 0.1, + 0.4, + 0.1 + ] + ] + }, + { + "name": "thewretchedhive", + "directions": 1, + "delays": [ + [ + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.1, + 0.1, + 0.1, + 0.4 + ] + ] + }, + { + "name": "enginechange", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/oldcockinn.png b/Resources/Textures/Constructible/Misc/barsign.rsi/oldcockinn.png deleted file mode 100644 index 537d07a1e6..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/oldcockinn.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/scotchservinwill.png b/Resources/Textures/Constructible/Misc/barsign.rsi/scotchservinwill.png deleted file mode 100644 index 845c71dcc8..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/scotchservinwill.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/slipperyshots.png b/Resources/Textures/Constructible/Misc/barsign.rsi/slipperyshots.png deleted file mode 100644 index da0e220066..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/slipperyshots.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/syndibarsign.png b/Resources/Textures/Constructible/Misc/barsign.rsi/syndibarsign.png deleted file mode 100644 index 8ccb09ece6..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/syndibarsign.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/theadminbus.png b/Resources/Textures/Constructible/Misc/barsign.rsi/theadminbus.png deleted file mode 100644 index 08787919ba..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/theadminbus.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thebark.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thebark.png deleted file mode 100644 index 4067631dfa..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/thebark.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thecavern.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thecavern.png deleted file mode 100644 index cf650a01bf..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/thecavern.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thegreytide.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thegreytide.png deleted file mode 100644 index 06561c568a..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/thegreytide.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thenest.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thenest.png deleted file mode 100644 index 102359c797..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/thenest.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/theshaken.png b/Resources/Textures/Constructible/Misc/barsign.rsi/theshaken.png deleted file mode 100644 index df7e8de66c..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/theshaken.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thesun.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thesun.png new file mode 100644 index 0000000000..38519a7e23 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/thesun.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/thewiggleroom.png b/Resources/Textures/Constructible/Misc/barsign.rsi/thewiggleroom.png new file mode 100644 index 0000000000..e11c464258 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/thewiggleroom.png differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/vladssaladbar.png b/Resources/Textures/Constructible/Misc/barsign.rsi/vladssaladbar.png deleted file mode 100644 index e8163712fe..0000000000 Binary files a/Resources/Textures/Constructible/Misc/barsign.rsi/vladssaladbar.png and /dev/null differ diff --git a/Resources/Textures/Constructible/Misc/barsign.rsi/zocalo.png b/Resources/Textures/Constructible/Misc/barsign.rsi/zocalo.png new file mode 100644 index 0000000000..d4d8b96159 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/barsign.rsi/zocalo.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png new file mode 100644 index 0000000000..f0a2177fec Binary files /dev/null and b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_closed.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_empty.png b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_empty.png new file mode 100644 index 0000000000..5653c6026a Binary files /dev/null and b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_empty.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_full.png b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_full.png new file mode 100644 index 0000000000..740b7d3729 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_full.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_mini.png b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_mini.png new file mode 100644 index 0000000000..4e97717d6d Binary files /dev/null and b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/extinguisher_mini.png differ diff --git a/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json new file mode 100644 index 0000000000..f27ae0220e --- /dev/null +++ b/Resources/Textures/Constructible/Misc/extinguisher_cabinet.rsi/meta.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at commit d0d81185f09ca30d3b0856d476544240dba0de53", + "states": [ + { + "name": "extinguisher_closed", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "extinguisher_empty", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "extinguisher_full", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "extinguisher_mini", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} diff --git a/Resources/Textures/Constructible/Misc/sylphs.rsi/meta.json b/Resources/Textures/Constructible/Misc/sylphs.rsi/meta.json new file mode 100644 index 0000000000..eeacdaf161 --- /dev/null +++ b/Resources/Textures/Constructible/Misc/sylphs.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "size": { + "x": 96, + "y": 96 + }, + "license": "CC-BY-SA 3", + "copyright": "https://github.com/vgstation-coders/vgstation13/commit/1fbb5e417d0200fe60c6b628656a371093d2d715", + "states": [ + { + "name": "sylph", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Constructible/Misc/sylphs.rsi/sylph.png b/Resources/Textures/Constructible/Misc/sylphs.rsi/sylph.png new file mode 100644 index 0000000000..bd0fe37acf Binary files /dev/null and b/Resources/Textures/Constructible/Misc/sylphs.rsi/sylph.png differ diff --git a/Resources/Textures/Constructible/Misc/sylphs.rsi/sylphicon.png b/Resources/Textures/Constructible/Misc/sylphs.rsi/sylphicon.png new file mode 100644 index 0000000000..53773603a8 Binary files /dev/null and b/Resources/Textures/Constructible/Misc/sylphs.rsi/sylphicon.png differ diff --git a/Resources/Textures/Constructible/Power/ame_controller.rsi/control.png b/Resources/Textures/Constructible/Power/ame_controller.rsi/control.png new file mode 100644 index 0000000000..5f2255983d Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_controller.rsi/control.png differ diff --git a/Resources/Textures/Constructible/Power/ame_controller.rsi/control_critical.png b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_critical.png new file mode 100644 index 0000000000..24de7e92b3 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_critical.png differ diff --git a/Resources/Textures/Constructible/Power/ame_controller.rsi/control_fuck.png b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_fuck.png new file mode 100644 index 0000000000..895ca15c49 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_fuck.png differ diff --git a/Resources/Textures/Constructible/Power/ame_controller.rsi/control_on.png b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_on.png new file mode 100644 index 0000000000..3bfda8869c Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_controller.rsi/control_on.png differ diff --git a/Resources/Textures/Constructible/Power/ame_controller.rsi/meta.json b/Resources/Textures/Constructible/Power/ame_controller.rsi/meta.json new file mode 100644 index 0000000000..6bf6b7f12e --- /dev/null +++ b/Resources/Textures/Constructible/Power/ame_controller.rsi/meta.json @@ -0,0 +1,120 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/icons/obj/machines/new_ame.dmi at 1b7952787c06c21ef1623e494dcfe7cb1f46e041", + "states": [ + { + "name": "control", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "control_critical", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "control_fuck", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "control_on", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/core.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core.png new file mode 100644 index 0000000000..36c0349b82 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_strong.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_strong.png new file mode 100644 index 0000000000..a6a1f109d4 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_strong.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_weak.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_weak.png new file mode 100644 index 0000000000..a8cc73bb9c Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/core_weak.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/meta.json b/Resources/Textures/Constructible/Power/ame_shielding.rsi/meta.json new file mode 100644 index 0000000000..1ce0d8402b --- /dev/null +++ b/Resources/Textures/Constructible/Power/ame_shielding.rsi/meta.json @@ -0,0 +1,192 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/icons/obj/machines/new_ame.dmi at 1b7952787c06c21ef1623e494dcfe7cb1f46e041", + "states": [ + { + "name": "shield_0", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_1", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_10", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_11", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_12", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_13", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_14", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_15", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_2", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_3", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_4", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_5", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_6", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_7", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_8", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "core", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "shield_9", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "core_weak", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "core_strong", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_0.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_0.png new file mode 100644 index 0000000000..cd62067877 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_0.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_1.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_1.png new file mode 100644 index 0000000000..4fa79f44d4 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_1.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_10.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_10.png new file mode 100644 index 0000000000..8c6ab600e7 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_10.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_11.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_11.png new file mode 100644 index 0000000000..155f3ca3ec Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_11.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_12.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_12.png new file mode 100644 index 0000000000..87a8784187 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_12.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_13.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_13.png new file mode 100644 index 0000000000..fe6f214f17 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_13.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_14.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_14.png new file mode 100644 index 0000000000..6fad2a5c92 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_14.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_15.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_15.png new file mode 100644 index 0000000000..cd62067877 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_15.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_2.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_2.png new file mode 100644 index 0000000000..7c558be6d1 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_2.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_3.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_3.png new file mode 100644 index 0000000000..54c89f787a Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_3.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_4.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_4.png new file mode 100644 index 0000000000..e9b362b9a4 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_4.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_5.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_5.png new file mode 100644 index 0000000000..ac07397a5d Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_5.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_6.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_6.png new file mode 100644 index 0000000000..960673f636 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_6.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_7.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_7.png new file mode 100644 index 0000000000..3a6884eb29 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_7.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_8.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_8.png new file mode 100644 index 0000000000..e91dd03b1b Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_8.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_9.png b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_9.png new file mode 100644 index 0000000000..9636902933 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding.rsi/shield_9.png differ diff --git a/Resources/Textures/Constructible/Power/ame_shielding_base.png b/Resources/Textures/Constructible/Power/ame_shielding_base.png new file mode 100644 index 0000000000..cd62067877 Binary files /dev/null and b/Resources/Textures/Constructible/Power/ame_shielding_base.png differ diff --git a/Resources/Textures/Interface/Misc/markers.rsi/meta.json b/Resources/Textures/Interface/Misc/markers.rsi/meta.json index 3c58904297..0d8134ac63 100644 --- a/Resources/Textures/Interface/Misc/markers.rsi/meta.json +++ b/Resources/Textures/Interface/Misc/markers.rsi/meta.json @@ -528,6 +528,24 @@ 1.0 ] ] + }, + { + "name": "spawner_toy", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "spawner_figure", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Interface/Misc/markers.rsi/spawner_figure.png b/Resources/Textures/Interface/Misc/markers.rsi/spawner_figure.png new file mode 100644 index 0000000000..ac87bd0a27 Binary files /dev/null and b/Resources/Textures/Interface/Misc/markers.rsi/spawner_figure.png differ diff --git a/Resources/Textures/Interface/Misc/markers.rsi/spawner_toy.png b/Resources/Textures/Interface/Misc/markers.rsi/spawner_toy.png new file mode 100644 index 0000000000..9a742f58fd Binary files /dev/null and b/Resources/Textures/Interface/Misc/markers.rsi/spawner_toy.png differ diff --git a/Resources/Textures/Interface/StatusEffects/Buckle/unbuckled.png b/Resources/Textures/Interface/StatusEffects/Buckle/unbuckled.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Buckle/unbuckled.png and /dev/null differ diff --git a/Resources/Textures/Interface/StatusEffects/Handcuffed/Uncuffed.png b/Resources/Textures/Interface/StatusEffects/Handcuffed/Uncuffed.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Handcuffed/Uncuffed.png and /dev/null differ diff --git a/Resources/Textures/Interface/StatusEffects/Hunger/Dead.png b/Resources/Textures/Interface/StatusEffects/Hunger/Dead.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Hunger/Dead.png and /dev/null differ diff --git a/Resources/Textures/Interface/StatusEffects/Hunger/Okay.png b/Resources/Textures/Interface/StatusEffects/Hunger/Okay.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Hunger/Okay.png and /dev/null differ diff --git a/Resources/Textures/Interface/StatusEffects/Thirst/Dead.png b/Resources/Textures/Interface/StatusEffects/Thirst/Dead.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Thirst/Dead.png and /dev/null differ diff --git a/Resources/Textures/Interface/StatusEffects/Thirst/Okay.png b/Resources/Textures/Interface/StatusEffects/Thirst/Okay.png deleted file mode 100644 index 6879bd394f..0000000000 Binary files a/Resources/Textures/Interface/StatusEffects/Thirst/Okay.png and /dev/null differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/flare_base.png b/Resources/Textures/Objects/Misc/flare.rsi/flare_base.png new file mode 100644 index 0000000000..9701612e68 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/flare_base.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/flare_burn.png b/Resources/Textures/Objects/Misc/flare.rsi/flare_burn.png new file mode 100644 index 0000000000..352e47d043 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/flare_burn.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/flare_spent.png b/Resources/Textures/Objects/Misc/flare.rsi/flare_spent.png new file mode 100644 index 0000000000..eb35b0b7f9 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/flare_spent.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/flare_unlit.png b/Resources/Textures/Objects/Misc/flare.rsi/flare_unlit.png new file mode 100644 index 0000000000..199c041e19 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/flare_unlit.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/meta.json b/Resources/Textures/Objects/Misc/flare.rsi/meta.json new file mode 100644 index 0000000000..ad01494edd --- /dev/null +++ b/Resources/Textures/Objects/Misc/flare.rsi/meta.json @@ -0,0 +1,126 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites created by https://github.com/nuke-makes-games", + "states": + [ + { + "name": "off-inhand-left", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "off-inhand-right", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "on-inhand-left", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "on-inhand-right", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "flare_burn", + "select": [], + "flags": {}, + "directions": 1, + "delays": [ + [ + 0.05, + 0.05, + 0.05, + 0.05 + ] + ] + }, + { + "name": "flare_spent", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "flare_base", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "flare_unlit", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} + diff --git a/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-left.png b/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-left.png new file mode 100644 index 0000000000..251bd852bb Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-right.png b/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-right.png new file mode 100644 index 0000000000..f019038811 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/off-inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-left.png b/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-left.png new file mode 100644 index 0000000000..7d5e391e47 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-right.png b/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-right.png new file mode 100644 index 0000000000..56e77879d0 Binary files /dev/null and b/Resources/Textures/Objects/Misc/flare.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_base.png b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_base.png new file mode 100644 index 0000000000..9148f4e09c Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_base.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_glow.png b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_glow.png new file mode 100644 index 0000000000..e5aa5d029d Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_glow.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_lit.png b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_lit.png new file mode 100644 index 0000000000..44476eae3e Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_lit.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_unlit.png b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_unlit.png new file mode 100644 index 0000000000..87c7e26383 Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/glowstick_unlit.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/meta.json b/Resources/Textures/Objects/Misc/glowstick.rsi/meta.json new file mode 100644 index 0000000000..f6822ba045 --- /dev/null +++ b/Resources/Textures/Objects/Misc/glowstick.rsi/meta.json @@ -0,0 +1,121 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites created by https://github.com/nuke-makes-games", + "states": + [ + { + "name": "off-inhand-left", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "off-inhand-right", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "on-inhand-left", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "on-inhand-right", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "glowstick_base", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "glowstick_lit", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "glowstick_glow", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "glowstick_unlit", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} + diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-left.png b/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-left.png new file mode 100644 index 0000000000..251bd852bb Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-right.png b/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-right.png new file mode 100644 index 0000000000..f019038811 Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/off-inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-left.png b/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-left.png new file mode 100644 index 0000000000..e6528b346d Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-right.png b/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-right.png new file mode 100644 index 0000000000..0d26e9dca9 Binary files /dev/null and b/Resources/Textures/Objects/Misc/glowstick.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/assigned.png b/Resources/Textures/Objects/Misc/id_cards.rsi/assigned.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/assigned.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/assigned.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/default-inhand-left.png b/Resources/Textures/Objects/Misc/id_cards.rsi/default-inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/default-inhand-left.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/default-inhand-left.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/default-inhand-right.png b/Resources/Textures/Objects/Misc/id_cards.rsi/default-inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/default-inhand-right.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/default-inhand-right.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/default.png b/Resources/Textures/Objects/Misc/id_cards.rsi/default.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/default.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/default.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/gold-inhand-left.png b/Resources/Textures/Objects/Misc/id_cards.rsi/gold-inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/gold-inhand-left.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/gold-inhand-left.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/gold-inhand-right.png b/Resources/Textures/Objects/Misc/id_cards.rsi/gold-inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/gold-inhand-right.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/gold-inhand-right.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/gold.png b/Resources/Textures/Objects/Misc/id_cards.rsi/gold.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/gold.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/gold.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idassistant.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idassistant.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idassistant.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idassistant.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idbartender.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idbartender.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idbartender.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idbartender.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idcaptain.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idcaptain.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idcaptain.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idcaptain.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idcargotechnician.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idcargotechnician.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idcargotechnician.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idcargotechnician.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idcentcom.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idcentcom.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idcentcom.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idcentcom.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idchiefengineer.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idchiefengineer.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idchiefengineer.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idchiefengineer.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idchiefmedicalofficer.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idchiefmedicalofficer.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idchiefmedicalofficer.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idchiefmedicalofficer.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idclown.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idclown.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idclown.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idclown.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idcook.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idcook.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idcook.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idcook.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idheadofpersonnel.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idheadofpersonnel.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idheadofpersonnel.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idheadofpersonnel.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idheadofsecurity.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idheadofsecurity.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idheadofsecurity.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idheadofsecurity.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idjanitor.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idjanitor.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idjanitor.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idjanitor.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idmedicaldoctor.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idmedicaldoctor.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idmedicaldoctor.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idmedicaldoctor.png diff --git a/Resources/Textures/Objects/Misc/id_cards.rsi/idmime.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idmime.png new file mode 100644 index 0000000000..5f2c9cec76 Binary files /dev/null and b/Resources/Textures/Objects/Misc/id_cards.rsi/idmime.png differ diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idresearchdirector.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idresearchdirector.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idresearchdirector.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idresearchdirector.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idscientist.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idscientist.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idscientist.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idscientist.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idsecurityofficer.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idsecurityofficer.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idsecurityofficer.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idsecurityofficer.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/idstationengineer.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idstationengineer.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/idstationengineer.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/idstationengineer.png diff --git a/Resources/Textures/Objects/Misc/id_cards.rsi/meta.json b/Resources/Textures/Objects/Misc/id_cards.rsi/meta.json new file mode 100644 index 0000000000..5f22cd0c9d --- /dev/null +++ b/Resources/Textures/Objects/Misc/id_cards.rsi/meta.json @@ -0,0 +1,324 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assigned", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "gold", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "default", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idassistant", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idcaptain", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idcargotechnician", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idcentcom", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idchiefengineer", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idchiefmedicalofficer", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idclown", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idheadofpersonnel", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idheadofsecurity", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idjanitor", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idmedicaldoctor", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idresearchdirector", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idscientist", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idsecurityofficer", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idcargotechnician", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idstationengineer", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idmime", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "silver", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "default-inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "gold-inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "silver-inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "default-inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "gold-inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "silver-inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "idbartender", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "idcook", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/silver-inhand-left.png b/Resources/Textures/Objects/Misc/id_cards.rsi/silver-inhand-left.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/silver-inhand-left.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/silver-inhand-left.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/silver-inhand-right.png b/Resources/Textures/Objects/Misc/id_cards.rsi/silver-inhand-right.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/silver-inhand-right.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/silver-inhand-right.png diff --git a/Resources/Textures/Clothing/Belt/id_cards.rsi/silver.png b/Resources/Textures/Objects/Misc/id_cards.rsi/silver.png similarity index 100% rename from Resources/Textures/Clothing/Belt/id_cards.rsi/silver.png rename to Resources/Textures/Objects/Misc/id_cards.rsi/silver.png diff --git a/Resources/Textures/Objects/Power/AME/ame_jar.rsi/jar.png b/Resources/Textures/Objects/Power/AME/ame_jar.rsi/jar.png new file mode 100644 index 0000000000..ede7ec4094 Binary files /dev/null and b/Resources/Textures/Objects/Power/AME/ame_jar.rsi/jar.png differ diff --git a/Resources/Textures/Objects/Power/AME/ame_jar.rsi/meta.json b/Resources/Textures/Objects/Power/AME/ame_jar.rsi/meta.json new file mode 100644 index 0000000000..38c5df1bfe --- /dev/null +++ b/Resources/Textures/Objects/Power/AME/ame_jar.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/icons/obj/machines/new_ame.dmi at 1b7952787c06c21ef1623e494dcfe7cb1f46e041", + "states": [ + { + "name": "jar", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Power/AME/ame_part.rsi/box.png b/Resources/Textures/Objects/Power/AME/ame_part.rsi/box.png new file mode 100644 index 0000000000..320d84905c Binary files /dev/null and b/Resources/Textures/Objects/Power/AME/ame_part.rsi/box.png differ diff --git a/Resources/Textures/Objects/Power/AME/ame_part.rsi/meta.json b/Resources/Textures/Objects/Power/AME/ame_part.rsi/meta.json new file mode 100644 index 0000000000..423746d2a2 --- /dev/null +++ b/Resources/Textures/Objects/Power/AME/ame_part.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/icons/obj/machines/new_ame.dmi at 1b7952787c06c21ef1623e494dcfe7cb1f46e041", + "states": [ + { + "name": "box", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/meta.json similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/meta.json rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/meta.json diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/pod_0.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/pod_0.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/pod_0.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/pod_0.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_maintenance.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_maintenance.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_maintenance.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_maintenance.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_occupied.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_occupied.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_occupied.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_occupied.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open_maintenance.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open_maintenance.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open_maintenance.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open_maintenance.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open_unpowered.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open_unpowered.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_open_unpowered.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_open_unpowered.png diff --git a/Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_unpowered.png b/Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_unpowered.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Cloning.rsi/scanner_unpowered.png rename to Resources/Textures/Objects/Specific/Medical/BodyScanner.rsi/scanner_unpowered.png diff --git a/Resources/Textures/Objects/Specific/Medical/cloning.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/meta.json new file mode 100644 index 0000000000..ac8957b3fe --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/meta.json @@ -0,0 +1,56 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC BY-SA 3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at commit 9bebd81ae0b0a7f952b59886a765c681205de31f", + "states": [ + { + "name": "pod_0", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "pod_1", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "pod_e", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "pod_g", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_0.png b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_0.png new file mode 100644 index 0000000000..13d289fd6c Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_0.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_1.png b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_1.png new file mode 100644 index 0000000000..eef65e1aef Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_1.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_e.png b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_e.png new file mode 100644 index 0000000000..acd9b6c194 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_e.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_g.png b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_g.png new file mode 100644 index 0000000000..ea3e002156 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/cloning.rsi/pod_g.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/beaker.png b/Resources/Textures/Objects/Storage/boxes.rsi/beaker.png new file mode 100644 index 0000000000..6fe24bba2f Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/beaker.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/bodybags.png b/Resources/Textures/Objects/Storage/boxes.rsi/bodybags.png new file mode 100644 index 0000000000..80612572aa Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/bodybags.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box.png b/Resources/Textures/Objects/Storage/boxes.rsi/box.png new file mode 100644 index 0000000000..e62e0f699f Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box_donk_pocket.png b/Resources/Textures/Objects/Storage/boxes.rsi/box_donk_pocket.png new file mode 100644 index 0000000000..53695eb6ae Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box_donk_pocket.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box_id.png b/Resources/Textures/Objects/Storage/boxes.rsi/box_id.png new file mode 100644 index 0000000000..699aeb7c48 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box_id.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom.png b/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom.png new file mode 100644 index 0000000000..50379bb475 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom_big.png b/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom_big.png new file mode 100644 index 0000000000..00833bb163 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box_of_doom_big.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/box_security.png b/Resources/Textures/Objects/Storage/boxes.rsi/box_security.png new file mode 100644 index 0000000000..eb5120f812 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/box_security.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/circuit.png b/Resources/Textures/Objects/Storage/boxes.rsi/circuit.png new file mode 100644 index 0000000000..a713f67254 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/circuit.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/disk.png b/Resources/Textures/Objects/Storage/boxes.rsi/disk.png new file mode 100644 index 0000000000..219e8942f4 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/disk.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/flashbang.png b/Resources/Textures/Objects/Storage/boxes.rsi/flashbang.png new file mode 100644 index 0000000000..7feb84489d Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/flashbang.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/glasses.png b/Resources/Textures/Objects/Storage/boxes.rsi/glasses.png new file mode 100644 index 0000000000..d5d151a7b8 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/glasses.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/handcuff.png b/Resources/Textures/Objects/Storage/boxes.rsi/handcuff.png new file mode 100644 index 0000000000..625b865dd1 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/handcuff.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/implant.png b/Resources/Textures/Objects/Storage/boxes.rsi/implant.png new file mode 100644 index 0000000000..bb99baa954 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/implant.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/inhand-left.png b/Resources/Textures/Objects/Storage/boxes.rsi/inhand-left.png new file mode 100644 index 0000000000..a45ce6c693 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/inhand-right.png b/Resources/Textures/Objects/Storage/boxes.rsi/inhand-right.png new file mode 100644 index 0000000000..bc2f8c7cbf Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/latex.png b/Resources/Textures/Objects/Storage/boxes.rsi/latex.png new file mode 100644 index 0000000000..46a4cbbfad Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/latex.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/light.png b/Resources/Textures/Objects/Storage/boxes.rsi/light.png new file mode 100644 index 0000000000..ddb5fa3147 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/light.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/lightmixed.png b/Resources/Textures/Objects/Storage/boxes.rsi/lightmixed.png new file mode 100644 index 0000000000..8df25a0b7b Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/lightmixed.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/lighttube.png b/Resources/Textures/Objects/Storage/boxes.rsi/lighttube.png new file mode 100644 index 0000000000..8832163fd6 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/lighttube.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meson.png b/Resources/Textures/Objects/Storage/boxes.rsi/meson.png new file mode 100644 index 0000000000..57c7818d21 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/meson.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json new file mode 100644 index 0000000000..c2a70f35aa --- /dev/null +++ b/Resources/Textures/Objects/Storage/boxes.rsi/meta.json @@ -0,0 +1,299 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA 3", + "copyright": "https://github.com/discordia-space/CEV-Eris/commit/9216a1754b1e1d25b8f771b15fbaf4e086fcade9", + "states": [ + { + "name": "beaker", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "bodybags", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "meson", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "sechud", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_donk_pocket", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_id", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_of_doom", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_of_doom_big", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_security", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "circuit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "disk", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "flashbang", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "glasses", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "handcuff", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "implant", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "latex", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "light", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "lightmixed", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "lighttube", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "mousetraps", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "pda", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "pillbox", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "solution_trays", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "sterile", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "syringe", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "writing", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "writing_of_doom", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/mousetraps.png b/Resources/Textures/Objects/Storage/boxes.rsi/mousetraps.png new file mode 100644 index 0000000000..2d19c7d55b Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/mousetraps.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/pda.png b/Resources/Textures/Objects/Storage/boxes.rsi/pda.png new file mode 100644 index 0000000000..349cab8e1e Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/pda.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/pillbox.png b/Resources/Textures/Objects/Storage/boxes.rsi/pillbox.png new file mode 100644 index 0000000000..572cfd01f4 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/pillbox.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/sechud.png b/Resources/Textures/Objects/Storage/boxes.rsi/sechud.png new file mode 100644 index 0000000000..0f52ce46bd Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/sechud.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/solution_trays.png b/Resources/Textures/Objects/Storage/boxes.rsi/solution_trays.png new file mode 100644 index 0000000000..4e6b6beb3a Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/solution_trays.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/sterile.png b/Resources/Textures/Objects/Storage/boxes.rsi/sterile.png new file mode 100644 index 0000000000..f78f0813ba Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/sterile.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/syringe.png b/Resources/Textures/Objects/Storage/boxes.rsi/syringe.png new file mode 100644 index 0000000000..f047d81891 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/syringe.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/writing.png b/Resources/Textures/Objects/Storage/boxes.rsi/writing.png new file mode 100644 index 0000000000..bdd60fa809 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/writing.png differ diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/writing_of_doom.png b/Resources/Textures/Objects/Storage/boxes.rsi/writing_of_doom.png new file mode 100644 index 0000000000..fd1977d96b Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/writing_of_doom.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/beaker.png b/Resources/Textures/Objects/Storage/boxicons.rsi/beaker.png new file mode 100644 index 0000000000..7bbb9eaa1d Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/beaker.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/bodybags.png b/Resources/Textures/Objects/Storage/boxicons.rsi/bodybags.png new file mode 100644 index 0000000000..756a606caf Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/bodybags.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/box.png b/Resources/Textures/Objects/Storage/boxicons.rsi/box.png new file mode 100644 index 0000000000..0a12d0e141 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/box.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/box_of_doom.png b/Resources/Textures/Objects/Storage/boxicons.rsi/box_of_doom.png new file mode 100644 index 0000000000..89ecc16cde Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/box_of_doom.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/circuit.png b/Resources/Textures/Objects/Storage/boxicons.rsi/circuit.png new file mode 100644 index 0000000000..f7c448ee77 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/circuit.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/disk_kit.png b/Resources/Textures/Objects/Storage/boxicons.rsi/disk_kit.png new file mode 100644 index 0000000000..c6ba755256 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/disk_kit.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/donk_kit.png b/Resources/Textures/Objects/Storage/boxicons.rsi/donk_kit.png new file mode 100644 index 0000000000..615408735d Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/donk_kit.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/flashbang.png b/Resources/Textures/Objects/Storage/boxicons.rsi/flashbang.png new file mode 100644 index 0000000000..3d2f1dda56 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/flashbang.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/glasses.png b/Resources/Textures/Objects/Storage/boxicons.rsi/glasses.png new file mode 100644 index 0000000000..3819d40b22 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/glasses.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/handcuff.png b/Resources/Textures/Objects/Storage/boxicons.rsi/handcuff.png new file mode 100644 index 0000000000..1e695be9d2 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/handcuff.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/implant.png b/Resources/Textures/Objects/Storage/boxicons.rsi/implant.png new file mode 100644 index 0000000000..183cd48b2d Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/implant.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/latex.png b/Resources/Textures/Objects/Storage/boxicons.rsi/latex.png new file mode 100644 index 0000000000..ae5d788f8c Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/latex.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/light.png b/Resources/Textures/Objects/Storage/boxicons.rsi/light.png new file mode 100644 index 0000000000..f16e4fdceb Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/light.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/lightmixed.png b/Resources/Textures/Objects/Storage/boxicons.rsi/lightmixed.png new file mode 100644 index 0000000000..aab16a4557 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/lightmixed.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/lighttube.png b/Resources/Textures/Objects/Storage/boxicons.rsi/lighttube.png new file mode 100644 index 0000000000..b257bd68e5 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/lighttube.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/meson.png b/Resources/Textures/Objects/Storage/boxicons.rsi/meson.png new file mode 100644 index 0000000000..a124ba5d96 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/meson.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/meta.json b/Resources/Textures/Objects/Storage/boxicons.rsi/meta.json new file mode 100644 index 0000000000..7e5c5370c1 --- /dev/null +++ b/Resources/Textures/Objects/Storage/boxicons.rsi/meta.json @@ -0,0 +1,218 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NA 3", + "copyright": "https://github.com/Baystation12/Baystation12/commit/bc9fbb1722530596e3aa7522ee407280b323ad43", + "states": [ + { + "name": "beaker", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "bodybags", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "meson", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "sechud", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "box_of_doom", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "circuit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "disk_kit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "donk_kit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "flashbang", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "glasses", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "handcuff", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "implant", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "latex", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "light", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "lightmixed", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "lighttube", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "mousetraps", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "pda", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "pillbox", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "solution_trays", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "sterile", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "syringe", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/mousetraps.png b/Resources/Textures/Objects/Storage/boxicons.rsi/mousetraps.png new file mode 100644 index 0000000000..4f9cda8b50 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/mousetraps.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/pda.png b/Resources/Textures/Objects/Storage/boxicons.rsi/pda.png new file mode 100644 index 0000000000..4c625ad354 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/pda.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/pillbox.png b/Resources/Textures/Objects/Storage/boxicons.rsi/pillbox.png new file mode 100644 index 0000000000..bde84ad2b3 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/pillbox.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/sechud.png b/Resources/Textures/Objects/Storage/boxicons.rsi/sechud.png new file mode 100644 index 0000000000..6695a14b0a Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/sechud.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/solution_trays.png b/Resources/Textures/Objects/Storage/boxicons.rsi/solution_trays.png new file mode 100644 index 0000000000..66267f50ad Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/solution_trays.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/sterile.png b/Resources/Textures/Objects/Storage/boxicons.rsi/sterile.png new file mode 100644 index 0000000000..60f2b86001 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/sterile.png differ diff --git a/Resources/Textures/Objects/Storage/boxicons.rsi/syringe.png b/Resources/Textures/Objects/Storage/boxicons.rsi/syringe.png new file mode 100644 index 0000000000..90872462f1 Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxicons.rsi/syringe.png differ diff --git a/Resources/Textures/Objects/Storage/donkpocket.rsi/icon.png b/Resources/Textures/Objects/Storage/donkpocket.rsi/icon.png new file mode 100644 index 0000000000..c84d483006 Binary files /dev/null and b/Resources/Textures/Objects/Storage/donkpocket.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-left.png b/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-left.png new file mode 100644 index 0000000000..8e81bd04f8 Binary files /dev/null and b/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-right.png b/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-right.png new file mode 100644 index 0000000000..2dfb972cef Binary files /dev/null and b/Resources/Textures/Objects/Storage/donkpocket.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Storage/donkpocket.rsi/meta.json b/Resources/Textures/Objects/Storage/donkpocket.rsi/meta.json new file mode 100644 index 0000000000..a48e79dae2 --- /dev/null +++ b/Resources/Textures/Objects/Storage/donkpocket.rsi/meta.json @@ -0,0 +1,56 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NA 3", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/547852588166c8e091b441e4e67169e156bb09c1", + "states": [ + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/base.png deleted file mode 100644 index 794d4e022b..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/base.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-closed.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-closed.png deleted file mode 100644 index ce4dd70da4..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-closed.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-open.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-open.png deleted file mode 100644 index a9d9bc1dc6..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/bolt-open.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/icon.png deleted file mode 100644 index 06979e4257..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/icon.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-left.png deleted file mode 100644 index 5e69c0449e..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-right.png deleted file mode 100644 index b410d99e34..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/mag-0.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/mag-0.png deleted file mode 100644 index d3cbb7bdd5..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/mag-0.png and /dev/null differ diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/meta.json deleted file mode 100644 index a7200507ee..0000000000 --- a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/meta.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/56cbafd6ad8c013ccd5472d6c4a0db790f7f872a/icons/obj/guns/projectile/straylight.dmi", - "states": [ - { - "name": "icon", - "directions": 1 - }, - { - "name": "base", - "directions": 1 - }, - { - "name": "bolt-closed", - "directions": 1 - }, - { - "name": "bolt-open", - "directions": 1 - }, - { - "name": "mag-0", - "directions": 1 - }, - { - "name": "suppressor", - "directions": 1 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 1 - } - ] -} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/suppressor.png b/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/suppressor.png deleted file mode 100644 index 079d5a45d9..0000000000 Binary files a/Resources/Textures/Objects/Weapons/Guns/SMGs/straylight.rsi/suppressor.png and /dev/null differ diff --git a/Resources/Textures/Shaders/circle_mask.swsl b/Resources/Textures/Shaders/circle_mask.swsl index c8471ec2d0..dc38b360cc 100644 --- a/Resources/Textures/Shaders/circle_mask.swsl +++ b/Resources/Textures/Shaders/circle_mask.swsl @@ -1,17 +1,17 @@ -vec4 circle(in vec2 uv, in vec2 pos, float rad, in vec3 color) { - float d = length(pos - uv) - rad; - float t = clamp(d, 0.0, 1.0); +highp vec4 circle(in highp vec2 uv, in highp vec2 pos, highp float rad, in highp vec3 color) { + highp float d = length(pos - uv) - rad; + highp float t = clamp(d, 0.0, 1.0); return vec4(color, t); } void fragment(){ - vec2 uv = FRAGCOORD.xy; - vec2 res_xy = vec2(1.0/SCREEN_PIXEL_SIZE.x, 1.0/SCREEN_PIXEL_SIZE.y); - vec2 center = res_xy*0.5; - float radius = 0.05 * res_xy.y; + highp vec2 uv = FRAGCOORD.xy; + highp vec2 res_xy = vec2(1.0/SCREEN_PIXEL_SIZE.x, 1.0/SCREEN_PIXEL_SIZE.y); + highp vec2 center = res_xy*0.5; + highp float radius = 0.05 * res_xy.y; - vec4 layer1 = vec4(vec3(0), 0.0); + highp vec4 layer1 = vec4(vec3(0.0), 0.0); - vec4 layer2 = circle(uv, center, radius, vec3(0)); + highp vec4 layer2 = circle(uv, center, radius, vec3(0.0)); COLOR = mix(layer1, layer2, layer2.a); -} \ No newline at end of file +} diff --git a/Resources/Textures/Shaders/cooldown.swsl b/Resources/Textures/Shaders/cooldown.swsl index 90b215a1c3..e91083b5a2 100644 --- a/Resources/Textures/Shaders/cooldown.swsl +++ b/Resources/Textures/Shaders/cooldown.swsl @@ -1,25 +1,29 @@ light_mode unshaded; -const float PI = 3.14159265; +const highp float PI = 3.14159265; -uniform float progress = 0.0; +uniform highp float progress; void fragment() { - vec4 col = texture(TEXTURE, UV); - vec2 center = vec2(0.5,0.5); - vec2 delta = UV.xy - center; + highp vec4 col = zTexture(UV); + highp vec2 center = vec2(0.5,0.5); + highp vec2 delta = UV.xy - center; - float angle = atan(delta.x, -delta.y) + PI; + highp float angle = atan(delta.x, -delta.y) + PI; - float dist = length(delta); - float dist_fwidth = fwidth(dist) * 0.67; + highp float dist = length(delta); +#ifdef HAS_DFDX + highp float dist_fwidth = fwidth(dist) * 0.67; +#else + highp float dist_fwidth = 0.05; +#endif - float dist_alpha = smoothstep(0.1-dist_fwidth, 0.1, abs(dist-0.35)); + highp float dist_alpha = smoothstep(0.1-dist_fwidth, 0.1, abs(dist-0.35)); - float angle_delta = (progress * PI * 2) - angle; - float arc_length = angle_delta * dist; + highp float angle_delta = (progress * PI * 2.0) - angle; + highp float arc_length = angle_delta * dist; - float angle_alpha = progress > 0 ? smoothstep(dist_fwidth, 0.0, arc_length) : 0.0; + highp float angle_alpha = (progress > 0.0) ? smoothstep(dist_fwidth, 0.0, arc_length) : 0.0; - COLOR = vec4(col.xyz, 1-max(dist_alpha, angle_alpha)); -} \ No newline at end of file + COLOR = vec4(col.xyz, 1.0 - max(dist_alpha, angle_alpha)); +} diff --git a/Resources/Textures/Shaders/flashed_effect.swsl b/Resources/Textures/Shaders/flashed_effect.swsl index fdbe860cb7..67dc67b185 100644 --- a/Resources/Textures/Shaders/flashed_effect.swsl +++ b/Resources/Textures/Shaders/flashed_effect.swsl @@ -1,18 +1,18 @@ -uniform float percentComplete; -uniform float fadeFalloffExp = 8; +uniform highp float percentComplete; +const highp float fadeFalloffExp = 8.0; void fragment() { // Higher exponent -> stronger blinding effect - float remaining = -pow(percentComplete, fadeFalloffExp) + 1; + highp float remaining = -pow(percentComplete, fadeFalloffExp) + 1.0; // Two ghost textures that spin around the character - vec4 tex1 = texture(TEXTURE, vec2(UV.x + (0.02) * sin(TIME * 3), UV.y + (0.02) * cos(TIME * 3))); - vec4 tex2 = texture(TEXTURE, vec2(UV.x + (0.01) * sin(TIME * 2), UV.y + (0.01) * cos(TIME * 2))); + highp vec4 tex1 = zTexture(vec2(UV.x + (0.02) * sin(TIME * 3.0), UV.y + (0.02) * cos(TIME * 3.0))); + highp vec4 tex2 = zTexture(vec2(UV.x + (0.01) * sin(TIME * 2.0), UV.y + (0.01) * cos(TIME * 2.0))); - vec4 textureMix = mix(tex1, tex2, 0.5); + highp vec4 textureMix = mix(tex1, tex2, 0.5); // Gradually mixes between the texture mix and a full-white texture, causing the "blinding" effect - vec4 mixed = mix(vec4(1, 1, 1, 1), textureMix, percentComplete); + highp vec4 mixed = mix(vec4(1.0, 1.0, 1.0, 1.0), textureMix, percentComplete); COLOR = vec4(mixed.rgb, remaining); } diff --git a/Resources/Textures/Shaders/gradient_circle_mask.swsl b/Resources/Textures/Shaders/gradient_circle_mask.swsl index 8eee20fd4c..800e19ef84 100644 --- a/Resources/Textures/Shaders/gradient_circle_mask.swsl +++ b/Resources/Textures/Shaders/gradient_circle_mask.swsl @@ -1,23 +1,23 @@ -uniform float percentagedistanceshow = 0.05; -uniform float gradientfalloffwidth = 3.0; +const highp float percentagedistanceshow = 0.05; +const highp float gradientfalloffwidth = 3.0; -vec4 circle(in vec2 uv, in vec2 pos, float rad, in vec3 color) { - float d = length(pos - uv) - rad; - float t = clamp(d, 0.0, 1.0); +highp vec4 circle(in highp vec2 uv, in highp vec2 pos, highp float rad, in highp vec3 color) { + highp float d = length(pos - uv) - rad; + highp float t = clamp(d, 0.0, 1.0); return vec4(color, t); } void fragment() { - vec2 uv = FRAGCOORD.xy; - vec2 res_xy = vec2(1.0/SCREEN_PIXEL_SIZE.x, 1.0/SCREEN_PIXEL_SIZE.y); - vec2 center = res_xy*0.5; - float radius = percentagedistanceshow * res_xy.y; + highp vec2 uv = FRAGCOORD.xy; + highp vec2 res_xy = vec2(1.0/SCREEN_PIXEL_SIZE.x, 1.0/SCREEN_PIXEL_SIZE.y); + highp vec2 center = res_xy*0.5; + highp float radius = percentagedistanceshow * res_xy.y; - vec4 grad = vec4(0.8 - length( uv - center )/res_xy.y * gradientfalloffwidth); + highp vec4 grad = vec4(0.8 - length( uv - center )/res_xy.y * gradientfalloffwidth); - vec4 layer1 = vec4(vec3(255.0),0.0); + highp vec4 layer1 = vec4(vec3(255.0),0.0); - vec4 layer2 = circle(uv, center, radius, grad.rgb); + highp vec4 layer2 = circle(uv, center, radius, grad.rgb); COLOR = mix(layer1, layer2, layer2.a); } diff --git a/Resources/Textures/Shaders/outline.swsl b/Resources/Textures/Shaders/outline.swsl index 0c3ffc701b..a4d6b331f1 100644 --- a/Resources/Textures/Shaders/outline.swsl +++ b/Resources/Textures/Shaders/outline.swsl @@ -29,47 +29,48 @@ light_mode unshaded; //shader_type canvas_item; -uniform float outline_width = 2.0; +uniform highp float outline_width; // = 2.0; // TODO: implement that hint_color thingy. //uniform vec4 outline_color: hint_color; -uniform vec4 outline_color=vec4(1,0,0,0.33); +uniform highp vec4 outline_color; // =vec4(1.0,0.0,0.0,0.33); void fragment() { - vec4 col = texture(TEXTURE, UV); - vec2 ps = TEXTURE_PIXEL_SIZE; - float a; - float maxa = col.a; - float mina = col.a; + highp vec4 col = zTexture(UV); + highp vec2 ps = TEXTURE_PIXEL_SIZE; + highp float a; + highp float maxa = col.a; + highp float mina = col.a; - a = texture(TEXTURE, UV + vec2(0, -outline_width)*ps).a; + // note: these bypass zTexture because only alpha is queried. + a = texture2D(TEXTURE, UV + vec2(0.0, -outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(-outline_width, -outline_width)*ps).a; + a = texture2D(TEXTURE, UV + vec2(-outline_width, -outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(0, outline_width)*ps).a; + a = texture2D(TEXTURE, UV + vec2(0.0, outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(outline_width, -outline_width)*ps).a; + a = texture2D(TEXTURE, UV + vec2(outline_width, -outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(-outline_width,0)*ps).a; + a = texture2D(TEXTURE, UV + vec2(-outline_width,0.0)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(-outline_width, outline_width)*ps).a; + a = texture2D(TEXTURE, UV + vec2(-outline_width, outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(outline_width, 0)*ps).a; + a = texture2D(TEXTURE, UV + vec2(outline_width, 0.0)*ps).a; maxa = max(a, maxa); mina = min(a, mina); - a = texture(TEXTURE, UV + vec2(outline_width, outline_width)*ps).a; + a = texture2D(TEXTURE, UV + vec2(outline_width, outline_width)*ps).a; maxa = max(a, maxa); mina = min(a, mina); diff --git a/Resources/Textures/Shaders/stencil_clear.swsl b/Resources/Textures/Shaders/stencil_clear.swsl index b0ec17e0f9..c1a28ab0aa 100644 --- a/Resources/Textures/Shaders/stencil_clear.swsl +++ b/Resources/Textures/Shaders/stencil_clear.swsl @@ -1,3 +1,3 @@ void fragment() { - COLOR = vec4(0); + COLOR = vec4(0.0); } diff --git a/Resources/Textures/Shaders/stencil_mask.swsl b/Resources/Textures/Shaders/stencil_mask.swsl index 0e50894995..458e29c595 100644 --- a/Resources/Textures/Shaders/stencil_mask.swsl +++ b/Resources/Textures/Shaders/stencil_mask.swsl @@ -1,7 +1,8 @@ void fragment() { - if (texture(TEXTURE, UV).a == 0) { + // Bypasses zTexture because only alpha is queried. + if (texture2D(TEXTURE, UV).a == 0.0) { discard; // Discard if no alpha so that there's a hole in the stencil buffer. } - COLOR = vec4(0); + COLOR = vec4(0.0); } diff --git a/RobustToolbox b/RobustToolbox index 56d0f04c05..d9f5c7d7b5 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 56d0f04c0536ddde3464bc93d49c37f1ed067239 +Subproject commit d9f5c7d7b58d72900fb9e901648a4818e90d9914 diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 939d5d6e4c..b2a8da9dbd 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -67,6 +67,8 @@ True True True + True + True True True True @@ -76,6 +78,7 @@ True True True + True True True True @@ -90,6 +93,7 @@ True True True + True True True True